Фронтенд или бэкенд что выбрать

Фронтенд или бэкенд что выбрать

Статья о том, что такое frontend- и backend-разработка, чем отличаются и как взаимодействуют между собой. Разбираемся и выбираем себе направление.

Традиционно эти две сферы разработки разделяют на сцену и закулисье. Во frontend вы работаете на глаза пользователя, в backend же — на его опыт и ощущения. В Skillbox мы учим и frontend, и backend. Остается только выбрать направление своей будущей профессии. А теперь подробнее.

Что такое
frontend-разработка?

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

Пишет про дизайн и маркетинг в Skillbox. С 2011 по 2017 год писала про бизнес в деловые СМИ, соучредитель агентства копирайтинга «Абзац».

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

Чтобы наглядно понять frontend-разработку, откройте страницу любого сайта — перед собой вы увидите интерфейс. Щёлкнув правой кнопкой мыши, откроете код страницы в браузере.

Это и есть пример работы frontend-разработчика, он скачивается в браузер пользователя, и его можно увидеть своими глазами. Код страницы описывает цвета, вёрстку, шрифты, расположение графических элементов и так далее.

Компоненты frontend-разработки

  • HTML (HyperText Markup Language) — язык разметки документов для создания структуры страницы: заголовки, абзацы, списки и так далее.
  • CSS (Cascading Style Sheets) — язык для описания и стилизации внешнего вида документа. Благодаря CSS-коду браузер понимает, как именно отображать элементы. CSS задаёт цвета и параметры шрифтов, определяет, как будут располагаться разные блоки сайта, и так далее. Ещё он позволяет выводить один и тот же документ в разных стилях, например, для печати (обычной или шрифтом Брайля), вывода передачи на экран или чтения голосом.
  • JavaScript — это язык, который создавался, чтобы оживить веб-страницы. Его задача — реагировать на действия пользователя, обрабатывать клики мышкой, перемещения курсора, нажатия клавиш. Ещё он посылает запросы на сервер и загружает данные без перезагрузки страницы, позволяет вводить сообщения и многое другое.

Что такое
backend-разработка?

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

Например, когда вы вводите запрос на странице поисковика и жмёте клавишу Enter, frontend заканчивается и начинается backend. Ваш запрос отправляется на сервер Google или «Яндекса», где расположены алгоритмы поиска. Именно там случается всё «волшебство». Как только на мониторе появилась информация, которую вы искали, — вновь происходит возвращение в зону frontend.

По большому счёту, сервер — это тот же компьютер, только более мощный. Он хранит данные и отвечает на запросы пользователей.

Backend — это процесс объединения сервера с пользователем.

Компоненты backend-разработки

Backend-разработчик применяет те инструменты, что доступны на его сервере. Он вправе выбрать любой из универсальных языков программирования, например, Ruby, PHP, Python, Java. Всё зависит от конкретного проекта и задачи заказчика.

Также для backend-разработки используются системы управления базами данных:

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

Как взаимодействуют frontend и backend?

Взаимодействие frontend и backend происходит по кругу:

  • frontend отправляет пользовательскую информацию в backend;
  • информация обрабатывается;
  • и возвращается обратно, приняв понятную форму.

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

Существует несколько вариантов взаимодействия frontend и backend:

  • HTTP-запрос напрямую отправляется на сервер, сервер ищет информацию, встраивает ее в шаблон и возвращает в виде HTML-страницы.
  • Вариант с использованием инструментария AJAX (Asynchronous JavaScript and XML). В этом случае запрос отправляет JavaScript, загруженный в браузер, а ответ приходит в формате XML или JSON.
  • Одностраничные приложения, которые загружают данные без обновления страницы. Это делается также при помощи AJAX или фреймворков Angular и Ember.
  • Ember или библиотека React помогают использовать приложение и на сервере, и в клиенте. Frontend и backend взаимодействуют через AJAX и HTML-код, который обрабатывается на сервере.

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

Заключение

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

  • Переводы, 13 апреля 2017 в 19:58
  • Мая Устинова
Читайте также:  Программа для очистки диска dvd rw

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

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

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

HTML (HyperText Markup Language) говорит браузеру, каково содержание страницы, например, «заголовок», «параграф», «список», «элемент списка».

CSS (Cascading Style Sheets) говорит браузеру, как отображать элементы, например, «после первого параграфа отступ в 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 (Asynchronous JavaScript and XML). Это означает, что 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.

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

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

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

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

Читайте также:  Жуткие места на гугл картах координаты

Рубрика: Технические науки

Дата публикации: 02.10.2016 2016-10-02

Статья просмотрена: 2023 раза

Библиографическое описание:

Когай Г. Д., Амиров А. Ж., Стародубенко Р. В. Кем быть? Front-end? Back-end? Или UX разработчиком? // Молодой ученый. — 2016. — №19. — С. 78-80. — URL https://moluch.ru/archive/123/33937/ (дата обращения: 01.01.2020).

