РАМОЧНЫЕ ВОЙНЫ

Цифровой поиск

… или Почему мой фреймворк лучше вашего!

В наши дни (или за последние 5-6 лет) мы наблюдаем множество новых библиотек/фреймворков, особенно в области Front End (JavaScript). Как человек, который занимается веб-разработкой с середины 90-х годов, я могу сказать вам из первых уст, что это уже слишком. Бедные FE-разработчики не видят пресловутый «лес за деревьями» (фреймворки, библиотеки и т. д.).

(Цифровой) поиск

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

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

Digital Prospecting — это просто новейшая «золотая лихорадка», тогда как «shoevels» — это различные «отрасли», которые возникли вокруг нее — фреймворки, которые многообещают и не дают, курсы с различными технологиями, наборы для подготовки к собеседованиям и т. д. Одним словом — разработчики стали потребителями в этом пространстве.

Нельзя не заметить, что реальная цель здесь не в том, чтобы создать что-то, что поможет разработчикам — хотя некоторые из них весьма полезны, а скорее в том, чтобы создать ажиотаж и мотивировать стадо (разработчиков) для принятия новейших/лучших /последний фреймворк/библиотека. Как только ажиотаж/причуда пройдет — а это неизбежно, — проекты, разработанные с использованием таких инструментов, неизбежно застрянут в той версии, в которой они были разработаны: может шагать дальше.

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

Как не обжечься

  • Все, что вы можете, делайте это с помощью основных функций языка, которые легко доступны. Существует множество ресурсов (для JS-разработчиков — MDN, Javascript.info, Основные концепции языка и т. д.). Вы будете удивлены, как много можно сделать без фреймворка/библиотеки. Кроме того, базовые языки, как правило, развиваются медленнее и требуют большей осторожности в отношении обратной совместимости.
  • Осознайте проблему, которую вы пытаетесь решить. Не для каждой проблемы требуется молоток (т.е. полноценная библиотека/фреймворк)
  • Обратите особое внимание на сообщество вокруг некоторых из них. Если сообщество активно и то, что они описывают, не находится в зачаточном состоянии, вы можете в конечном итоге им доверять. Это все еще не означает, что они не могут внезапно сделать непредвиденный разворот, который заставит ваш проект висеть на волоске.
  • Имейте план на случай непредвиденных обстоятельств: будьте готовы, что что-то может пойти не так с обновлением, и вам придется либо ждать исправления, либо исправлять это самостоятельно.

Краткая история веб-разработки

Как человек, который занимался веб-разработкой почти с самого начала, я видел все этапы ее разработки:

  • Монолитная фаза — середина-конец 90-х: один разработчик мог создать целый сайт, от таблиц БД до стилей CSS и всего, что между ними, просто и почти без усилий. Лучшим другом Дева в те дни были ftp-клиенты (FileZilla, кто-нибудь?).
  • Скомпилированный код — конец 90-х — начало 00-х: с появлением Java и .Net компиляция кода вошла в моду. Все должно было быть предварительно скомпилировано, чтобы быть развернутым.
  • Библиотеки — середина нулевых: (jQuery, Firebug, httpRequest и т. д.). Примерно в то же время веб-разработка вступила в фазу расхождения.
  • Фреймворки/библиотеки/микросервисы — 10-е годы: HTML5, CSS3, адаптивный веб-дизайн, Backbone.js, AngularJS, ReactJS, Vue.js и т. д.

С появлением Node.js (2009 г.) пространство веб-разработки снова начало конвергентно. Node.js обещал, что JS можно будет запускать как на сервере, так и на клиенте, что устраняет необходимость в серверных языках.

Вот краткая история веб-разработки, перечисленная в хронологическом порядке. По большей части это читается как надгробия на кладбище:



Вместо заключения приведем пример того, что можно сделать, просто используя основные функции языка программирования (в данном случае JS):



Ресурсы: