IT Капибара
🎭 ООП в JavaScript — карго-культ, который пора похоронить
Когда Java-разработчик приходит в JS, первое что он делает — тащит классы, наследование и паттерны из Gang of Four. И код превращается в это:
class UserRepository extends BaseRepository {
constructor(database) {
super(database);
this.model = UserModel;
}
async findById(id) {
return super.findById(id);
}
}
// 50 строк обёртки ради одного запроса в базу
А можно было так:
const findUser = (db) => (id) => db.query('users', { id });
// Всё. Одна строка. Тестируется за 5 секунд.
Почему это карго-культ:
1. Классы в JS — синтаксический сахар над прототипами. Вы не получаете настоящую инкапсуляцию (private появился вчера и работает костыльно)
2. Наследование — антипаттерн. Даже в Java давно говорят "composition over inheritance". В JS это критично вдвойне
3. this — мина замедленного действия. Половина багов в "классовом" коде — потеря контекста
Функции — first-class citizens в JS. Используй это. Композиция функций > иерархия классов.
2 · 321 ·