Frontend- и backend-разработка: принципы и отличия. Backend разработчик — кто он

Хей, ты открыл эту статью, так как давно мучил вопрос, чем front-end отличается от просто верстки? Тогда попал по адресу. В статье я вскрою назревающую среди курсов программирования опухоль, обман с курсами front-end, да-да я расскажу это, и конечно многие будут недовольны.

Зачем я делаю это? Это первый вопрос который вы должны задать себе все, во всем есть смысл. Но тут все просто, эти парни доставляют кучу неудобств.

Во первых веб студиям, выпуская кого попало, а я как раз там работаю.

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

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

Теперь когда мой интерес вам понятен, надеюсь у нас сложился некоторый уровень доверия. Давайте перейдем к фактам и цифрам, где я попробую объяснить почему цифры именно такие и что же такое front-end в конце концов.

Немного чтоб запутаться, а точнее пример «научного» объяснения термина front-end
Front-end и back-end - термины в программной инженерии, которые различают согласно принципу разделения ответственности между представительским уровнем и уровнем доступа к данным соответственно. Front-end - интерфейс взаимодействия между пользователем и основной программно-аппаратной частью (back-end). Front-end и back-end могут быть распределены между одной или несколькими системами.

В архитектуре программного обеспечения может быть много уровней между аппаратной частью и конечным пользователем, каждый из которых также может иметь front-end и back-end. Front end - это абстракция, которая предоставляет пользовательский интерфейс.
Wikipedia

Эти строчки говорят нам что front-end тоже самое что и верстка, но тем не менее у нас есть верстальщик, а есть фронтендщик, и разница зарплат колоссальна.

В принципе нам неважно что по научному правильно «front-end», нам важно понять за что платят большую зарплату,

Небольшая выборка по требованиям к вакансиям
Сводная таблица самых свежих вакансий с work.ua в одной таблице, вакансии до года опыта.

Навык Встречается в вакансиях верстальщик? Встречается в вакансиях фронтэндщик?
WordPress и прочие CMS 1 1
Дизайн 1 0
Photoshop 3 0
Html/css 5 4
JavaScript(jQuery) 3 4
PURE JavaScript(Prototype and etc) 0 4
Angular.js, React.js, Ember.js and ec 0 5
Node.js 0 2
Bootstrap 2 2
SASS / LESS 0
2
Git 0 2

В среднем, по просмотренным вакансиям, зп в гривневом эквиваленте
верстальщика от 5 тыс грв
фронтэндщика от 12 тыс грв

Вакансии верстальщиков.
Тут особое сосредоточение на базовых навыках вроде HTML, почти все требуют знания WordPress или чего-то такого, одна из вакансий искала совмещенного верстальщика и дизайнера(кстати это весьма круто и актуально, но именно для вакансии дизайнера а не программиста).

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

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

А вот знания PURE JavaScript от таких кандидатов не требуют(вообще ни разу), максимум jQuery или пишут что-то вроде «JS на уровне подключить», прошу обратить внимание на это.

Фронтендщик
На всех вакансиях, тут встречаются почти те же навыки, что и для верстальщика, но посмотрите сколько всего появилось связанного с JavaScript.

Фронтендщик занимается очень похожими с верстальщиком вещами, если очень грубо, то когда в макете JavaScript кода стает в пару раз больше чем HTML, это считают фронтендом, а если уж совсем точно, то:
- верстальщик просто верстает макет, его главная задача чтобы было 100% совпадение верстки и макета что прислал дизайнер.
- фронтендщик создает логику, он конечно умеет верстать, но его главная задача чтобы работали все скрипты на сайте, нажимались все кнопки, действовали все функции что эти кнопки запускают и много другого, но все это так или иначе связано с JavaScript.

Они оба занимаются браузерной частью сайта, вики написала верно, но слишком обобщенно.

Навыки для трудоустройства фронтэндщиком
Давайте разберем список навыков выше и определим с какими из них, для работодателя, вы будете считаться именно фронтэндщиком а не верстальщиком.

PURE JavaScript, PURE значит чистый, это не какой-то там особый JS, это просто значит что вы должны писать простые вещи на JS без применения библиотек.

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

