Только почему то считается, что код написанный на фреймворке суперпрост, а без него - суперсложен. Ахинея же это. Можно на фреймворке наворотить такого, что фиг разберешь. И наоборот, код, который написан чисто, без излишеств, логичен и документирован, часто читается проще, нежели многие коды, написанные на фреймворке.
Однако при обслуживании часто выходит так, что изменить расширение фреймворка намного сложнее, чем изменить самодостаточный модуль. И вот тут то как раз встает вопрос о человекочасах - раз, о времени на устранение багов - два, о времени на модификацию - три. На действующем проекте под большими нагрузками такое время считается секундами. И каждая сэкономленная при разработке минута может вылиться в сотни и тысячи отвалившихся клиентов при обслуживании.
Пример. Я уже приводил.
Имеется задача получить данные пользователя для анкеты. В рамках фреймворка мы привычно пишем модель User, в нем метод getUserData(), который любезно нам их предоставляет.
А потом появляется потребность вывести 50 анкет пользователей на страницу. В рамках того же фреймворка мы пишем контроллер, который 50 раз дергает метод getUserData() к примеру. Потому что есть базовые принципы фреймворка. И вот, мы имеем 50 запросов вместо одного возможного, только потому, что экономим людской фактор. Ведь железо дешевле человекочасов, которые нужно потратить на изменение класса User, на внедрение в него нового метода. Зачем, как говорит возмущенный T1grOK изобретать велосипед? Есть метод - пользуйся. Только о какой оптимизации под большие нагрузки может идти речь? 50 запросов вместо одного могут запросто повалить сервер, если он работает на пределе. А это потери времени, клинтуры, денег.
Это конечно вопиющий пример, но часто встречаются подобного рода ляпы, которые и не разглядишь с первого раза. И чтобы найти такое тонкое место, нужно очень серьёзно перелопатить кучу кода, а часто и сам фреймворк, что недопустимо. Ибо пропадет преемственность версий. А это грозит костылями. Потому что приложение расширяется. А не проектируется под конкретную задачу.
Так вот, что бы тут не говорили, фреймворк и высокие нагрузки (особенно в динамическом, часто модифицируемом приложении) вещи совершенно несовместимые.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.
Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
