intermediate

OOP versus functional style

Сравнивайте object behavior и mutable identity с functions, immutable data, composition pipelines и explicit side-effect boundaries.

ООП связывает данные и поведение в объектах с mutable identity; функциональный стиль — чистые функции, immutable data и явные границы эффектов (IO на краях). Часто смесь: immutable values внутри entity methods или Redux reducers (functional) и React views (component objects).

Сравнивайте тестируемость, concurrency и где живёт state — не идеологию.

На интервью: pricing engine со скидками как pure functions vs polymorphic strategy objects.

Типовые ошибки: «всегда побеждает один стиль»; скрытая мутация в «functional» pipeline; anemic services и mutable globals.

Компромисс — локальная мутация в ясных объектах против воспроизводимых transforms с immutable data.

Чеклист:

  • Side effects на границах.
  • Pure functions для расчётов.
  • Стиль по поддомену, не глобально.