SASS/LESS, Git и прочие штуковины, опять же не встречались в вакансиях верстальщика.

Кстати WordPress и все схожее, может сыграть минусом на собеседовании, сложив ложное впечатления для работодателя что вы обычный cms-очник, уровня всего немного выше, чем типовой верстальщик.

1. все тоже что и верстальщик
2. посреди ночи разбуженным, отвечать на любые простые вопросы по PURE JavaScript
3. знать любой из распространенных JS фреймворков (не jQuery)
4. очень желательно знать Git, SASS/LESS, вещи не сложные, но очень распостраненные.
5. Node.js тоже будет плюсом, но еще не так много студий научились с ним работать, не каждая студия посчитает его весомым бонусом, потому желательно на нем научится делать к примеру мобильные приложения или браузерные игры, таким образом вы откроете фирме сразу новую нишу и они с радостью возьмут вас.

А вот чему учат курсы с первой страницы гугла по «курсы front-end киев»

Навык
Количество вхождений в программы курсов
HTML\CSS
9
bootstrap
4
jQuery
7
PURE JavaScript (основы)
6
PURE JavaScript (продвинуто, ооп и все такое)
2
PURE JavaScript (всякие крутые штуки, т. е. супер продвинуто)
1
Angular.js, React.js, Ember.js
3
SASS / LESS
3
Git
2

Конечно пересекающиеся навыки могут быть в другом курсе, но мы смотрим именно то что в программах курса преподнесенных на сайтах как «курс Front-end».

В среднем все курсы с неплохой программой длятся около 6 месяцев.
- Никто не забыл включить в курс HTML, кроме одной компании, они на курсе Front-end, с какого-то перепугу учат Node.js, минуя браузерный JavaScript.
- Многие учат jQuery, не забывая добавить в программу Git, зато только треть курсов включили в программу фреймворк из списка Angular\React\Ember.
- Ни одна программа не имела полный список навыков, из тех что мы видели в вакансиях.
- Почти все курсы называли программу «курс Front-end» или похожее сочетание со словом «Front-end», но только половина имели в программе JS, в нескольких случаях JS предлагались как «некий продвинутый курс Front-end для гуру», то есть, базовые навыки маскировались под продвинутые. Кстати, 30% курсов не предлагали ничего кроме HTML\CSS, то есть не было даже jQuery.

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

Кстати кому интересны конкретные курсы, шлите ссылку в скайп, проанализирую, опубликую краткое резюме по их программе.

«Трудоустраиваем», серьезно? =)

Этот пункт - самый популярный развод среди известных, можете сразу закрывать страничку курсов если дают 100% гарантии или что такое, он просто вызывает улыбку, поражает количество людей которые в него верят.

Давайте подумаем,
- абстрактный человек окончил курсы с плохими навыками.
- некая веб студия, согласилась взять человека с плохими навыками и платить ему зарплату со своего кармана, потому что какие-то там курсы их попросили.

Можно денежное дерево посадить говорят некоторому Буратино удалось так разбогатеть, или в какой-то финансовой пирамиде удачи попробуйте, шансов однозначно больше.

На работу берут потому что работник принесет деньги фирме, а для этого работник должен иметь некие навыки. Зависимость тут проста, будете иметь хорошие навыки - вас будут искать а не вы умолять их взять к себе, а «тренировочное собеседование», компании тоже «тренируются», таких тренированных у них уже пару сотен побывало, и вы будете сто первыми, отнявших их время.

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

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

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

Некий абстрактный дядя, раз в 3 месяца способен пристроить от 20 человек без навыков на огромную зарплату в фирму которая скорее всего будет даже не украинской? Да если такие идиоты и встретятся, сори за лексику, фирма оплачивая таких «специалистов» разорится.

Давайте еще немного посчитаем, представьте что таких курсов больше 20 в одном только Киеве, и все обещают трудоустроить. 400 человек трудоустроить на хотя бы 500 долл, это 200 тыс. долл. в месяц минимум, и каждые 3 месяца сума растет еще на 200 тыс долл. Минимум. В год выйдет 15 600 000 долларов, а на следующий год уже будет около 600 000 000 долларов, так как прогрессия геометрическая.

