Не изобретать велосипед, если есть уже готовая основа, — это выглядит очень привлекательным для начинающих разработчиков. Но с фреймворками, если использовать их бездумно, можно попасть во множество ловушек. Вот пять причин, почему вам не стоит использовать фреймворки.
1. Они ограничивают творческое мышление
Если вы новичок в разработке, начинать изучение любого языка с них очень опрометчиво. Конечно, есть исключения — например, Ruby и Python, которые изначально не предназначены для использования в вебе без «родных» фреймворков. Но для большинства языков работает правило: сначала ООП, затем все остальное. Изучите архитектуру, паттерны, фундаментальные принципы программирования и создавайте проект с нуля, чтобы действительно разбираться в тонкостях.
Если привыкнете к удобному рамочному мышлению, искать нестандартные решения, выходящие за привычную систему, будет непросто, так как окажется, что вы плохо владеете чистым языком. Если же вы в нем ас, то фреймворк — лишь инструмент для оптимизации и структурирования кода.
2. Ужасно сочетаются друг с другом
Самая главная проблема — их невозможно или очень сложно комбинировать друг с другом. Если фреймворки в JavaScript еще можно кое-как соединить с помощью jQuery, то для того же PHP это невыполнимая задача.
Frontend-разработчики вдобавок сталкиваются с тем, что под тот или иной фреймворк нет библиотеки. Или есть, но не с тем функционалом. Адекватный выход из ситуации — писать с нуля или самостоятельно доделать подходящую. Но зачастую в проектах используют jQuery с уже готовым решением просто потому, что время — деньги. В итоге получаются раздутые структуры, от которых затем страдают все.
Вам также будет интересно:
• На что живут программисты: зарплаты, налоги, регионы и возможности
• Чем хорош Node.js: практика современного веб-программирования
• Frontend- и backend-разработка: принципы и отличия
3. Ошибки фреймворка — твои ошибки
Здесь все просто и очевидно. Даже в самом идеальном фреймворке может что-то сломаться и пойти не так. Но ответственным за это будет, увы, разработчик, особенно если он в команде один.
И если у популярной opensource-технологии, как правило, обширное сообщество, а у коммерческой — мощная поддержка со стороны консультантов, которые помогут решить проблему, то с более нишевыми инструментами все обстоит сложнее. Вероятно, со многими вопросами вы останетесь один на один и будете судорожно искать решение.
4. Негибкие и загоняют в рамки
Об этом мы отчасти сказали выше, но повторим еще раз. Даже опытный программист может облениться и попасть в ловушку использования чужих разработок, что уж говорить о новичках. Фреймворк определяет структуру вашего кода, и в каких-то ситуациях это хорошо, но не во всех без исключения.
Например, тенденция использовать поверх PHP еще один уровень абстракции в виде универсального фреймворка не может не удручать. PHP со всем его набором инструментов и библиотек для расширения кода сам является своего рода фреймворком. Некоторые программисты стремятся упростить разработку еще больше с помощью шаблонов, на деле же только затрудняя процесс. В итоге интерфейс усложняется, выдает больше ошибок и становится менее эффективным.
5. Снижают производительность
Всё это приводит к тому, что из-за множества уровней абстракции страдает производительность веб-приложения. Прежде чем запрос попадет в код, который написал разработчик, ему понадобится пройти огромное количество проверок и методов различных классов.
Сравните производительность JavaScript и фреймворков при поиске DOM-элемента по ID — первой строкой идет чистый код, данные взяты из этой отличной статьи:
Итак, фреймворки — абсолютное зло, если ими злоупотреблять. Безусловно, их применение облегчает жизнь разработчику, но в то же время развращает. Поэтому всегда задумывайтесь о том, как использовать инструмент оптимальным образом, чтобы не начать стрелять из пушки по воробьям.
Курс «Frontend-разработчик»
Знать нативный JavaScript на отличном уровне необходимо независимо от того, используете вы фреймворки или нет. Приходите на практический курс, где вы обучитесь работе с CSS, JS, jQuery, библиотеками и начнете уверенно программировать за полгода.
Программа курса