🔥

Тред (@thought_sync)


У нас в VK нет JS-фреймворка. Для большинства из вас это звучит как признание в слабоумии.

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

По крайней мере по состоянию на лето прошлого года.

Как я уже и говорил, я один из организаторов @spb_frontend и год назад у нас был один из разработчиков девтулов.

В своём выступлении он, в том числе, призывал не бояться писать приложения без фреймворка.

Если задуматься, то зачем нужен фреймворк?

Унификация стиля и архитектуры, набор понятных ограничений, абстрагирование от рутиных операций.

Фреймворк помогает быстро стартовать, но очень редко фреймворки переживают быстрое масштабирование.

В какой-то момент набор ограничений фреймворка перестает подходить для вашего проекта.

Хороший пример фейла фреймворка при масштабировании: twitter и rails. Не знаю помните ли вы, как часто и надолго ложился твиттер.

При масштабировании остается два варианта: городить костыли, либо дописывать/переписывать фреймворка под себя.

Мне кажется именно поэтому сейчас так популярен стек-конструктор react + redux + whatever.

Потому что в ситуации с react + redux у вас есть набор низкоуровневых абстракций, а дальше вы можете кастомизировать все под свои нужды.

При этом новички на небольших проектах стремятся следовать моде.

Тогда как новичкам бы может лучше подошел какой-нибудь полноценный фреймворк, вроде Ember.js.

Но в react + redux они получают в лоб от количества решений и абстракций, который нагородили другие. Фреймворки защищают от такого.

Если вы разрабатываете приложение, где не все ренедерится на клиенте — как интегрироваться с сервером. Популярное решение — REST.

Но что если вам надо присылать куски HTML с серверва по абсолютно разным причинам. От legacy до улучшения производительности?

Если вы используете фреймворк — возникает вопрос, как он вообще будет работать, если вы больше не используете REST?

Скорее всего, вы сможете научить фреймворк работать с кусками HTML с сервера через какое-нибудь грубое вмешательство.

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

И что делать если вы переросли свой фреймворк? Необязательно сразу писать свой.