Представили? Теперь скажите насколько это реально может быть правдой, ни насколько, это просто обман.

Как тогда так выходит?
Даже на плохих курсах, всегда в группе есть 1-2 человека что занимались сами, выучились что называется не благодаря а вопреки, трудоустроились, за счет навыков. Заключив договор с курсами, они разрешили написать курсам что этих 2 человека выучились благодаря им, хотя это и обман.

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

У вас тоже трудоустраивают?
Кто-то зоркий явно заметит что при нашей веб студии тоже есть курсы, но как же тогда трудоустройство? Объясняю, наши курсы при веб студии, мы готовим специалистов для себя а не на общий рынок трудоустройства. Это выгодно так как даже опытного специалиста приходится доучивать\переучивать под особенности работы конкретных веб студий.

Практика распространенная, вы можете найти много таких студий с курсами , на правах рекламы я тут размещу и курсы при нашей студии , сайт доделывают, но самое главное - программы курсов, там есть. Вернемся к теме, собственно низкая квалификация от типовых курсов и заставляет создавать веб студиям свои курсы, но в рекламу сильно возможности вкладываться у таких курсов нет. Почему? Вот например, вступительный курс стоит 1800 в месяц, максимально 15 человек, итого 22500 в месяц, деньжищи! =D шучу. Только зарплата преподавателя это 7200, аренда 32 тысячи(для курсов пришлось расширить офис до 200 квадратов), амортизация, бесплатный коворкинг для студентов, с рекламой иногда идет в минус даже, и деньги берутся уже с бюджета студии а не курсов.

Курсы\интернатура при крупных компаниях
Где-то тут на доу была тема с этими курсами, в комментариях подскажут если кого заинтересует, но я бы не рекомендовал. Особенность этих курсов в массовости, у них большой поток, а как я говорил, на одну группу, хотя бы 1-2 человек учатся самостоятельно, этих людей им достаточно за счет большого количества групп вообще, тут та ситуация когда просто просеивают кучу народу в поисках уже состоявшегося специалиста(который этого не знает, а потому и чувство собственной важности у него не так высоко, умные компании любят платить меньше, чем работа того стоит).

Почему нельзя сделать по нормальному?
Ведь логично, с точки зрения курсов, им безразлично преподавать хорошо или плохо, для них, клиент должен быть довольным и нести деньги. Но, почему тогда не попытаться сделать нормально?

В двух словах - Дефицит кадров.

Так уж вышло, что большая часть из существующих языков программирования C подобные. То есть когда-то давно был изобретен такой язык как C, а большинство современных языков было написано на нем. Иногда бывало на C писался язык, а на этом языке писался еще один язык, но в предках все равно значился C. Даже когда писали языки не на основе C, то зачастую использовали C подобный синтаксис, так как программисты писавшие, помимо прочего владели несколькими C подобными, а следовательно переносили наработки оттуда. Рассказывать в чем фундаментальность этого языка долго, материалов на эту тему в интернете достаточно много, но так вышло, что практически все из существующих современных яп, очень похожи друг на друга и отличаются в основном мелкими деталями и списком возможностей, по этой причине программисту изучив один яп, легко уже изучить второй, так как второй он по сути на 50-80% уже знает.

А теперь JS. Так сложилась судьба, что JS был создан за 10 дней.

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

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

Давайте посмотрите на графики развития популярности JS

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

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

Такая антиреклама браузеров порождала то что браузеры начали ослаблять контроль ошибок над JS, ведь пользователям сайта не объяснишь что это у программистов руки не оттуда, они просто сменят браузер на тот, где любимый сайт работает корректно, в итоге все снова было списано на баганутось самого JS, хотя багов не было.

Так продолжалось весьма долгое время и нормальных JS программистов, по современному фронтэндщиков просто не появлялось, они в принципе никому небыли нужны.

Но маркетинг развивался и требовал нового! То здесь, то там, проскакивали разные классные штуки сделанные на JS и бизнес начал давить на программистов, ответы вроде «нормально сделать нельзя» встречали достойные «а вон там сделали, и говорят за 15 минут, без багов». В целом с 2011 года примерно, интерес к JS начал расти в геометрической прогрессии, а все потому что некоторых программистов таки заставили почитать документацию, они прочитали, прониклись и обалдели. Кстати я был среди них.

