Найти в Дзене
Skillbox

Почему фреймворки — зло

Оглавление

Не изобретать велосипед, если есть уже готовая основа, — это выглядит очень привлекательным для начинающих разработчиков. Но с фреймворками, если использовать их бездумно, можно попасть во множество ловушек. Вот пять причин, почему вам не стоит использовать фреймворки.

1. Они ограничивают творческое мышление

Если вы новичок в разработке, начинать изучение любого языка с них очень опрометчиво. Конечно, есть исключения — например, Ruby и Python, которые изначально не предназначены для использования в вебе без «родных» фреймворков. Но для большинства языков работает правило: сначала ООП, затем все остальное. Изучите архитектуру, паттерны, фундаментальные принципы программирования и создавайте проект с нуля, чтобы действительно разбираться в тонкостях.

Если привыкнете к удобному рамочному мышлению, искать нестандартные решения, выходящие за привычную систему, будет непросто, так как окажется, что вы плохо владеете чистым языком. Если же вы в нем ас, то фреймворк — лишь инструмент для оптимизации и структурирования кода.

2. Ужасно сочетаются друг с другом

Если применить все на одной странице, разверзнутся врата ада, и на вас дыхнет пламенем прямиком из репозитория.
Если применить все на одной странице, разверзнутся врата ада, и на вас дыхнет пламенем прямиком из репозитория.

Самая главная проблема — их невозможно или очень сложно комбинировать друг с другом. Если фреймворки в JavaScript еще можно кое-как соединить с помощью jQuery, то для того же PHP это невыполнимая задача.

Frontend-разработчики вдобавок сталкиваются с тем, что под тот или иной фреймворк нет библиотеки. Или есть, но не с тем функционалом. Адекватный выход из ситуации — писать с нуля или самостоятельно доделать подходящую. Но зачастую в проектах используют jQuery с уже готовым решением просто потому, что время — деньги. В итоге получаются раздутые структуры, от которых затем страдают все.

Вам также будет интересно:
На что живут программисты: зарплаты, налоги, регионы и возможности
Чем хорош Node.js: практика современного веб-программирования
Frontend- и backend-разработка: принципы и отличия

3. Ошибки фреймворка — твои ошибки

Здесь все просто и очевидно. Даже в самом идеальном фреймворке может что-то сломаться и пойти не так. Но ответственным за это будет, увы, разработчик, особенно если он в команде один.

И если у популярной opensource-технологии, как правило, обширное сообщество, а у коммерческой — мощная поддержка со стороны консультантов, которые помогут решить проблему, то с более нишевыми инструментами все обстоит сложнее. Вероятно, со многими вопросами вы останетесь один на один и будете судорожно искать решение.

4. Негибкие и загоняют в рамки

— Все PHP-фреймворки общего назначения — отстой! 
Расмус Лердорф.
— Все PHP-фреймворки общего назначения — отстой! Расмус Лердорф.

Об этом мы отчасти сказали выше, но повторим еще раз. Даже опытный программист может облениться и попасть в ловушку использования чужих разработок, что уж говорить о новичках. Фреймворк определяет структуру вашего кода, и в каких-то ситуациях это хорошо, но не во всех без исключения.

Например, тенденция использовать поверх PHP еще один уровень абстракции в виде универсального фреймворка не может не удручать. PHP со всем его набором инструментов и библиотек для расширения кода сам является своего рода фреймворком. Некоторые программисты стремятся упростить разработку еще больше с помощью шаблонов, на деле же только затрудняя процесс. В итоге интерфейс усложняется, выдает больше ошибок и становится менее эффективным.

5. Снижают производительность

Всё это приводит к тому, что из-за множества уровней абстракции страдает производительность веб-приложения. Прежде чем запрос попадет в код, который написал разработчик, ему понадобится пройти огромное количество проверок и методов различных классов.

Сравните производительность JavaScript и фреймворков при поиске DOM-элемента по ID — первой строкой идет чистый код, данные взяты из этой отличной статьи:

-4

Итак, фреймворки — абсолютное зло, если ими злоупотреблять. Безусловно, их применение облегчает жизнь разработчику, но в то же время развращает. Поэтому всегда задумывайтесь о том, как использовать инструмент оптимальным образом, чтобы не начать стрелять из пушки по воробьям.

Курс «Frontend-разработчик»
Знать нативный JavaScript на отличном уровне необходимо независимо от того, используете вы фреймворки или нет. Приходите на практический курс, где вы обучитесь работе с CSS, JS, jQuery, библиотеками и начнете уверенно программировать за полгода.
Программа курса