Я внештатный инженер NodeJS. В основном я специализируюсь на бэкэнд-JavaScript — RESTful API, IoT, в основном на всем, что находится на сервере, — но я также немного занимаюсь фронтендом. Таким образом, я знаю, что с этим есть проблемы, но я большой поклонник JavaScript.

Но самая большая проблема для меня — это Вавилонская башня, то есть интерфейсные фреймворки. Эта тема была написана намного элегантнее и остроумнее, чем я могу, но я собираюсь предложить путь вперед.

Хватит писать одностраничные заявки!!!

Я сделал свою долю одностраничных приложений (SPA) за эти годы. Я написал множество вещей для Angular 1, которые все еще находятся в разработке, я играл с Ember, React и еще чем-то, и все они страдают от одних и тех же проблем.

Самая большая проблема, на мой взгляд, заключается в том, что они создают нагрузку на клиентскую машину. Это нормально, когда у вас есть четырехъядерный Macbook Pro I7 за 1500 фунтов стерлингов, как у меня, но у моей свекрови есть ящик для дерьма за 350 фунтов стерлингов, который включается только раз в неделю. Мой может справиться с этим; ее нельзя. И она предпочитает Internet Explorer. Удивительно, но я никогда не встречал архитектора, который считает, что люди до сих пор так живут.

Когда-то существовал способ написания веб-приложений. У вас был бы ваш сервер, который принимал какие-то входные данные, что-то с ними делал, а затем производил какие-то выходные данные. Весь выход. С <head> по </head>.

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

Этот мир все еще существует. У SPA есть место, но не повсеместное распространение, которое им дано. Я предпочитаю Экспресс, потому что он не мешает вам, но есть множество разных способов написать их в NodeJS (и это до того, как вы перейдете ко всем различным языкам).

Причина, по которой я предпочитаю бэкэнд-разработку, заключается в том, что я могу выбирать среду, в которой работает приложение. Привязка всей логики к интерфейсу означает, что вам нужно протестировать свой код на множестве разных платформ. Конечно, вы должны это сделать, если у вас есть какой-нибудь интерфейс jQuery, но гораздо менее болезненно иметь немного логики, чем все ваше приложение.

Но я все еще хочу написать SPA, потому что ‹причины/›

Отлично. Используйте Магистраль.

Он быстрый, легкий, гибкий и позволяет делать действительно сложные вещи. То же самое относится и к React, но, по крайней мере, Backbone не заставляет вас изучать еще одну разновидность JavaScript — вам даже не нужно компилировать приложение Backbone.