intermediate

Separation of Concerns

Разделяйте responsibilities вроде UI, orchestration, domain rules, persistence и integration, чтобы каждая менялась по своей reason.

Separation of Concerns делит систему так, чтобы каждая часть решала свою задачу — UI rendering, application orchestration, domain rules, persistence, интеграции. Смена HTML layout не должна тянуть правки SQL при чистых слоях.

SoC горизонтально (layers) и вертикально (feature slices) — оба снижают blast radius.

На интервью: concerns в messy full-stack handler и границы слоёв.

Типовые ошибки: жёсткие слои без pragmatic shortcuts; anemic domain с логикой в controllers; cross-layer imports мимо public API.

Компромисс — навигация по файлам против изолированных изменений и ясных testing seams.

Чеклист:

  • Concerns, меняющиеся независимо.
  • Зависимости внутрь к domain.
  • Узкие module API.