intermediate

Entities

Моделируйте objects с identity и lifecycle, когда behavior должен сохранять invariants across state changes.

Entities — доменные объекты с идентичностью, сохраняющейся при смене состояния — users, orders, accounts. Инкапсулируют инварианты и переходы жизненного цикла вместо mutable bags of fields. Identity equality ≠ value equality; два заказа с одинаковыми данными, но разными ID, не взаимозаменяемы.

На интервью: order entity со status transitions. Почему не каждая строка БД заслуживает rich entity behavior.

Типовые ошибки: entities без инвариантов; сравнение identity по атрибутам; god entities с HTTP или SQL.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Стабильное identity field при updates.
  • Методы поведения сохраняют инварианты.
  • Equality по identity, не по всем полям.
  • Persistence mapping отдельно от entity API.