Итак, изучение JS остается сложной задачей для любого уже состоявшегося программиста, по прежнему существует мнение «JS баганутая, эзотерическая штука», и около 15 лет новые специалисты по JS появлялись очень редко, что у нас в результате? Кадровый голод.

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

| Сопровождение

Модели / методы Agile | Cleanroom | Итеративная | Scrum | RUP | MSF | Спиральная | Водопад | Сопутствующие дисциплины Конфигурационное управление | Документирование | Управление проектами

Front-end (фронт-энд) и back-end (бэк-энд) - это обобщенные термины, которые отражают начальное и конечное состояния процесса. Front-end отвечает за получение ввода (входной информации) в любых формах от пользователя и обработку полученной информации в ту форму, которую back-end способен использовать. Front-end - это интерфейс между пользователем и back-end’ом.

Информатика

Многие общепринятые способы взаимодействия с компьютерами могут быть рассматриваться с точки зрения концепции, основанной на «front-end» и «back-end». Например, графический файловый менеджер , такой как Windows Explorer , может быть рассматриваться как front-end к файловой системе компьютера. Для операционной системы командный интерпретатор может рассматриваться как front-end к системе (для обыкновенных пользователей).

Бизнес

  • В производстве телепередач «front-end» обозначает «пробный» или неполный комплект выпусков телепередачи или серий сериала, не достаточный для транслирования на протяжении всего сезона. Телекомпания может купить только часть эпизодов сериала для нового сезона, если он был недостаточно популярен на протяжении последнего сезона. Если же рейтинги телепередачи удовлетворительны, могут быть выкуплены оставшиеся эпизоды (их комплект и называется «back-end»).
  • В производстве телепередач и кинофильмов «back-end» может обозначать соглашение об оплате производства, при котором прокатчик или продюсер оплачивает производство (как минимум, частично) только после получения прибыли (в противоположность предоплате). Это происходит обычно, когда основная часть производства завершена.

Примечания

См. также

Wikimedia Foundation . 2010 .

Смотреть что такое "Фронтенд" в других словарях:

    LLVM Тип Компилятор Разработчик LLVM Developer Group Н … Википедия

    Следующая таблица позволяет оценить возможности различных систем для мониторинга/управления сетью. Для более подробного изучения функциональных характеристик отдельных продуктов смотрите соответствующую статью. Сводная информация Сравнение систем … Википедия

    GNUnet … Википедия

    TortoiseHg … Википедия

    Git … Википедия

    У этого термина существуют и другие значения, см. YUI. Yahoo! UI Library Тип JavaScript библиотека Разработчик Yahoo! Написана на JavaScript … Википедия

    Тип Анонимная сеть ремейлер … Википедия

    Первый выпуск середина 1980 х Последняя версия 3.02 / 28 октября 2012 Написана на C++ Операционная система Linux, Mac OS X и др. UNIX подобные, Windows Тип … Википедия

Веб-разработчик

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

Давайте начнем с определений.

Фронтенд - все, что браузер может читать, выводить на экран и / или запускать. То есть это HTML, CSS и JavaScript.

HTML (H yperT ext M arkup L anguage) говорит браузеру, каково содержание страницы, например, «заголовок», «параграф», «список», «элемент списка».

CSS (C ascading S tyle S heets) говорит браузеру, как отображать элементы, например, «после первого параграфа отступ в 20 пикселей» или «весь текст в элементе body должен быть темно-серым и написан шрифтом Verdana».

JavaScript говорит браузеру, как реагировать на некоторые взаимодействия, используя легкий язык программирования. Большинство сайтов на самом деле не используют много JavaScript, но если вы нажмете на что-то и содержимое страницы поменяется без белого мигания экрана, значит, где-то использовался JavaScript.

Бэкенд - все, что работает на сервере, то есть «не в браузере» или «на компьютере, подсоединенном к сети (обычно к Интернету), который отвечает на сообщения от других компьютеров».

