Объектно-обрезиненное программирование
Вспомните, вам доводилось когда-нибудь держать в руках предметы из обрезиненного металла? Приятная тяжесть в сочетании с теплотой и мягкостью покрытия, не позволяющего предмету выскальзывать из руки. Пожалуй, было бы неплохо иметь ноутбук в подобном корпусе, дверные ручки, кресла, кровать…
Стоп, какая нафиг кровать из обрезиненного металла? Кровать должна быть мягкой, удобной, уютной. Мягкие уютные кресла, мягкие уютные столы…
Опять фигня получается: какие мягкие столы?! Столы, кровать и ноутбук — это разные вещи с разными свойствами, и делают их по-разному.
Так какого же, спрашивается, хрена некоторые разработчики, один раз освоив некую концепцию программирования, начинают её применять где надо и не надо?
Им кто-то сказал, что ООП — это современно, и теперь вместо программки из пары функций они непременно построят класс со встроенными методами, конструктором, деструктором, встроят его в программу и напишут ту же пару функций для вызова методов класса и получения результатов.
Им кто-то сказал, что code reuse — это правильно, и теперь вместо процедуры из трёх строк на C они прилинкуют пару десятков мегабайт библиотек фреймворка, в которых есть та самая процедура.
Им сказали: «Google использует server-side JavaScript», — и теперь они с упорством будут переписывать всю логику под возможности нового инструмента. Авторитет!
Господа, сходите, что ли, в автосервис и посмотрите на количество разных инструментов, которыми пользуются специалисты. А не как вы: либо только молотком (молоток — это надёжно), либо только отвёрткой (отвёртка — тонкий инструмент).