Записи с меткой «DDD»

Провели ленивый импровизированный стрим на общеполезные темы. Чем неудобен в разработке процедурный код и код без разделения. Какие сложности предметной области обнаруживаются при анализе бизнеса. Про сходства и различия фреймворков. Про использование интерфейсов и классов провайдеров для конфигурирования приложения и для организации гибкой модульности.

До этого мы с вами занимались программированием классических сайтов с шаблонизаторами без интерактива. Мы занимались только PHP и не рассматривали смежные темы. На это раз запишем большую серию скринкастов по разработке под ключ целикового проекта сайта-аукциона с API на микрофреймворке Slim PHP и интерактивным фронтендом на ReactJS.

После нашего отчёта о конференции по разрешению организаторов публикую запись своего доклада на PHP Russia про важность разделения кода и инкапсуляции бизнес-логики в сервисах и сущностях.

Все видеозаписи уроков обработаны, тайм-коды проставлены, вопросы отвечены. Наш самый крупный четырёхмесячный мастер-класс по Symfony завершён. Вот что у нас с вами получилось...

В пятницу и субботу в Москве в центре Digital October и в офисе Action провели DevConf 2018. Было круто! Выступил с докладом о проектировании доменных агрегатов, где показал примеры инкапсуляции бизнес-логики внутрь доменных сущностей и декомпозиции внутренностей по ответственностям.

При разработке с отделением моделей форм от доменных сущностей (чему мы посвятили недавний цикл статей) поначалу возникает неудобство копирования повторяющихся полей из формы в форму. В одном из уроков мастер-класса мы познакомились с одним из решений этого вопроса. Рассмотрим тот код и оформим его в самодостаточное публичное расширение.

В этом цикле статей мы уже разобрались с проектированием сущностей, спрограммировали свой собственный репозиторий и изучили использование Doctrine ORM. В этот раз завершим эксперимент и узнаем, можно ли с минимальным ущербом подружить нетривиальный класс доменной сущности с ActiveRecord ORM проекта на Yii2.

В прошлый раз мы вручную изготовили работающий репозиторий для сохранения доменных сущностей, чтобы более-менее узнать, как работают изнутри различные ORM. В этот раз на основе прошлого опыта рассмотрим готовую библиотеку Doctrine ORM и попробуем интегрировать её в наш проект на Yii2.

После познания дзена на интенсиве по ООП многие просили сделать что-нибудь посущественнее на Yii2 Framework, чтобы применить новые знания на практике. И даже на форуме упомянули, что ждут от меня курс по фреймворку. Как и обещал в блоге, скоро запустим большой многодневный мастер-класс по  разработке интернет-магазина на Yii2 с использованием лучших практик.

Итак, продолжим! Мы уже немного научились проектировать сущности в первой части и даже подготовили небольшой прикладной сервис во второй. И договорились, что нам для хранения доменных сущностей в базе нужно сделать некий репозиторий. И даже сделали его тестовый эмулятор и подготовили работающие тесты. Перед изучением каких-либо готовых решений сегодня навелосипедим собственную реализацию репозитория без использования сторонних ORM-систем.