1. Моделирование предметной области (стр. 32-52)
Предметная область (domain) — это сфера деятельности, для которой вы создаете ПО. В книге пример — система управления поставками мебели (онлайн-продажи).
Модель предметной области — это упрощенное представление реальной бизнес-логики в вашем коде. Это не просто таблицы базы данных или API-эндпоинты, а объекты и функции, которые отражают реальные бизнес-процессы.
Ключевые идеи главы 1:
-
Язык предметной области (Ubiquitous Language)
- Вы и бизнес-эксперты должны говорить на одном языке
- Термины из бизнеса становятся именами классов и функций в коде
- Пример: если бизнес говорит «партия товара», в коде должен быть класс Batch, а не StuffContainer
-
Модель ≠ База данных
- Модель предметной области — это про поведение и правила бизнеса
- ORM-модели (SQLAlchemy, Django) — это про хранение данных
- Эти вещи стоит разделять
-
Функции службы предметной области
- Не всё должно быть объектом
- Иногда проще использовать функции для бизнес-операций