Для бэкенда вы можете использовать любые инструменты, доступные на вашем сервере (который, по сути, является просто компьютером, настроенным для ответов на сообщения). Это означает, что вы можете использовать любой универсальный язык программирования: Ruby, PHP, Python, Java, JavaScript / Node, bash. Это также означает, что вы можете использовать системы управления базами данных, такие как MySQL, PostgreSQL, MongoDB, Cassandra, Redis, Memcached.

Структура взаимодействия бэкенда и фронтенда

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

Серверные приложения

В этом случае HTTP-запросы отправляются напрямую на сервер приложения, а сервер отвечает HTML-страницей.

Между получением запроса и ответом сервер обычно ищет по запросу информацию в базе данных и встраивает ее в шаблон (ERB, Blade, EJS, Handlebars).

Когда страница загружена в браузере, HTML определяет, что будет показано, CSS - как это будет выглядеть, а JS - всякие особые взаимодействия.

Связь с использованием AJAX

Другой тип архитектуры использует для связи AJAX (A synchronous J avaS cript and X ML). Это означает, что JavaScript, загруженный в браузере, отправляет HTTP-запрос (XHR, XML HTTP Request) изнутри страницы и (так сложилось исторически) получает XML-ответ. Сейчас для ответов также можно использовать формат JSON.

Это значит, что у вашего сервера должна быть конечная точка, которая отвечает на запросы JSON- или XML-кодом. Два примера протоколов, используемых для этого - REST и SOAP.

Клиентские (одностраничные) приложения

AJAX позволяет вам загружать данные без обновления страницы. Больше всего это используется в таких фреймворках, как Angular и Ember. После сборки такие приложения отправляются в браузер, и любой последующий рендеринг выполняется на стороне клиента (в браузере).

Такой фронтенд общается с бэкендом через HTTP, используя JSON- или XML-ответы.

Универсальные/изоморфные приложения

Некоторые библиотеки и фреймворки, например, React и Ember, позволяют вам исполнять приложения как на сервере, так и в клиенте.

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

Вне фронтенда и бэкенда

Автономный фронтенд

Веб-приложениям, которые вы собираетесь создавать, подключение к Сети будет требоваться всё меньше и меньше.

Прогрессивные веб-приложения загружаются лишь один раз и работают (почти) всегда. Вы можете хранить базу данных в браузере. В некоторых случаях вашим приложениям нужен бэкенд только при первой загрузке, а затем лишь для синхронизации / защиты данных. Такой уровень постоянства означает, что большая часть логики приложения находится непосредственно в клиенте.

Легкий бэкенд

Бэкенд, в свою очередь, становится легче и легче. Такие технологии, как хранилища документов и графовые базы данных, приводят к сокращению количества обращений к бэкенду для повторного агрегирования данных. Задача клиента - уточнить, какие данные ему нужны (базы данных графов), или извлечь все различные фрагменты данных, которые ему нужны (REST API).

Сейчас можно создавать бэкенд-сервисы, которые работают не постоянно, а только тогда, когда они нужны, благодаря бессерверным архитектурам, таким как AWS Lambda.

Размытые границы

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

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

В любом случае, хорошо, что есть, из чего выбирать. Главное - выбирать именно то, что лучше всего подходит для конкретной задачи. Надеюсь, у вас появилось больше понимания о том, в каком состоянии сегодня находится веб-разработка.

Frontend и backend: об иерархии разработки веб-приложения, точках соприкосновения, сходствах и различиях двух столпов веба, а также сферах их ответственности.

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

Сложная и многоуровневая структура современных веб-приложений требует иерархического разделения процесса их разработки. Исторически этот процесс разделяется на две части: front-end (клиентская) и back-end (серверная). Взглянем поближе на каждую из них, поговорим об их различиях, точках соприкосновения и зонах ответственности

Фронтенд

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

Задачей фронтенд-разработчика является сделать все возможное, дабы предупредить подобное развитие событий. Сфера его ответственности охватывает создание пользовательского интерфейса , что в свою очередь подразумевает некоторую иерархию. Это дизайн макета, верстка, адаптация . Важной частью разработки веб-приложения является UI/UX дизайн - то, что в наибольшей степени влияет на первое впечатление пользователя.

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

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