На сегодня веб-разработка развилась и выросла на столько, что программисты давно разделились, на серверных, клиентских, и дизайнеров. Вас наверно интересует вопрос как же так? Раньше все умели делать и дизайн, и клиентскую, и серверную часть — были так сказать универсалами. Но сейчас всё очень сильно поменялось, программисты стали умнее, технологий стало больше, заказчики стали требовательней. Первое и второе как раз вытекает из третьего. Если вы когда-либо разрабатывали веб, не на готовых шаблонизаторах, то вы наверно имели опыт формирования пользовательских страничек на сервере. Да, это проверенных надежный вариант, но он подразумевает перезагрузку страницы полностью. Этим самым лишая страницу всяких вкусностей, связанных с динамичными данными, для глаза. С целью разрешения этой проблемы и были придуманы аякс (ajax) запросы. Но это совсем пустяки, так как с разрастанием проекта клиентская часть в итоге превращалась в бесконечные лабиринты кода в которые программисты просто боялись лезть. Но это не самые большие проблемы для наборщика кода, в дополнение к этому программисту необходимо было знать и уметь работать с графикой, чтоб создавать дизайн. Для маленького сайта это не проблема, но для реального проекта, с красивым дизайном и анимацией, это превращалось в проблему.

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

Разработка веб проектов по системе front-end и back-end подразумевает иерархическое разделение процесса создания ресурса на две части, на разработку пользовательского интерфейса — (Front-end) и его программно-административной части (Back-end).

Разработка клиентской части (Front-end development) — это работа по созданию публичной части сайта, с которой непосредственно контактирует пользователь и функционал который обычно обыгрывается на клиентской стороне (в браузере).

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

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

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

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

– программисты, которые занимаются серверной частью, в основном работают с серверными языками, такими как Java, C#, Python, Ruby и т. д., а также скорее всего они работают базой данных и языком типа SQL. Основное удовольствие — это решать интересные не тривиальные задачи, придумывание алгоритмов, которые бы позволили быстро обработать большое количество данных. По своему опыту скажу, что красота и интерес в цифрах, т. е. обработать больше данных, за меньшее время, или построить какой-нибудь обработчик, конвертер, хранилище, искусственный интелект. В каком-то роде искусство в цифрах.

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

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

Что нужно знать?

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

Читайте также:  Реклама в правом нижнем углу браузера

Возьмем к примеру серверного программиста. Чтобы покрывать большинство задач в этой области требуется как минимум знать один серверный язык (Java, C#, Ruby, Python и т. д.) также язык для работы с базой SQL (StructedQueryLanguage) или NOSql (NotonlySQL). Это достаточно много чтобы начать реально на этом зарабатывать. Плюс на сегодня в продакшене никто не использует язык программирования в чистом виде, а используют фреймворки, на которые тоже нужно уделять внимание, в среднем от месяца, тщательного изучения.

Программист, который будет заниматься клиентской частью как минимум должен знать JavaScript на хорошем уровне — это плюс, что для написания модели front-end приложения его достаточно. Этим его возможности не ограничиваются, с 2009 года во всю используется серверная имплементация JS — nodejs. Но чаще всего по мимо JS, front-end программист зачастую правит и разметку, и стили, так что к JS автоматом прибавляются требования по HTML и CSS.

Описанные выше должности также требуют изучение различных архитектур и патернов написания приложения.

В отличие от двух предыдущих программистов программист — UXDesigner редко работает с кодом, скорее с дизайном, программами для рисования, photoshop, различные программы — шаблонизаторы. Возможно иногда применяется CSS и HTML. Такие сотрудники должны быть всегда в тренде популярных методов повышения usability (удобство дизайна).

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

Вопрос: Кому учить?

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

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

Как вы думаете почему? А все потому что ВУЗы заточены на получение научных теоретиков, а не реальных практиков.

На самом деле быть программистом практиком очень даже прибыльное дело. Т. к. в мире очень ценятся программисты, которые стремятся делать что-то новое. Их зарплата может доходить до 100 тысяч долларов. Чтобы разбавить эту цифру приведу более-менее реальные цифры, например, Россия:

– программирование 1С — около 60 тысяч;

– пишущий приложения С++ — от 60 до 80 тысяч;

– работающий с PHP — от 30 до 100 тысяч;

– программист JAVA — от 120 до 200 тысяч;

– при основной специализации SQL можно рассчитывать на заработок от 150 тысяч;

– программирование автоматизированных систем управления — от 60 до 70 тысяч;

– системный программист — от 60 до 120 тысяч;

– ведущий специалист компании — от 150 до 600 тысяч в месяц;

– разработчик Flash-приложений может получать от 18 тысяч рублей в месяц.

В Казахстане разделите все на 4–5 и получите реальные зарплаты.

Европа примерно похожа на США.

Не маловажную роль еще играет место работы, если это крупная компания, то велик шанс раскрыть себя, но уровень зарплаты будет зависеть от того как себя покажешь. В маленьких з/п выше, но и ответственность соответственно. Это означает что возможно программист будет вынужден становится универсалом. Например — верстальщик, дизайнером, или front-end’щиком, back-end’щик — front-end’щиком и т. д. По итогам это получается универсал, у которого шире выбор, но как правило этот универсал непрофессионал в узком направлении. За исключением Lead/Cheff developer’ов которые выросли в крупных компаниях, те реально могут быть крутыми универсалами.

QA cпециальности (тестировщики) оплачиваются ниже по сравнению с программистами в среднем в 1.5 раза, т. к. уровень начальных вложений по времени и набору опыта довольно не большой, по сравнению с программистами.

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

Ссылка на основную публикацию
Adblock detector