Хочу зафиксировать принципы проектирования, которыми я пользуюсь ежедневно. В этом посте будет обновляемый список, расшифровка каждого принципа - отдельный пост. Это мой личный опыт. Я не претендую на универсальность.
Кто-то решит, что они вредные. Подумайте, прежде чем применять. Кому-то материал покажется очень простым, почти очевидным. Мой опыт показывает, что даже "бывалые" наводят бардак, хотя все всё понимают.
Принципы сформированы на основе практического применения информации из книг:
Эрик Эванс. Предметно-ориентированное проектирование. Структуризация сложных систем.
Вон Вернон. Реализация методов предметно-ориентированного проектирования - DDD.
https://www.infoq.com/minibooks/domain-driven-design-quickly/
Влад Хононов. Изучаем DDD – предметно-ориентированное проектирование.
Роберт Мартин. Чистая архитектура.
В оригиналах некоторые вещи трактуются объемно и широко.
Я про конкретику, практику и про код, поэтому сознательно упростил или выбросил часть информации. Она мешает и запутывает не только новичков, но и опытных разработчиков. Поэтому это не классический DDD или чистая архитектура. Скорее это смешение и личный опыт. Попытаюсь выдавать информацию без "воды".
Погнали: