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 для расчётов.
- Стиль по поддомену, не глобально.