Исторически сложилось четкое различие в восприятии и ответственности между Front-end и Back-end разработкой. Но по мере развития программирования факторы, которые различают эти два понятия, стираются. С внезапным бумом JavaScript большая часть кода, который был бы написан на другом языке для Back-end, теперь написана на JavaScript, что делает его обязанностью Front-end разработчика. Трудно определить, где заканчивается Front-end и начинается Back-end. Но что привело к этому искажению? В этой статье я исследую, почему разрыв между ними сокращается и приведет ли это к путанице или сплоченности в будущем веб-разработки.

Разделение, как мы его знаем

Внешняя разработка, также известная как «программирование на стороне клиента», связана с любым аспектом разработки, который клиенты или пользователи могут видеть и с которым могут взаимодействовать.

Между тем внутренняя часть известна как «программирование на стороне сервера». Back-end разработчики следят за функциональностью программного продукта или веб-сайта и следят за тем, чтобы все работало как надо.

Хороший способ понять разницу между интерфейсом и сервером — представить себе ресторан. Люди, заказывающие еду, составляют базу пользователей продукта; подаваемая пища является продуктом. Front-end — это персонал, который занимается всем, что происходит за пределами кухни — заказом еды, обеспечением обслуживания клиентов, обеспечением идеальной атмосферы. А бэк-энд — это все, что происходит на кухне.

Проблема, которую нужно решить

Возможно, главная причина, объясняющая сокращение разрыва, — это восприятие внешнего интерфейса как менее благоприятного и легко игнорируемого. В то время как внешний интерфейс уделяет больше внимания дизайну и пользовательскому опыту, в конечном итоге компании стремятся взаимодействовать со своими пользователями, перекладывая бразды правления на решение проблем и разработку продуктов. Фронтенд часто упускали из виду как простое средство сделать веб-сайты «красивыми», особенно на заре вычислительной техники, когда пользовательский опыт не был важным фактором, а функциональность была ключевой. Теперь HTML и CSS часто рассматриваются как бремя, которое разработчики стремятся заменить правильными инструментами и фреймворками. Слишком много устройств и слишком много браузеров, и разработчики предпочитают абстрагироваться от доступности и веб-производительности с помощью таких инструментов и фреймворков, как Bootstrap. Однако Bootstrap — это не навык, а разработка на ванильном HTML, CSS и JavaScript — это навык, который разработчики стремятся перенести на другие языки, чтобы упростить жизнь.

Царство JavaScript

В настоящее время невозможно упомянуть Front-end, не говоря о JavaScript. JavaScript доминировал на арене интерфейсов в течение последнего десятилетия, и статистика показывает, что он будет продолжать это делать. В опросе разработчиков StackOverflow за 2021 год он сохранил свое господство в списке наиболее используемых языков программирования: 68,62% пользователей опроса выбрали JavaScript.

Произошел значительный сдвиг в роли разработчика интерфейса, и JavaScript находится в центре внимания. Работа, которая когда-то требовала, чтобы разработчик отвечал в основном за хороший дизайн и доступность на разных устройствах, теперь включает в себя разработку абстракций, управляемых компонентами, и получение данных из API. Теперь он используется не только для добавления взаимодействия с веб-сайтом, но и для создания самого веб-сайта. Редко разработчики пишут сырой HTML и CSS. Вместо этого генерируется HTML, а CSS внедряется в JavaScript с помощью фреймворка.

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

Кризис идентичности внешнего интерфейса

С одной стороны, есть армия разработчиков, чьи обязанности и наборы навыков в значительной степени связаны с JavaScript и клиентской логикой веб-приложения. С другой стороны, армия разработчиков, которые могут писать HTML, CSS и презентационный JavaScript для создания и проектирования приложений, которые прекрасно выглядят и функционируют в Интернете.

В комментарии к статье Робина Рендла Разработка переднего плана — это не проблема, которую нужно решить Нильс пишет:
❝ Раньше передний конец состоял в основном из HTML, CSS и некоторых JavaScript. Хорошему разработчику внешнего интерфейса нужно было уметь переводить макет Photoshop на идеальный веб-сайт. Фронтенд сегодня — это намного больше. Если вы хотите изучить фронтенд-разработку, люди начинают изучать git, npm, angular, react, vue, и все это называется фронтенд-разработкой. ❞

Разработчики, использующие такие фреймворки, как Angular, или библиотеки, такие как React, должны иметь гораздо лучшее понимание концепций программирования, которые ранее в основном ассоциировались с серверной частью. Компоненты сервера React, например, новая функция позволит React переложить больше работы на сервер. В настоящее время рендеринг библиотеки на стороне сервера просто рендерит и предоставляет браузеру набор компонентов пользовательского интерфейса. С этого момента логика приложения выполняется в браузере. Однако при использовании серверных компонентов часть логики приложения React будет выполняться на сервере. С ростом популярности React с каждым годом React.js превзошел jQuery как самый популярный веб-фреймворк в опросе разработчиков StackOverflow за 2021 год.

Можно ли заменить JavaScript?

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

Состояние равновесия

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

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

Несмотря на то, что они смешались где-то посередине, разрыв между Front-end и Back-end не исчезнет в ближайшее время. Это связано с тем, что интерфейсные фреймворки разрабатываются с учетом требований внешнего интерфейса, которые облегчат работу пользователя. По сути, оба по-прежнему занимаются разными элементами разработки продукта. И, возможно, на самом деле важно не то, куда качается маятник, а то, что они достигают состояния равновесия, когда Front-end и Back-end работают на одну и ту же цель: улучшение пользовательского опыта.

TL;DR:

Хотите узнать больше? Проверьте это:







Обо мне

Привет, ребята! Меня зовут Дия Вагмаре, я учусь на втором курсе IIIT в Аллахабаде. Я являюсь членом крыла FOSS в GeekHaven и интересуюсь веб-разработкой и открытым исходным кодом. Загляните в мои профили GitHub и LinkedIn, чтобы связаться со мной, и не забудьте поставить 👏, если вам понравился мой блог!