Архитектурные паттерны.
Паттерны и методологии проектирования целых систем: моделирование предметной области, разделение чтения и записи, разработка на основе тестов или спецификаций.
Подход к разработке ПО, ставящий в центр проектирования богатую модель бизнес-домена, выраженную на языке, общем для инженеров и экспертов предметной области.
Разделите модель, изменяющую состояние (команды), и модель, читающую состояние (запросы), чтобы каждую сторону можно было моделировать, масштабировать и оптимизировать независимо.
Дисциплина разработки, при которой вы пишете падающий тест до кода, который заставит его пройти, а затем рефакторите — позволяя тестам управлять дизайном в коротких, плотных циклах.
Сначала напишите явную, авторитетную спецификацию, а затем выводите из неё реализацию, тесты и генерируемый код — сохраняя спецификацию как единственный источник истины.