Изменения

Перейти к: навигация, поиск

Мода на веб-фреймворки - тезисы

120 байтов добавлено, 20:24, 23 сентября 2012
Шаблоны проектирования
* {{red|☹}} Раннее внедрение излишней расширяемости
Истина же в том, что легче всего расширять Истинное удобство расширения: {{mag|KISS, YAGNI}}{{star}}
-----
{{star}} {{gray|Keep It Simply Stupid, You Ain't Gonna Need It.}}
==== Шаблоны проектирования ====
Слепое принятие паттернов может быть полезно разве что для обучения начинающих разработчиков — пусть лучше они научатся паттернам, чем написанию битриксоподобных портянок.
Возможно, проблема не в самих фреймворках, а в чрезмерной технологизации (Over-Engineering’е) — имеется ввиду, когда создатель системы, вместо простой реализации нужного функционала в соответствии с принципом принципами [[rupedia:KISS_(принцип)|KISS ]] (Keep It Simply Stupid) и [[rupedia:Принцип YAGNI|YAGNI]] (You Ain’t Gonna Need It), сразу начинает чрезмерно его обобщать и закладывать ненужные точки расширения, результатом чего типично являются:
* Лишние слои абстракции, в лучшем случае — просто лишние, а в худшем — ограничивающие и делающие неоптимальным использование нижележащих API.
* Отсутствие точек расширения в нужных местах и наличие в ненужных.
Второй плюс работает, только если фреймворк «готовить» по всем канонам, не разламывая его вдребезги и следуя заложенным в него шаблонам разработки: фреймворк будет ограничивать фантазию разработчиков. Хорошо это или плохо? Ну, в случае, если ваши разработчики — неокрепшие начинающие умы, тогда, наверное, хорошо: может быть, принятые во фреймворке практики неидеальны, но зато ваши junior’ы по крайней мере не натворят совсем паршивых дел. В то же время — если ваши разработчики сильны, «ограничивать их фантазию» может означать «ограничивать их потенциал», а это уже не очень хорошо.
Ну и, конечно, плюс в обучении — обучении — ясно, что разглядывание деталей реализации фреймворка и критическая оценка тех самых заложенных в него практик идёт на пользу всем. Никому не будет лишним узнать ещё одну технологию, а в общемировом плане — плане — пусть лучше начинающие программисты изучают фреймворки, чем CMS — CMS — в отличие от CMS, код фреймворков обычно вменяем, да и о «паттернах» и прочей лабуде начинающие узнают быстрее.
==== Закрытые, внутренние, малопопулярные фреймворки ⌘⌘ ====
Анонимный участник

Навигация