Category:

Keep It Simple, Stupid


  Тяжеловесные фреймворки нередко заставляют вас использовать кучу разных DSL под каждый отдельный случай. Конфиги пишем на одном языке, роуты задаем на втором, шаблоны на третьем, и так далее. Добавьте сюда еще всякие валидаторы форм, местные "более удобные" альтернативы CSS и JavaScript, описание схемы БД и миграций. Оглянуться не успеете, как начнете писать на десяти совершенно разных языках. В легковесных фреймоворках вас, конечно, тоже ждет мешанина из HTML, CSS, JavaScript и SQL, но эти языки вы хотя бы уже знаете и их все равно меньше.

Пример из практики: как-то раз я проходил собеседование в одну фирму в Испании. Нужно было сделать тестовое задание, за час в режиме live-coding создать одностраничное приложение по документации, сколько успею. Я успел полностью, на JavaScript с одними лишь модульными библиотеками. Даже осталось немного времени написать тесты. Люди не понимали, как можно реализовать роутинг с переключением страниц, сложные интеактивные элементы и другое за такое время без фреймворков. Это ребята, которые, как и я, 10 лет в отрасли, но они изучали конкретные решения, а не принципы.
  Когда вы изучаете фреймворки – вам нужно переучиваться переходя на новое решение, а они появляются постоянно, и большая часть вашего опыта стирается. Когда вы изучаете принципы – они остаются.