3. Предметно-ориентированное проектирование (Domain Driven Design) ! Перерыв ! 1. Монолитная и модульная архитектура приложений 2. Переход от DB-Driven проектирования к Domain Driven проектированию
боль разработки” (HappyDev’13 http://2013.happydev.ru/report/22) ! 1) понятность кода и предметной области 2) Модульность приложения: чем больше система, тем легче добавить новый компонент системы 3) масштабируемость приложения ! Архитектура приложений - это 1) принятые ключевые решения 2) компромисс
приложения (насколько сильно один модуль приложения зависит от других) 3) низкая связность отдельных моделей 4) отсутствие общих стандартов программирования 5) DB-driven разработка (центр вселенной - это база данных)
“модели” приложения) -> низкая связность модели 2) Наличие условных валидаций или колбэков 3) Логика модели зависит от роли пользователя 4) Оптимизация производительности приложения 5) Сильная связанность слоев приложения: Application, Domain, Infrastructure
defined by its attributes, but rather by a thread of continuity and its identity 2) Value Object - An object that contains attributes but has no conceptual identity. Should be treated as Immutable. 3) Aggregate - A collection of objects that are bound together by a root entity, otherwise known as an aggregate root. 4) Service - implements domain logic when it can’t be done in object. 5) Repository - is an abstraction over persistence store, returning entities or aggregate roots, meeting some criteria 6) Factory - methods for creating domain objects. 7) Domain events