intermediate
When OOP fits JS и TS
Используйте OOP, когда identity, lifecycle, invariants и polymorphic behavior важнее простой data transformation.
ООП уместно, когда доминируют identity, lifecycle, инварианты и полиморфное поведение — domain entities, state machines, plugin registries, UI controllers с долгоживущим state. Функциональные pipeline сильны в трансформации данных, парсинге и map по коллекциям.
JS мультипарадигмен: прототипы под классами, функции первого класса. TS добавляет типы к любому стилю без принуждения к наследованию.
На интервью: ООП vs functions для корзины и для CSV import pipeline.
Типовые ошибки: Java-иерархии в языке с композицией; классы как namespace; ООП там, где хватит functions и types.
Компромисс — привычное entity modeling против идиоматичной простоты JS — парадигма под характер изменений.
Чеклист:
- ООП для сущностей с identity и правилами.
- Functions для stateless transforms.
- Без глубокого наследования в JS codebases.