Skip to content

[Lab02] Шибун Дмитрий, ПО-13#19

Closed
Weatheralert wants to merge 3 commits into
brstu:mainfrom
Weatheralert:lab02-group_PO13-Shibun
Closed

[Lab02] Шибун Дмитрий, ПО-13#19
Weatheralert wants to merge 3 commits into
brstu:mainfrom
Weatheralert:lab02-group_PO13-Shibun

Conversation

@Weatheralert
Copy link
Copy Markdown

Лабораторная работа №2 — Гексагональная архитектура (Ports & Adapters)

Что сделано

  • Реализована архитектура основного сервиса системы в соответствии с принципами Hexagonal Architecture.

  • Создан доменный слой (Domain Layer):

    • Добавлены сущности Habit и WaterEntry.
    • Добавлен Value Object DailyGoal.
    • Определены доменные исключения.
    • Описаны ключевые бизнес‑правила.
  • Создан прикладной слой (Application Layer):

    • Реализованы входящие порты (LogWaterUseCase, GetDailyProgressUseCase).
    • Реализованы исходящие порты (WaterRepository, ReminderService).
    • Добавлен HabitService как оркестратор бизнес‑логики.
  • Создан инфраструктурный слой (Infrastructure Layer):

    • Добавлен REST‑контроллер HabitController.
    • Реализован InMemoryWaterRepository.
    • Добавлен заглушечный ReminderServiceStub.
  • Настроен DI‑контейнер (DependencyContainer) для связывания портов и адаптеров.

  • Добавлена архитектурная диаграмма (Domain → Application → Infrastructure).

Результат

Проект структурирован в соответствии с Hexagonal Architecture.
Бизнес‑логика полностью изолирована от инфраструктуры.
Все зависимости инвертированы через порты.
Сервис готов к расширению (добавление БД, реального ReminderService, тестов и т.д.).

Структура проекта

  • domain/ — модели и бизнес‑правила
  • application/ — порты и сервисы
  • infrastructure/ — адаптеры и DI
  • Architecture.md — диаграмма и описание архитектуры

Примечания

Методы HabitService пока содержат заглушки (NotImplementedError), так как их реализация будет выполнена в следующих лабораторных работах.

@github-actions
Copy link
Copy Markdown
Contributor

⚠️ Невозможно сопоставить пользователя unknown с students/students.csv. Пожалуйста, проверьте вручную.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant