Не приносите в гараж, если вам нужна только отвертка.

Бесконечные фрагменты фронтенд-разработки: Что за шутка. У вас есть фанаты React, которые настаивают, чтобы каждая целевая страница с формой подписки на рассылку новостей нуждалась в Redux. Есть фанаты Vue, которые притворяются, что они круче банды React. У вас есть сотрудники Angular, которые слишком заняты зарабатыванием денег на стабильной работе, создавая надежные продукты, чтобы заботиться о политике внешнего интерфейса. А еще есть сумасшедшие, которые никогда не получали памятку: банда ванильного JavaScript.

Сначала звучит странно, но на самом деле лучше всего подходит ваниль. Лично я раньше пользовался всеми основными интерфейсными фреймворками - и даже некоторыми нишевыми, такими как Svelte. Мой вывод, который не станет сюрпризом для многих инженеров: все они одинаково отстойны. Точно так же. Но ванильный JavaScript неуязвим. Вот почему я покинул корабль.

Но сначала пора успокоить людей сзади, размахивающих вилами. Не поймите меня неправильно: каждый из этих популярных фреймворков все еще жив и здоров, потому что он решает проблему. И якобы неплохо. Я имею в виду, что именно поэтому Facebook и создал React. Ясно, что это для чего-то полезно. Но проблема в том, «Что-то?» Наша проблема редко полностью соответствует намеченной цели.

В конце концов, почти никто из нас не создает такой сложный интерфейс, как Facebook. А если да, то у вас проблемы посерьезнее, чем как писать на JavaScript. Дело в том, что использование фреймворка для решения проблемы, для решения которой он специально не предназначалось, связано с расходами. Вроде все накладные расходы от работы в рамках фреймворка. Вы когда-нибудь пробовали настроить библиотеку диаграмм d3 в проекте Svelte? Конечно, нет. Вот почему вы здесь и читаете это. Если бы вы пробовали это сделать, вы все еще пытаетесь сделать это и по сей день. Потому что именно такие задачи заставляют задуматься о своем выборе карьеры.

И это также заставляет задуматься: а что, если мы откажемся от фреймворков? В любом случае, большинство трений вызвано их руководящими принципами. Так что просто удалите рекомендации. А что у тебя осталось? Никаких привязок значений. Утомительные манипуляции с DOM. Неуклюжая функция из 500 строк, позволяющая изменять текст кнопки при наведении на нее курсора. Похоже, плохая сделка. Но вы также получаете кое-что важное: свободу.

Вы можете строить все, что хотите, как хотите. Вы устанавливаете направляющие рельсы. Если вам нужны привязки значений, вы можете их создать. И стройте по-своему. Нет никакой двусмысленности в том, как все работает. Обратной стороной является то, что все должно пройти через вас. Но с другой стороны, все должно пройти через вас. Это только мне кажется, или такой подход кажется более «правильным»? Почему так нормально привозить весь гараж, когда все, что вам нужно, - это отвертка?

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