🧩 Принципы модульности: как делить систему на части Модульность не уменьшает суммарную сложность системы — она ограничивает сложность, которую приходится удерживать в голове одновременно: разработчик работает внутри одного модуля, зная контракт соседей, но не их устройство. Все остальные выгоды — тестируемость, параллельная работа, переиспользование — производные от этого. Дисциплина декомпозиции отвечает на три вопроса. Как делить — Separation of Concerns Дейкстры: непересекающиеся области ответственности. Сколько знать о соседях — Law of Demeter: «не разговаривай с незнакомцами», вызывай только ближайших партнёров. Чем измерять результат — связность и связанность по Константайну: высокая cohesion внутри модуля, слабый coupling между ними. ⚠️ Главная ловушка — ложная модульность через общее состояние: модули формально разделены в коде, но связаны одной базой данных или глобальным конфигом. Детектор простой: если модуль нельзя изменить или удалить без согласования с другими — границы не работают. 🔗 Принципы модульности (SoC, Law of Demeter): https://agaltsovav.ru/docs/architecture/modularity-principles/