Перейти к содержимому






* * * * * 5 голосов

Front-End, Back-End и Full-Stack

Написано IT Lessons, в О профессии 11 Март 2019 · 684 Просмотров

front-end back-end full-stack программирование

Опрос: Front-End, Back-End и Full-Stack (9 пользователей проголосовало)

Какая часть в разработке приложений вас больше привлекает:

  1. Front-End (4 голосов [44%])

    Процент голосов: 44%

  2. Back-End (2 голосов [22%])

    Процент голосов: 22%

  3. Full-Stack (3 голосов [33%])

    Процент голосов: 33%

Голосовать Гости не могут голосовать
Front-End, Back-End и Full-Stack

Те, кто начинает обучаться профессии программиста, ориентированного на разработку приложений для конечного пользователя (вне зависимости от выбранного языка), первым делом сталкивается с такими понятиями как Front-End, Back-End и Full-Stack. Эти три загадочных термина имеют важнейшее значение в вопросе практического применения навыков программирования и именно о них сегодня пойдет речь.

 

В настоящий момент времени всё больше и больше приложений (программ), которыми мы пользуемся в нашей повседневной жизни, работают как бы на две стороны, так называемые: front (от англ. «передний») и back (от англ. «задний»). Образно выражаясь, каждая из сторон являясь неотъемлемой частью приложения, делит его на две области взаимодействия, а именно: font – это клиентская часть приложения, т.е. всё то, что вы видите на экранах своих мониторов, телефонах и планшетах и back – это то, что управляет данными и обрабатывает каждое действие каждого пользователя.

 

У всех нас есть электронные устройства и зачастую не одно, это телефоны, планшеты, ноутбуки, компьютеры. С точки зрения программ, каждое ваше устройство – это «клиент», который обслуживается «сервером». Приложения, работая на ваших устройствах, называются клиентскими, а приложения, которые обслуживают их, называются серверными. Разработка именно клиентской части приложения – это и есть Front-End, а разработка серверной части приложений – это Back-End. Давайте рассмотрим эту архитектуру на практическом примере.

 

Допустим, у вас есть телефон и планшет. И на телефоне и на планшете у вас установлен некий мессенджер, например WhatsApp. Вы открываете приложение, видите в нем список своих контактов, список своих чатов, вы можете напечатать сообщение и оно будет отправлено… куда?, нет, оно не будут отправлено вашему собеседнику, оно будет отправлено на сервер (back-сторона), которое его примет, обработает, сохранит и перешлет вашему собеседнику, а точнее на все его устройства (front-сторона), на которых установлен мессенджер. Ранее я сказал, что, открывая мессенджер, вы увидите в нем список своих контактов и чатов, но этот список не хранится на вашем телефоне, он храниться на сервере, у вас есть лишь копия этих данных. Клиентская часть приложения каждый раз делает запрос серверу на этот список. Вдруг на каком-то из своих устройств вы кому-то отправили сообщение, вы увидите это и на другом своем устройстве, происходит это благодаря тому, что все ваши данные и переписки изначально помещаются в «буфер», т.е. хранилище на сервере и потом оттуда по запросу клиентской стороны мгновенно высылаются вам. Это был, пожалуй, самый простой пример, но наиболее узнаваемый принцип взаимодействия клиентской и серверной частей приложения.

 

Изображение

 

В целом разработчики таких приложений делятся на две категории: одни пишут клиентскую часть приложений, а другие серверную часть приложений. Если для разработки серверной части приложений, которая отвечает за обработку запросов, достаточно знать один язык, то для создания клиентских частей необходимо знать несколько разных языков программирования и хорошо разбираться в операционных системах. Ведь в разных операционных системах приложения работают по-разному. Именно по этой причине одно и тоже приложение (условно говоря) требует нескольких разработчиков – одни для iOS (со знанием языков ObjectiveC, Swift), другие для Android (со знанием Java), третьи для Windows (со знанием C#). Хотя в наше время (почти) уже можно использовать один язык и для написания приложений под разные платформы.
Кому-то ближе разработка именно клиентской части приложений, они в большей степени ориентированы на конечный результат, который увидит пользователь. Ведь именно такие разработчики формируют интерфейс, различные кнопочки, меню, текстовые поля, картинки и прочие элементы, которые мы видим на экранах. Именно они создают для нас анимации, плавные переходы, осуществляют взаимодействие с сервером и делают это таким образом, что большинство пользователей об этом даже не догадывается, а видит лишь хорошо работающий интерфейс, который в свою очередь когда-то был разработан дизайнером. Все это является большой работой со множеством аспектов и нюансов и именно поэтому она выделилась в отдельный сегмент IT индустрии, называемый Front-End. В зависимости от типа приложений и платформ, на которых эти приложения должны работать, сами Front-End разработчики тоже делается на «подвиды», кто-то создает клиентские части мобильных приложений, кто-то настольные приложения, кто-то облачные или web-приложения. И в этой связи знания разработчиков ориентированы на какую-то конкретную среду. Нет необходимости охватывать все виды клиентских приложений. Лучше хорошо уметь разрабатывать один вид, но делать это очень хорошо, чем плохо делать разные.

 

Некоторым ближе разработка серверной части таких приложений, они ориентированы на прием запросов от клиентских приложений, их обработку, проверку, сохранение в базах данных, анализ, кеширование и множество других не менее важных и интересных задач, без которых клиентские части просто не будут работать. В этом сегменте существуют свои правила и законы, и объем этой работы ничуть не уступает Front-End процессам, от сюда и пошла необходимость также выделить этот участок работы в отдельное направление называемое Back-End.

 

И, наконец, большая редкость в наше время – это Full-Stack. Этим термином обозначают полный цикл разработки приложения, т.е. и его клиентской (front) части и его серверной (back) части. Соответственно разработчиков полного цикла называют Full-Stack Developer. Это явление пошло со времен, когда один программист мог (умещал) знания о технологиях и клиентской и серверной сторон приложения. Так как сами по себе эти технологии были мало развиты и не представляли большого объема, то это было в порядке вещей. Теперь, когда IT развилось до общепланетарных масштабов пользования, технологии усложнились, значительно усовершенствовались и продолжают это делать с огромной скоростью, а также значительно расширились сферы применения IT, то это привело к тому, что стали появляться и отдельные специалисты, которые узко ориентированы на какую-то конкретную технологию и сторону приложений. Это позволяет сосредоточить больше усилий на конкретном направлении, а не распыляться на всё и сразу. Тем не менее, это не означает, что Front-End разработчики не должны интересоваться Back-End технологиями, а Back-End не должен лезть в дела Front-End – это не так. Ведь обе стороны формируют одно приложение, работающее как единое целое и общие знания о принципах работы каждой их сторон должны иметь и как Front-End разработчики, так и Back-End разработчики.

 

Кому интересно знать больше ⇒ Обучение программированию с нуля
Спасибо за внимание! Удачи вам!






Последние посетители