Библиотека jQuery позволяет легко реализовывать эффективное взаимодействие JavaScript и HTML. Язык TypeScript, компилируемый в js-код, дает возможность использования классов, модулей, шаблонов, являясь, таким образом, полноценным объектно-ориентированным языком. Программная платформа Node.js превращает JavaScript из узкоспециализированного языка в язык общего назначения, «выпуская» его из браузерной песочницы. На клиентской стороне реализуется отправка запросов и обработка ответов сервера , парсинг данных , динамическое изменение отображаемого контента.

Бэкенд

Бэкенд - это серверная логика веб-приложения. Здесь реализуется работа с хранилищем данных , поэтому человек, занимающийся разработкой серверной логики, должен иметь навыки работы с базами данных, а также опыт использования механизмов ORM. Именно от бэкенд-разработчика зависит производительность серверного кода, его масштабируемость, безопасность и рациональность.

Помимо серверной логики в сферу ответственности бэкендера входит отладка и прототипирование с использованием клиентской части приложения. Это влечет за собой необходимость понимания работы стека протоколов TCP/IP, HTTP, REST/SOAP, принципов взаимодействия браузера с веб-приложением.

Несмотря на то, что сфера фронтенда традиционно считается самой богатой и разнообразной в плане технологий, бэкенд также имеет широкий спектр инструментов разработки. Помимо каноничного PHP, несправедливо многими поругаемого, прочные ниши заняли Python с фреймворком Django, Java и Node.js, Ruby, а также набирающий популярность Go.

Заключение

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

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

Фронтенд и бэкенд - вовсе не взаимоисключающие параграфы. Для тех, кто одинаково свободно чувствует себя на обоих поприщах, существует такое понятие, как full stack. “Фулл стэк” -разработчик занимается и клиентской, и серверной частями приложения. Освоение такой профессии - непростое дело. На этому тернистом пути путеводной звездой может послужить онлайн-программа . В ней в оптимальной пропорции совмещаются теория и практика. В процессе обучения вы освоите два языка программирования, пополните свое портфолио пятью проектами, прокачаете коммуникационные навыки и работу с системой контроля версий git.

И напоследок приятный бонус для наших читателей - промокод proglib со скидкой 7000Р.

Старт программы — 21.07.

Браузер отображает всё, что получает от сервера и «понимает». Это даёт основание определить процесс отображения и процесс формирования данных на две составляющие. Посетитель, просматривая страницу, предпринимает действия, что даёт основания функционалу страницы «управлять» сервером.

Сервер формирует первую страницу, когда браузер «заходит» на сайт. Затем сервер ожидает «указаний». При таком положении вещей: front end и back end разработка действительно повод дать работу двум категориям разработчиков параллельно.

Сайт - это единая система

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

На науку инфосфера ещё не тянет. Этап «строительства» программ и сайтов уже позади. Область информационных технологий спокойно развивается, а разработчики действуют на свой страх и риск, уважая мнение коллег, не особенно критикуя варианты работы каждого, принимая происходящее как есть, во всём его многообразии.

Статические страницы уже давно в прошлом, системы управления сайтами уже стали привычными. Значительная часть разработчиков продолжает писать «ручками», а все остальные, кто использует шаблоны, CMS, фреймворки и подобные инструменты ускорения работы над сайтами, время от времени дописывают к своим изделиям коды на серверных или браузерных языках.

Что делать, совершенных инструментов в области сайтостроения ещё нет, приходится использовать всё, что доступно.

О возможностях front-end

Книга «Front-end. Клиентская разработка для профессионалов» - своего рода концентрат качественного и практичного описания JavaScript, HTML5 и CSS3, ориентированного на квалифицированного разработчика, стремящегося к разработке качественного «клиентского» кода.

Node.js, ES6, REST, практичные примеры и отличный стиль. Вне сомнения, "Front end: клиентская разработка для профессионалов" - это отличное и полезное издание, фундаментальные основы для разработчика - библия знаний и процессов их эффективного применения.

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

