Записи с меткой «DDD»
Итак, продолжим! Мы уже немного научились проектировать сущности в первой части и даже подготовили небольшой прикладной сервис во второй. И договорились, что нам для хранения доменных сущностей в базе нужно сделать некий репозиторий. И даже сделали его тестовый эмулятор и подготовили работающие тесты. Перед изучением каких-либо готовых решений сегодня навелосипедим собственную реализацию репозитория без использования сторонних ORM-систем.
Продолжаем погружение в проектирование и разработку. В прошлой статье мы сочинили полноценную сущность-агрегат предметной области Employee со своей собственной бизнес-логикой для описания объектов сотрудников. Теперь нужно как-то работать с ней из контроллера, сохранять в базу данных и доставать обратно. Но наш Employee не содержит ни одной строки по работе с базой данных, поэтому сам сохраняться не умеет. Что же с этим делать?
Некоторые разработчики порой недоумевают, как можно программировать на фреймворках без использования CRUD и ActiveRecord, и почему такую «лёгкую» на первый взгляд прямую работу с полями в базе данных недолюбливают тру-ООП-шники. Да и многие спрашивают, что в тестах нужно тестировать, а что не нужно. И нужно ли проверять приватные методы или нет? Разберёмся в этих вопросах.
В очередном обсуждении архитектуры и DDD на форуме Yii (да, такое бывает, но жуткий дефицит) возник вопрос по упрощённому фрагменту сущности User из демо-приложения. Попробуем поразмышлять об архитектуре методов и о доменных моделях в Yii2.