Сложилось мнение, что есть независимые квалификации по гипертексту (HTML), по языку XML, по таблицам каскадных стилей (CSS) и другим направлениям. Естественно, трудно не разделить работу:

  • среда браузера;
  • «философия» сервера.

Так сказать, очевидно, front end разработка - что это: принципиально важно, но это вовсе не работа на сервере.

Об особенностях back-end

Мир интернета обслуживает великое множество серверов и технологий. Здесь Apache, во всех его действующих версиях, по-прежнему законодатель мод. Семейство юниксоидов по сей день не уступило пальму первенства в серверном деле никаким другим платформам.

С точки зрения разработчика, победила простота, надёжность и стремление к созданию систем, не склонных к синему экрану и «панике», но уверенно обеспечивающих адекватный выход из любой непредвиденной ситуации.

Это уровень серверных технологий, то есть, это не front-end разработка, что это значит - вроде как ясно: здесь нет браузера, но есть PHP или другой серверный язык.

Протокол HTTP (или другой) позволяет браузеру обратиться к серверу за получением страницы, и браузер отвечает взаимностью. Серверный язык отрабатывает функционал, созданный разработчиком "back-end" и передаёт "front-end" в браузер. Это может быть первая страница, обновление страницы или переход к другой странице, включая переход по ссылке на другой сайт, то есть на другой сервер.

Совмещение back-end + front-end разработка: что это, возможно ли это?

Любой прилично настроенный сервер предлагает разработчику массу современных языков и инструментов для любого ответа браузеру. Клиент здесь ни при чём, он действует только через браузер. Хотя клиентом может выступать:

  • интернет-робот;
  • «паук» - модный бренд в сфере парсинга;
  • иное программное изделие.

Браузеров много, но его DOM-ская логика и JavaScript в 99.9% случаев - основа для отображения ответа сервера. Любой поток информации от сервера браузер пытается трансформировать в DOM и предполагает в нем найти:

  • HTML.
  • JavaScript.

Эта святая троица составляет front-end и разработку: что это такое и как это применить - вроде как предельно ясно.

DOM - это дерево, так привычно и традиционно звучит. На самом деле DOM - это, отлично продуманная система, а JavaScript - её родной язык. В этом контексте знания - Front-end: клиентская разработка для профессионалов в pdf-формате - это очень хорошо, но идеально в формате настольной книги, которая всегда на виду.

Существенно: когда браузер открывает сайт, он строит DOM и затем уточняет его, пока клиент находится в сфере компетенции открытой им страницы. Перемещение клиента между страницами, как по внутренним, так и по внешним ссылкам, меняет содержание DOM и JavaScript-функционала. Front-end разработчик имеет все основания и возможности комплексно управляться в браузере, не теряя при этом контроля над управлением.

У сервера - другая философия. Здесь много клиентов, за каждым не уследишь. Но важно не это, а то, что здесь невозможно построить постоянно действующую систему объектов для каждого открытого соединения. На самом деле квалифицированному разработчику это по силам, но этот момент не узаконен ни сервером, ни каким-либо серверным языком.

Система клиент + сервер

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

И браузер, и сервер - совершенно самостоятельные и независимые системы. Кстати говоря, сайты - вовсе не единственное, н что способны и браузеры, и серверы. Это просто отличные программные системы, удовлетворяющие конкретным сферам применения.

Веб-ресурс - причина, по которой браузер и сервер начинают взаимодействие и продолжают его до тех пор, пока клиент не уйдёт на другой сайт.

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

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

Невозможно написать код на PHP, который не владеет тем, что написал CSS-разработчик, скомпоновал специалист по HTML и обозначил JavaScript-программист. Иначе сайт не станет системой, а если сайт - не система, то это не сайт, а пустая трата сил и времени на создание страниц front-end"a, которые отражают то, что смогут разобрать в полученном от back-end"a. Последний отвечает взаимностью, понимая так, как получается, все что прилетает от браузера.

Точка всемирной сети: сайт = система

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

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

Если веб-ресурс удовлетворяет определённым требованиям - он есть и доступен в сети. Если нет, то не важно, как соотносится back-end и front-end - что это такое, так и останется тайной.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: