Содержание
Backend-for-Frontend: когда простого API не хватает
В одной из предыдущих статей мы писали про использование SDK и API для интеграции продуктов с бэкендом. Продолжаем тему – теперь речь пойдёт про технологию Backend-for-Frontend. Она упрощает разработку сервисов, с которыми одновременно работают множество разных клиентов: компьютеры, смартфоны и планшеты со всеми возможными ОС.
Подход Backend-for-Frontend (BFF) разработали в компании SoundCloud. Pуководитель департамента разработки SoundCloud Фил Калсадо (Phil Calçado) ещё в 2015 году описывал BFF как закономерный этап эволюции, которую прошли современные ИТ-продукты.
В прошлом, аналоговом мире корпоративными системами пользовались только сами компании. Чем больше развивалась цифровизация и омниканальность, тем больше фокус перемещался из корпоративной инфраструктуры вовне. Покупатели стали покупать товары онлайн и со смартфонов, бизнес-партнёры – взаимодействовать с компанией через веб-платформы. Бизнесу стало важно выстроить такую архитектуру, которая позволила бы открывать такой доступ к корпоративным ресурсам.
Разработчики начали создавать API, чтобы сторонние ИТ-сервисы могли подключиться к инфраструктуре. Недостаток этой технологии в том, что она предлагает всем один и тот же набор возможностей. Если вам нужно ограничить объём трафика на смартфонах, а пользователям планшетов предложить собственный метод ввода данных, могут начаться трудности.
Ещё сложнее была задача SoundCloud – компании нужно было интегрироваться со сторонними разработчикам, чтобы те могли встраивать плеер в свои площадки. Для этого API из коробки должно взаимодействовать с любыми платформами, а при каждом обновлении команде нужно убедиться, что доработка не сломает все эти интеграции. На практике этого добиться нереально.
Так и родилась концепция Backend-for-Frontend – легковесного сервиса, который лежит ближе к фронтенду, чем к бэку.
Возможности BFF
Ключевое слово – «легковесный», список возможностей у BFF гораздо меньше, чем у API:
- Работать с микросервисами продукта и получать от них данные.
- Форматировать эти данные, чтобы они корректно обрабатывались на фронтенде.
- Отправлять данные фронтенду.
Компания может параллельно поддерживать несколько BFF: для пользователей на ПК, для Android, для iOS и т.д. А с точки зрения разработчиков главные преимущества – это избавление от многих технических ограничений бэкенда и ускорение выпуска фич:
- Можно строить бэкенд и API от выстроенного клиентского пути и продукта, а не наоборот.
- Можно уже на ранней стадии разработки согласовать контракт взаимодействия и сделать мокап, чтобы строить приложение, вызывая API.
- Становится проще управлять доступом мобильного приложения к бэкенду.
Сейчас BFF в своей практике используют многие крупнейшие технологические компании – например, Netflix и Flickr. Его рекомендуют Microsoft и IBM. Мы поделимся своим опытом из одного из недавних проектов.
Как мы используем BFF
В одном из наших мобильных приложений основным ресурсом для всех сервисов со стороны заказчика выступает сайт. За ним находится шина RabbitMQ, которая подхватывает с сайта входящие события и возвращает результат запросов.
У сайта есть API, но для мобильного приложения его функций не всегда хватало. Не углубляясь в детали, скажем, что это примерно те же трудности, о которых мы писали выше. Поэтому, когда мы запускали в приложении продажу нового продукта, мы построили собственный BFF, чтобы обрабатывать его запросы. В итоге мы можем сами отправлять сообщения Rabbit-у и читать его ответы.
Такая архитектура ускоряет обновление данных в нашем продукте, которые периодически возникали при работе через API. Раньше наш продукт получал данные из собственной БД интернет-магазина, и при работе напрямую с Rabbit просто так обновить данные было невозможно. С внедрением BFF мы запустили новый модуль Data Provider, которая позволяет не ходить в ИМ за обновлениями информации.
Вдобавок, так мы смогли организовать работу асинхронного API заказчика с нашим синхронным сервисом – логика BFF позволяет дождаться, пока обработаются все запросы, прежде чем передавать данные нашему продукту. А когда в перспективе заказчик решит своё API обновить, с нашей стороны доработки потребуются минимальные – просто переориентировать BFF на новые условия.
О чём нужно помнить, создавая BFF
BFF-сервис должен быть лёгким – в этом его главное отличие от API. Не надо прописывать в коде сложную бизнес-логику, строить БД и т.д. Приоритетом должен быть простой обмен данными.
Как мы говорили, у продукта может быть несколько BFF-сервисов под разные клиенты. Они неизбежно будут в какой-то части друг друга дублировать, но нужно следить, чтобы это не выходило за рамки разумного, иначе вы будете тратить лишние ресурсы на их поддержку.
Нужно понимать, что BFF – это что-то вроде переводчика между бэкендом и фронтендом. Поэтому безопасность, отказоустойчивость, мониторинг нужно выстраивать дополнительно.
Ещё по этой теме
Как работают SDK и API
В принципе Model-View-Controller, что такое Frontend и что такое Backend?
Википедия говорит:
MVC обеспечивает переднюю и заднюю части для базы данных, пользователя и
компонентов обработки данных. Разделение программных систем на
переднюю и заднюю части упрощает разработку и отделяет техническое обслуживание.
Я до сих пор не вижу связи между принципом model-view-controller и идеей front — and backend. Может ли модель с ее доступом к базе данных рассматриваться как бэкэнд, а представление-как фронтэнд?
model-view-controller
Поделиться
Источник
Kirinriki
16 июня 2012 в 20:53
5 ответов
- Model View Presenter (MVP) что такое модель?
Я просто не могу понять, что именно такое MODEL в MVP. Если у меня есть многоуровневая архитектура PRESENTATION / APPLICATION / DOMAIN / INFRASTRUCTURE, что именно такое MODEL? DOMAIN объекты, доступные через нижние слои? Отдельный объект, определенный в слое PRESENTATION, который сопоставляется с…
- Model View Controller
Может ли кто-нибудь помочь мне понять метод Model-View-Controller, который будет реализован на WebForms? Я запутался в нескольких вещах: Если у нас есть файлы ABC.ASPX и ABC.CS, что такое просмотр? это только ABC.ASPX файл? или комбинация файла .ASPX + .CS? рассматриваем ли мы файл ABC.CS как…
46
Хорошо … сначала условия:
- Frontend — это части, которые видны пользователям: HTML, CSS, на стороне клиента Javascript. Все это в основном «frontend». В интерфейсе настольного приложения будет GUI.
- Бэкэнд — это невидимая часть. В веб-приложениях это ваш код java, ruby, php или любой другой серверный код. Он может быть либо интерпретирован, либо скомпилирован, потому что «how» он работает, не влияет на «what».
Если вы прочитаете архитектуру графического интерфейса и изучите шаблон MVC в целом, вы поймете, что MVC -это не разделение бэкенда и интерфейса . Особенно когда речь заходит о шаблонах , вдохновленных MVC, которые мы используем для веб-приложений.
Цель MVC и связанных с ним шаблонов состоит в том, чтобы отделить представление от бизнес-логики домена.
Вот основные обязанности MVC частей:
- Модель — бизнес-логика
- Логика представления представления
- Контроллер — изменение состояния модели и представления (на основе пользовательского ввода)
Давайте возьмем пример:
- альтернативное клиентское приложение для twitter
- использует OAuth для аутентификации
- пользователь может вводить различные поисковые фразы
- принимает информацию через Twitter REST API
- проверяет данные
- анализирует ответы JSON
- манипулирует DOM для представления информации
Все это можно сделать с помощью JavaScript на стороне клиента. У вас может быть MVC триада, работающая «frontend» ! В то же время «backend», который обеспечивает REST API, является структурой, подобной MVC. Только на этот раз представление генерирует JSON ответ вместо HTML.
*Conclusion: Вы можете использовать шаблон MVC как на бэкэнде, так и на интерфейсе.**
Постскриптум
Поскольку вы создавали некоторые приложения с Rails, ваше понимание MVC может быть искажено. Причина, по которой я говорю это , заключается в том, что, поскольку RoR изначально был создан как структура прототипирования (обратите внимание на все строительные леса и другие функции для создания кода выброса), а также из-за его происхождения, Rails фактически реализует очень анемичную версию MVP.
Я называю его «anemic», потому что они использовали как представление (это должен быть пассивный объект в MVP, а не простой шаблон) , так и слой модели (да, это должен быть сложный слой, а не коллекция экземпляров ORM) .
Я бы рекомендовал вам прочитать две публикации, чтобы лучше понять эту тему:
Второй вариант максимально близок к первоначальному определению паттерна. Это, вместе со статьей «GUI Architectures», должно обеспечить вам прочную основу по этому вопросу. И книга PoEAA (трудно читаемая, кстати) даст вам контекст, в котором ее можно расширить.
Поделиться
tereško
17 июня 2012 в 00:01
14
Возможно, вам поможет приведенная ниже цифра..
MVC Human language backend/frontend
--------------- --------------- ---------------
model -> data -> backend
controllers -> actions -> backend/frontend (depends on implementation)
views -> GUI -> frontend
Поделиться
Pithikos
02 июня 2015 в 11:02
2
- просмотры = внешний интерфейс
- модели = бэкэнд
- контроллеры = клей между интерфейсом и бэкендом
Поделиться
jopke
16 июня 2012 в 20:58
- Model View Controller. Что такое модель?
Что такое модель ? Я разработчик ASP.Net WebForms. Я изучал MVC в течение нескольких дней. Я могу понять концепцию контроллера и представления, но что такое модель ? Это данные ? Обязательно ли это должно быть с LINQ или мы можем использовать традиционные хранимые процедуры ?
- Что такое «page controller» и «контроллер просмотра страниц»?
Я новичок в ios, я хочу знать, что такое почтение между page controller и page view controller и как использовать его с UIImage и UIImageView?? Пожалуйста, приведите любой пример и ссылку для того же самого… Заранее благодарю вас !!
1
Передний конец-это то, что видит пользователь, которые являются представлениями. Задняя часть — это контроллеры и модель.
Поделиться
Daniel A. White
16 июня 2012 в 20:56
1
В этом случае backend традиционно означает более глубокий код OS или даже ваш код, который не виден/не контролируется пользователем.
Внешний интерфейс — это фактический вид, который видит пользователь.
Поделиться
dgund
16 июня 2012 в 20:59
Похожие вопросы:
Что такое MVC (Model View Controller)?
Я слышал, что термин MVC (Model View Controller) в последнее время бросается с тонной шума, но что это на самом деле?
Java Model View Controller для чтения файлов
У меня возникли большие проблемы с разработкой небольшой программы, которая читает текстовый документ и записывает статистику в текстовый файл. Мы должны использовать формат model-view-controller,…
Что такое Model View Presenter?
Может ли кто-нибудь объяснить как можно проще, что такое шаблон представления модели? В чем разница с Model View Controller ? Что лучше или для какой цели ?
Model View Presenter (MVP) что такое модель?
Я просто не могу понять, что именно такое MODEL в MVP. Если у меня есть многоуровневая архитектура PRESENTATION / APPLICATION / DOMAIN / INFRASTRUCTURE, что именно такое MODEL? DOMAIN объекты,…
Model View Controller
Может ли кто-нибудь помочь мне понять метод Model-View-Controller, который будет реализован на WebForms? Я запутался в нескольких вещах: Если у нас есть файлы ABC.ASPX и ABC.CS, что такое просмотр?…
Model View Controller. Что такое модель?
Что такое модель ? Я разработчик ASP.Net WebForms. Я изучал MVC в течение нескольких дней. Я могу понять концепцию контроллера и представления, но что такое модель ? Это данные ? Обязательно ли это…
Что такое «page controller» и «контроллер просмотра страниц»?
Я новичок в ios, я хочу знать, что такое почтение между page controller и page view controller и как использовать его с UIImage и UIImageView?? Пожалуйста, приведите любой пример и ссылку для того…
Что такое шаблон дизайна mvcl в open-cart?
Что такое шаблон дизайна MVCL в open-cart, я слышал о mvc (model , view, controller), но не понимаю, что такое MVCL и что это такое.
Yii2 связи между Frontend и Backend
как я могу переключиться с frontend на backend, используя ссылки в приложении yii2? На самом деле я могу устанавливать связи только между frontend или backend, а не между frontend и backend. Я…
что такое backend и frontend в traefik.toml
Читая документы Traefik я был сбит с толку когда столкнулся с конфигурационным скелетом который был упомянут в документации : traefik.toml: defaultEntryPoints = [http, https] [entryPoints]…
Frontend – и backend–разработчик: разбор профессий
Встречают по одежке — провожают по уму. В жизни эта аксиома работает как: надеть модный костюм, чтобы привлечь внимание; прочесть умную книгу, чтобы произвести впечатление и не тормозить. В сети — тот же принцип.
На страже красоты и разума фронтенд и бэкенд воины. Кто эти люди? Разбираемся вместе.
Что такое фронтенд?
С английского «front» — лицевая сторона, фасад. Это и есть основа трудов frontend разработчика — создание функционального интерфейса веб–ресурса или приложения, максимально «правильного», привлекательного, удобного для пользователя. Не путать с web–дизайнером, верстальщиком и прочими млекопитающими! Общее — чувство прекрасного, но, выбрав профессию фронтендщика, готовьтесь стать бойцом более широкого профиля.
Основная задача — преобразование элементов сайта в программный код и контроль корректности их работы. По сути, вы прокладываете рельсы между пользователем и программно-аппаратной частью, конструируя юзабилити–обложку.
Frontend разработчик реализует визуал очередного проекта, с помощью следующих базовых навыков:
- Создание годной структуры веб–страницы. Здесь неотъемлемы знания HTML–разметки, умение выделять логические блоки, структурировать разделы, заголовки, ссылки.
- Для доработки созданного ранее каркаса и внешнего вида страницы в целом применяется язык стилей CSS: задаем фоновый цвет, окрашиваем элементы, регулируем шрифты и размеры полей. Связкой HTML+CSS давно никого не удивишь, поскольку это основа для работы преимущественного числа современных интернет–сайтов.
- Интерактив на базе языка программирования JavaScript, как вишенка на торте. Некий этап волшебства фронтенд разработки. Оживление элементов статичной страницы: танцующие картинки, выпадающее меню, всплывающие окна–подсказки, изменение цветовых решений форм — все, что душе заказчика угодно.
Что такое бэкенд?
Говоря «back» (с английского), подразумеваем то, что находится в фоновом режиме и скрыто от глаз аудитории. Это отнюдь не указывает на малозначимость понятия, совсем наоборот — «начинка» решает. Алгоритмы, логика, функции и возможности веб-площадки ложатся на плечи backend разработчика. Он запускает «сердце» программного продукта, отвечая за жизненно важные механизмы.
Качественный бэкенд — надежная программно–аппаратная часть веб–сервиса — тот самый набор серверов, систем хранения данных и софта, работающих во благо единого ресурса.
Внешний вид формы для онлайн заказа вашей любимой пиццы — работа фронтмена; обработка информации о видах, количестве, размере, добавках, данных доставки, способа оплаты и вывод результата на экран гаджета, согласно выпавшему сценарию, — забота бэкендера.
Какие знания, являются ключевыми для backend разработчика?
- PHP, Ruby, Python, Perl, Java. Изучение хотя бы одного серверного языка — проходной билет для успешного старта в веб–программировании.
- Без понимания СУБД (системы управления базами данных) не обойтись: Oracle, MySQL, Ms SQL Server. Начав обучение с одной, проблем с переходом на другую не возникнет, в связи со схожестью языка запросов в основе баз данных.
- Фреймворк — набор библиотек для упрощения и ускорения процесса разработки веб-сайта: Django, Kohana, Symfony, Yii и другие.
- Технологии frontend разработки — для слаженной работы криэйторов.
- Безусловным козырем будет знание английского языка с техническим уклоном на уровне не ниже intermediate (как, впрочем, и для коллеги–фронтендера).
Точки пересечения
Оба спеца должны иметь четкое представление о процессах, происходящих на параллельных фронтах. Нельзя сказать, кто важнее и нужнее. Скорее: «Если бы не я, не было б тебя», причем эта фраза применима с обеих сторон. Смежные знания обеспечат оперативное внесение правок, дополнений, устранение ошибок, понимание того, как реализуется тот или иной функционал.
В зависимости от структуры команды, общение между полярными разработчиками в ходе работы над проектом происходит как напрямую, так и через посредника — тимлид, project manager. В остальном, каждый на своем берегу.
Frontend или backend: что выбрать?
«На вкус и цвет все проектировщики разные» — скажите вы, и оспаривать это не имеет никакого смысла. Каждый выбирает то, что ближе.
Считается, что креативная личность с богатым воображением и творческим порывом — идеальное описание фронтенд разработчика; математический склад ума — дорога в бэкенд.
Но, если не знаете с чего начать, – начните с азов интерфейса. Визуальное оформление показалось слишком скучным? Углубляйтесь в серверную часть создания веб–проектов.
Усовершенствование, при этом, никто не отменял. Ежесекундное появление бесконечного количества дополнений, фреймворков и расширений держит в тонусе. Хотите быть востребованным? Непрерывно изучайте их. Сравнивая направления, фронтенд технологии значительно уступают бэкенду в стабильности. Последний имеет более долгий жизненный цикл, тогда как фронт динамично развивается, добавляя новые инструменты в оборот.
Чувствуете в себе потенциал «работать за двоих»? Ваша стезя — fullstack — проработка двух направлений одним специалистом. Универсальность всегда в цене и почете, а это неоспоримое преимущество перед узкопрофильными соратниками.
Не знаешь, какой курс выбрать?
Запишись на бесплатную консультацию и мы поможем в выборе правильного направления
Как стать фронтенд разработчиком и где учиться бэкендингу?
Вопрос реально рассмотреть с позиции: «Я все могу, я все загуглю». В сети выложено, собрано, структурировано столько мнений, методов и примеров, что, при правильном подходе, селфстадинг приносит желанные плоды в денежном эквиваленте.
Здесь нужно честно себе признаться, насколько вы дисциплинированы, усидчивы, мотивированы. Трезво оцените силы в сортировке информации — из моря обучающей веб-пищи вам предстоит выбрать самую вкусную горсть, имеющую ценность для front– и backend разработчиков.
Можно научиться танцевать и без помощи балерины. Но не факт, что бывалые знатоки назовут эту последовательность движений танцем, а не рукопашным боем.
Ваша цель — обучиться качественно и быстро под патронажем опытного сэнсэя? Выбирайте курсы. Если душа просит frontend, стартовать поможет «Курс верстки (HTML5+CSS3+JS)» от Wezom Academy:
- 32 часа = 16 занятий брейнсторма нон-стоп;
- почва для дальнейшего изучения программирования и выбора направления «по душе»;
- практические отработки.
Выбирая место в IT–индустрии, оценивайте как востребованность профессии, так и личные интуитивные предпочтения, способ мышления. Если, дочитав до этого места, вы определились — мишн комплит, как говорится.
Еще думаете? Стучитесь в окно обратной связи за экстренной помощью и просто поговорить о погоде.
Back-end и front-end разработка: что это такое?
Достаточно старая тема, но хотелось бы для новичков прояснить грань между front end и back end. Сегодня я вам расскажу особенности и различия в front-end и back-end разработке.
На самом деле, достаточно многие умения веб-мастера (например, верстка) являются неотъемлемой частью во front end.
Back end разработка: что это?
Прежде, чем перейти к рассказу о двух основных понятиях этого материала, вы должны запомнить, что весь интернет строится на двух основных вещах: это сервер и клиент.
Сервером называется компьютер, который находится в дата-центре. На нём установлено необходимое серверное ПО, предназначенное для обслуживания клиентов. Разработчиков, занимающихся созданием сайтов, интересует веб-сервер. Чаще всего встречаются веб-сервера Apache с PHP (также бывает и nginx).
PHP — один из самых популярных языков программирования, который используют для написания подавляющего количества различных скриптов. В частности, именно им были написаны популярные CMS для сайтов. Back end — это разработка, связанная с написанием скриптов для сервера.
Front end разработка: что это?
Клиентом принято называть пользователя, который подключается к сайту. Связующим звеном между клиентом и сервером является клиентское ПО, то есть браузер.
Когда любой веб-мастер занимается созданием сайта, он хочет сделать его красивым и удобным в использовании, чтобы он одинаково отображался во всех браузерах. Вот и получается, что front end — создание клиентской части сайта. Такой разработчик пишет код по клиентской части, а также верстает шаблоны.
Современный специалист в этой области универсален и разбирается во многих вещах. Он может быть дизайнером, верстальщиком и даже программистом. Он хорошо знает HTML5, CSS3, JavaScript и другие языки программирования. Многие из них свои персональные наработки и прочее хранят в виде framework.
Источник: Михаил Семин
gsv.ru — Что такое frontend и backend
Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях
Front-end и back-end (фронтенд и бэкэнд) — это термины в программной инженерии, которые различают согласно принципу разделения ответственности между представительским уровнем и уровнем доступа к данным соответственно.
Клиент-серверная архитектура интернета
Перед тем как разобраться, что такое frontend и backend, давайте в общих чертах рассмотрим как работает интернет и как мы, пользователи, используя интернет, получаем необходимую нам информацию.
Интернет построен по клиент-серверной архитектуре, давайте рассмотрим следующие понятия:
Сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно сам компьютер, на котором это программное обеспечение установлено.
Клиентом называют Ваш компьютер, который подключен к глобальной сети интернет. На данном компьютере установлено клиентское программное обеспечение, необходимое для связи с сервером, оно называется браузер. Браузером (веб-обозревателем) — называется программа с помощью которой пользователи просматривают веб-сайты.
Одна из главных задач веб-сервера принимать запросы от пользователей (клиентов), обрабатывать их и выдавать ответы. Эти ответы представляют из себя HTML-страницы с стилями оформления, анимацией, изображениями, медиа, flash объектами, javascript скриптами и т.д. Это и есть frontend.
Используя клиентскую часть программы, т.е. frontend, пользователь переходя по ссылкам получает информацию, отправляет, сохраняет или изменяет данные. При этом он делает запросы и взаимодействует с другой частью программы, которая называется backend. Можно сказать, что frontend — это интерфейс взаимодействия между пользователем и backend.
Таким образов, можно сделать вывод:
frontend (фронтенд) — все что видит клиент, это публичная часть сайта, с которой непосредственно контактирует пользователь.
backend (бэкэнд) — серверная часть (работа с БД, обработка данных, и т.д.), вообщем все, чего клиент не видит.
frontend и backend разработчики
В соответствии с таким разделением, в сфере веб-разработчиков тоже произошли изменения, специалисты стали разделяться на frontend и backend разработчиков.
frontend и backend разработчики
Frontend-разработчик занимается созданием клиентской части сайта. Он верстает шаблона сайта и создает пользовательский интерфейс. Работа frontend-разработчика требует от него больших знаний. Он просто обязан обладать дизайнерским вкусом, быть искусным верстальщиком и хорошим программистом.
Backend-разработчик занимается не менее сложными вещами. Он производит обработку пользовательской информации полученной из frontend, и возвращает обратно результат в понятной форме. В руках этого специалиста сосредоточена все архитектуру создаваемого или существующего проекта, ядра сайта, он должен связать и настроить функциональные возможности сайта, получить определенные данные, оптимизировать сложные запросы, и.. как это часто бывает изменить, доработать или создать, какие то, новые решения, связав их с уже существующими. А это уже не шутки. )
Если следовать тенденции, то backend-разработка для серьезных бородатых дядей. В большинстве случаев работа backend-разработчика не может быть представлена визуально. Пример, backend-разработчик интегрировал две системы и автоматизировал выгрузку данным между ними. Ну и что, зато frontend-разработчик В. Пупкин такую анимированной галерею разработал, вот это да!
Термины frontend и backend по отношению к веб-сайтам
При разработке сайтов происходит разделение процесса его создания на две части:
- frontend — разработка пользовательского интерфеса
- backend — его административная часть
Определить языкАзербайджанскийАлбанскийАнглийскийАрабскийАрмянскийАфрикаансБаскскийБелорусскийБенгальскийБирманскийБолгарскийБоснийскийВаллийскийВенгерскийВьетнамскийГалисийскийГреческийГрузинскийГуджаратиДатскийЗулуИвритИгбоИдишИндонезийскийИрландскийИсландскийИспанскийИтальянскийЙорубаКазахскийКаннадаКаталанскийКитайский (Упр)Китайский (Трад)КорейскийКреольский (Гаити)КхмерскийЛаосскийЛатинскийЛатышскийЛитовскийМакедонскийМалагасийскийМалайскийМалайяламМальтийскийМаориМаратхиМонгольскийНемецкийНепалиНидерландскийНорвежскийПанджабиПерсидскийПольскийПортугальскийРумынскийРусскийСебуанскийСербскийСесотоСингальскийСловацкийСловенскийСомалиСуахилиСуданскийТагальскийТаджикскийТайскийТамильскийТелугуТурецкийУзбекскийУкраинскийУрдуФинскийФранцузскийХаусаХиндиХмонгХорватскийЧеваЧешскийШведскийЭсперантоЭстонскийЯванскийЯпонский |
| АзербайджанскийАлбанскийАнглийскийАрабскийАрмянскийАфрикаансБаскскийБелорусскийБенгальскийБирманскийБолгарскийБоснийскийВаллийскийВенгерскийВьетнамскийГалисийскийГреческийГрузинскийГуджаратиДатскийЗулуИвритИгбоИдишИндонезийскийИрландскийИсландскийИспанскийИтальянскийЙорубаКазахскийКаннадаКаталанскийКитайский (Упр)Китайский (Трад)КорейскийКреольский (Гаити)КхмерскийЛаосскийЛатинскийЛатышскийЛитовскийМакедонскийМалагасийскийМалайскийМалайяламМальтийскийМаориМаратхиМонгольскийНемецкийНепалиНидерландскийНорвежскийПанджабиПерсидскийПольскийПортугальскийРумынскийРусскийСебуанскийСербскийСесотоСингальскийСловацкийСловенскийСомалиСуахилиСуданскийТагальскийТаджикскийТайскийТамильскийТелугуТурецкийУзбекскийУкраинскийУрдуФинскийФранцузскийХаусаХиндиХмонгХорватскийЧеваЧешскийШведскийЭсперантоЭстонскийЯванскийЯпонский |
|
|
|
|
|
Звуковая функция ограничена 200 символами
Сравнение frontend и backend веб-разработки
Языки, платформы и методы могут отличаться. Но есть два аспекта веб-разработки, которые общие для всех задач: front-end и backend. Цель этой статьи заключается в том, чтобы объяснить front-end и back-end разработку с профессиональной точки зрения.
Это то, что пользователь видит, трогает и испытывает. Frontend-приложения – это меньше кода и больше заботы о том, как пользователь будет воспринимать интерфейс.
Если в 2004 году вы пользовались MySpace, то остались довольны опытом взаимодействия. Но как только начали использовать Facebook, наверняка получили лучший опыт. Вы поняли, что можете взаимодействовать с более простым дизайном без мигающих рекламных баннеров, с легкостью находить друзей и т. д.
Технические навыки, необходимые для frontend-разработчиков:
- HTML. Весь код в веб-приложении конвертируется в HTML. Понимание веб-разработчиком HTML-кода аналогично пониманию отвертки плотником;
- CSS. Сам по себе HTML довольно прост. Он реализует основные стили, но для создания хорошего интерфейса разработчики должны иметь опыт работы с CSS. Каскадные таблицы стилей предоставляет цвета, кнопки, подсветку и многое другое, что можно использовать для улучшения веб-страниц. Такие языки, как Sass и LESS, также известные, как прекомпиляторы CSS, они используются для написания более эффективного и управляемого кода CSS;
- JavaScript. Это не только язык backend разработчиков. JavaScript выполняется на компьютере пользователя. Перетаскивание, бесконечная прокрутка и видео, оживающие на веб-странице, могут быть запрограммированы с помощью JavaScript. Этот язык настолько популярен, что целые фреймворки построены исключительно для упрощения создания интерфейсов приложений. Такие фреймворки, как Angular, Ember, React и Backbone, используются для реализации сложных JavaScript-интерфейсов.
Интерфейс приложения может быть самой красивой веб-страницей, но это ничего не стоит, если приложение не работает. Backend разработка отвечает за вычисления, бизнес-логику, взаимодействие с базами данных и производительность. Большая часть кода, необходимая для работы приложения, будет выполняться на сервере. Внутренний код запускается на сервере. Это означает, что разработчики должны понимать не только языки программирования и базы данных, но и архитектуру сервера.
Технические навыки, необходимые веб-разработчику back-end:
- Ruby. Синтаксис Ruby легко читается даже людьми, которые не знают этого языка. Ruby on Rails, который представляет собой фреймворк (построенный на основе Ruby) для создания веб-приложений. Это один из самых популярных инструментов веб-разработки для малого бизнеса и стартапов. Такие компании, как Twitter, Hulu и Github используют Ruby on Rails;
- Python. Популярный веб-фреймворк Django делает Python популярным для создания веб-приложений. Dropbox был построен с использованием Python для выполнения большей части своего серверного кода;
- SQL. Это универсальный язык запросов к базе данных. SQL используется для взаимодействия с базами данных, которые являются частью каждого веб-приложения. Независимо от того, какой язык выбрали для создания веб-приложения, frontend и backend разработку, вы все равно будете использовать SQL для взаимодействия с базой данных.
Дайте знать, что вы думаете по данной теме в комментариях. За комментарии, отклики, подписки, лайки, дизлайки низкий вам поклон!
Данная публикация является переводом статьи «A Comparison of Frontend and Backend Web Development» , подготовленная редакцией проекта.
Backend для Frontend-разработчика и наоборот: осваиваем новое
Фронтендеру не помешает знать, как работает Backend, и наоборот. Сразу определитесь, чего хотите: полного перехода или простого знакомства?
Часто разработчики задаются таким вопросом, глядя на коллег «по цеху», которые вроде бы фронтендеры, но также неплохо справляются и с беком, знают принципы работы веб-сервера, пишут качественные приложение под API.
Мы не будем говорить о полном переходе на Frontend или Backend: просто дадим несколько дельных советов, которые поспособствуют всестороннему развитию.
Начнем с определения самого понятия «Backend». Это программно-аппаратная часть сервиса, все процессы, происходящие непосредственно на сервере, в том числе работа с базами данных. В контексте клиент-серверного ПО это сервер, клиент – Frontend, а между ними HTTP – система запросов от браузера и ответов сервера HTML-страницей.
Иными словами, уровня всего три: интерфейс, средний уровень (точки соприкосновения) и сервер.
Во многих проектах под бек-разработкой также подразумевается работа с «прослойкой». И вот если вам нужно улучшить понимание взаимодействия фронта с беком, обратите внимание на средний уровень:
- Изучите разработку API.
- Особое внимание стоит уделить REST и, возможно, GraphQL.
- Поймите разницу между ошибками 422 и 401, а также GET/POST/PATCH/PUT, etc.
Если же этого недостаточно, и вы действительно заинтересованы в бекенде, то:
- Изучите аппаратные ограничения.
- Освойте Linux.
- Узнайте о шинах сообщений (message bus), очередности и межпроцессных коммуникациях.
- Узнайте об обнаружении сервисов (service discovery) и различиях между Eventually Consistent и Strongly Consistent.
- Изучите информацию о контейнеризации.
- Поймите, как работает система.
- Изучите алгоритмы, включая графовые алгоритмы и определение алгоритмической сложности.
Полезно в обоих случаях:
- Освойте SQL.
- Познакомьтесь с несколькими СУБД, такими как NoSQL, MongoDB, Elastic Search, Redis и т. д.
- Узнайте о безопасности.
Не беспокойтесь о конкретных языках: данные концепции подходят для любого.
Пришло время взяться за изучение трех столпов фронтенда:
- HTML
- CSS
- JavaScript
Это главное. Существуют различные библиотеки и фреймворки, которые также используются во Frontend-разработке. Среди них Bootstrap, jQuery, AngularJS и многие другие. Но в первое время даже не думайте о дополнительных инструментах. Все они основаны на HTML, CSS и JavaScript. Изучите основы, и у вас не будет проблем с переходом к библиотекам и фреймворкам.
Опыт в разработке интерфейса делает специалиста по бекенду более востребованным, особенно если речь идет о несложном проекте. У такого разработчика намного больше шансов получить повышение или устроиться на более высокооплачиваемую работу, нежели у фронтендера, лишь издалека прощупавшего бекенд.
Среди статей Библиотеки программиста вы найдете немало полезных материалов, которые позволят лучше понять как фронтенд, так и бекенд:
Front End и Back End разработка: в чем разница?
Программирование охватывает широкий круг тем и навыков. Тем, кто заинтересован во внедрении в отрасль, может быть сложно сузить область исследований, не понимая ролей и задач, которые с ними связаны. Двумя распространенными карьерными направлениями являются фронтенд веб-разработка и серверная веб-разработка.
Есть много общего между карьерой разработчиков переднего и заднего плана, включая заработную плату, продолжительность карьеры и рост занятости.В этом руководстве мы помогаем разобрать более сложные детали как серверной, так и интерфейсной разработки, чтобы помочь вам решить, в какой области вы заинтересованы. Мы рассмотрим:
Что такое веб-разработка?
По сути, веб-разработка — это разработка веб-сайта для Интернета. Веб-разработка обычно относится к аспекту веб-сайта, не связанному с дизайном, который включает использование языков программирования, разметки и сценариев для создания функций и функциональности. Разработчики сосредотачиваются на технической части создания веб-сайта, такой как создание макета, программирование и интеграция приложений и графики.
Какие типы веб-разработки существуют?
Back-end, front-end и full-stack веб-разработка — это три отдельных карьерных пути, которые иногда могут показаться запутанными в сфере технологий. Проще говоря, серверные разработчики сосредоточены на данных, моделировании и серверной части веб-сайта. Разработчики интерфейса помогают создавать то, с чем пользователи взаимодействуют и что видят. full stack Developer выполняет некоторые или все вышеперечисленное.
Что такое Front End разработчик?
Front End Development Определено
Front end разработка — это часть веб-разработки, которая кодирует и создает элементы внешнего интерфейса веб-сайта, то есть функции, которые непосредственно просматриваются и доступны конечному пользователю или клиенту.По сути, фронтенд-разработчик несет ответственность за все, что вы видите, и работает над улучшением взаимодействия с пользователем, чтобы обеспечить бесперебойную работу. Они помогают создать общий дизайн и эстетику в дополнение к отладке и использованию статического анализа кода.
Навыки фронтенд-разработчиков
Внешние разработчики несут ответственность за реализацию визуальных компонентов на веб-сайте, а также за интерактивные функции, такие как навигация, кнопки или все, что улучшает общее удобство использования. HTML, JavaScript и CSS часто используются для обеспечения бесперебойной работы визуальной (или клиентской) стороны сайта, чтобы пользователи могли свободно и комфортно взаимодействовать с ним.Хотя некоторые разработчики интерфейсов занимаются веб-дизайном, другие работают с макетов веб-дизайнера.
Некоторые навыки, необходимые для работы фронтенд-разработчика, включают:
- Хорошее владение языками программирования фронтенда
- Умение создавать адаптивный дизайн
- Знание тестирования и отладки
- Понимание фронтенда инструменты и функции разработки, такие как автоматизация, системы управления контентом, системы контроля версий, API и фреймворки.
Вакансии фронтенд-разработчиков
Фронтенд-вакансии варьируются от разработчиков, которые владеют определенным языком кодирования, до тех, кто обладает рядом навыков, выходящих за рамки фронтенда. Поскольку интерфейс подразумевает визуальную эстетику, эти работы могут также включать графический дизайн и контент. Многие навыки пересекаются между разными должностями, и определенные названия могут означать разные вещи для каждой компании.
Front End Jobs:
- Front End Developer
- CSS / HTML Developer
- Front End Web Designer
- Front End SEO Expert
- Full Stack Developer
- UI Developer
Front End Development Заработная плата
В соответствии с Зарплата.com, средняя зарплата фронтенд-разработчика в США составляет около 119 200 долларов и колеблется от 95 700 до 140 000 долларов. Их средняя зарплата составляет 144 200 долларов в Нью-Йорке, 149 400 долларов в Сан-Франциско и 130 400 долларов в Сиэтле. Заработная плата часто зависит от образования, опыта и отрасли.
Что такое общие языки фронтенд-разработки?
Основными языками программирования переднего плана являются HTML, CSS и JavaScript. Внешние разработчики сосредотачиваются на сеточных системах и макете, а также на типографике и теории цвета, используя принципы UX / UI для создания беспрепятственного взаимодействия.
Язык кодирования | Определение словаря | Использует |
---|---|---|
HTML | Язык гипертекстовой разметки (HTML) — это стандартизированная система для маркировки текстовых файлов для получения шрифта, цвета, графики , и эффекты гиперссылок на страницах World Wide Web. | HTML обеспечивает правильное форматирование текста и изображений, чтобы ваш Интернет-браузер мог отображать их так, как они должны выглядеть. |
CSS | Каскадные таблицы стилей (CSS) используются для форматирования макета веб-страниц. Сюда входит управление стилями текста, размерами таблиц и цветами. | CSS адаптирует представление веб-страницы для различных типов устройств, таких как большие и маленькие экраны. Он также создает удобные для печати страницы. |
JavaScript | JavaScript — это объектно-ориентированный язык компьютерного программирования, обычно используемый для создания интерактивных элементов на веб-странице. | JavaScript включает динамические компоненты пользовательского интерфейса, такие как флажки и поля поиска. |
Что такое серверный разработчик?
Определение серверной разработки
Back-end разработка удачно названа для веб-разработки, которая происходит на внутренней стороне программ. В отличие от клиентской разработки, которая фокусируется на продуктах и программах, ориентированных на клиентов, внутренняя разработка затрагивает логику и интеграцию серверных веб-приложений.Разработчики серверной части пишут код, чтобы помочь базе данных и приложению взаимодействовать. По сути, внутренний разработчик обрабатывает то, чего вы не видите; они отвечают за внутреннюю часть веб-сайта, которая включает в себя серверы, базы данных и приложения.
Навыки разработчиков серверной части
Разработчики серверной части несут ответственность за обеспечение работы веб-страниц и приложений с использованием серверных языков и фреймворков, таких как Java или Ruby on Rails. Они также следят за тем, как работает сайт, и вносят изменения и обновления, чтобы улучшить скрытую функциональность.
Некоторые навыки, необходимые для заданий внутреннего разработчика, включают:
- Управление базами данных
- Использование фреймворка
- Программирование
- Знание требований доступности и безопасности
Задания внутреннего разработчика
Для работы внутреннего разработчика обычно требуется сильное знание программирования. Некоторые компании ищут разработчиков, обладающих глубокими навыками работы с определенным языком, в то время как другим может потребоваться умение программировать на нескольких языках.Небольшой организации может понадобиться кто-то, кто может работать как с внутренней, так и с внешней стороны, другими словами, разработчик полного стека.
Back End Jobs:
- Back End Developer
- Java Developer
- Full Stack Developer
- DevOps Engineer
- Software Engineer
- iOS Developer
Back End Development Заработная плата
По данным Indeed, средняя база в США зарплата back-end разработчиков составляет около 127 200 долларов.Средняя зарплата back-end разработчика составляет около 141 250 долларов в Нью-Йорке, 159 700 долларов в Сан-Франциско и 116 275 долларов в Остине. Заработная плата часто зависит от образования, опыта и отрасли.
Что такое общие языки серверной разработки?
Внутренняя разработка требует более продвинутых языков программирования, таких как Java, PHP, Ruby и Python. Внутреннее программирование фокусируется на написании сценариев и архитектуре и часто использует фреймворки и библиотеки, такие как Ruby on Rails и.СЕТЬ.
Язык кодирования | Определение словаря | Использует |
---|---|---|
Java | Java — популярный язык программирования высокого уровня, который является объектно-ориентированным языком и имеет синтаксис, похож на C ++. | Java чаще всего используется для создания приложений для компьютеров. Он обычно используется для крупных бизнес-приложений, больших данных и разработки под Android. |
PHP | PHP — это язык сценариев общего назначения. Среда выполнения PHP выполняет любой код PHP в запрошенном файле, обычно для создания динамического содержимого веб-страницы или динамических изображений, используемых на веб-сайтах или где-либо еще. | PHP используется для серверной веб-разработки. |
Python | Python — это интерпретируемый объектно-ориентированный язык программирования высокого уровня с динамической семантикой. | Python можно использовать практически для всего на странице веб-приложения. |
Выбор подходящего типа разработки
Квалифицированные фронтенд-разработчики и бэкенд-разработчики пользуются спросом, а те, у кого есть опыт и сильное портфолио, могут занять высокооплачиваемые должности в стартапах, крупных организациях и некоммерческих организациях .
Освоение внешнего или внутреннего кодирования может означать очень светлое и безопасное будущее, но с чего начать? Ответы на несколько вопросов помогут вам решить, предпочитаете ли вы сосредоточиться на серверной или клиентской стороне веб-сайта и что лучше всего соответствует вашим навыкам, целям и увлечениям.
- Вам нравится создавать макеты веб-дизайна?
- Вы артистичны?
- Есть ли у вас способность создавать визуальные рамки?
- Вы заинтересованы в обеспечении отличного пользовательского интерфейса и удобства работы?
- Вы сосредоточены на отзывчивости веб-сайта?
Если вы ответили утвердительно на большинство этих вопросов, то разработка внешнего интерфейса — хороший выбор для вас.
- Нравится ли вам использовать алгоритмы для принятия обоснованных решений?
- Вам нравится хорошо писать код и работать с более сложными языками программирования?
- Вас интересует закулисная архитектура веб-сайта?
- Вам нравится изучать различные фреймворки и библиотеки?
Если вы ответили утвердительно на большинство этих вопросов, то серверная разработка — хороший выбор для вас.
Если вы ответили утвердительно как на вопросы внешнего интерфейса, так и на вопросы серверной части, возможно, вы захотите продолжить карьеру в области веб-разработки полного цикла.
Чему учебные курсы обучают фронтенд-разработке?
Если вы заинтересованы в развитии внешнего интерфейса в качестве карьеры, приведенные ниже программы с высоким рейтингом предлагают учебный план, который поможет начать вашу карьеру. Вы также можете просмотреть наш исчерпывающий список учебных курсов по фронтенд-разработке.
Bootcamp | Стоимость | Местоположение (а) | Рейтинг SwitchUp | Официальная гарантия работы | |
---|---|---|---|---|---|
General Assembly | $ 3,950 | 24 офиса в США, 4 офиса в Австралии, Англия, Сингапур, Канада, Франция | 4.29 звезд | № | |
Epicodus | $ 5,400 | Интернет, Сиэтл, Портленд (Орегон) | 4,83 звезды | № | |
Noble Desktop | $ 2,995 | звезды Интернет, Нью-Йорк | 4,92 4,92 звезды в Интернете, Нью-Йорк | Нет | |
CareerFoundry | $ 690- $ 2000 | Интернет, Берлин | 4,55 звезды | Да | |
Школа V | $ 21 000 | Интернет | 4.9 звезд | Нет |
Какие буткемпы преподают Back End Development?
Если вас интересует карьера в области серверной разработки, в приведенной ниже таблице представлены программы с высоким рейтингом, или вы можете ознакомиться с нашим полным списком курсов для начинающих по серверной разработке.
Bootcamp | Стоимость | Местоположение (а) | Рейтинг на SwitchUp | Официальная гарантия работы |
---|---|---|---|---|
CodingNomads Online | ,950- $ 6279 , Бали | 5.0 звезд | Нет | |
DigitalCrafts | 9 950 долларов — 14 950 долларов | Интернет, Тампа, Сиэтл, Хьюстон, Атланта | 4,96 звезды | Нет |
Bedu Tech | $ 1300 | , Мехико, Мехико, Монтеррей, онлайн , Гвадалахара | 4,76 звезды | № |
Генеральная ассамблея | 3 950–15 950 долл. США | Интернет, 24 офиса в США, 4 местоположения в Австралии, Англия, Сингапур, Канада, Франция | 4.29 звезд | Нет |
Launch Academy | 17500 долларов | Бостон | 4,51 звезды | Нет |
Стать Front End или Back End разработчиком
Bootcamp — это захватывающий и доступный вариант для обучения навыкам и получить опыт, необходимый для начала карьеры в области фронтенд или бэкенд разработки. При выборе учебного лагеря важно посмотреть, что соответствует вашему бюджету, графику и местоположению.Вам также следует пересмотреть учебный план, чтобы убедиться, что он учит вас навыкам и языкам, которые вы хотите изучать. Если вам нужна помощь в начале работы, воспользуйтесь нашим инструментом «Найдите совпадение», чтобы получить индивидуальный матч для начальной школы.
Фронтенд и бэкэнд: с чего начать?
Возможно, вы уже слышали фразы «передняя часть» и «бэк-энд», которые используются в связи с программированием раньше. Если вы новичок в программировании, вам может быть интересно, что на самом деле означают эти термины.
На высоком уровне «интерфейс» — это то, что посетители или пользователи будут видеть, когда они взаимодействуют с программой, приложением или платформой. «Бэкэнд» — это место, где программисты создают процессы, чтобы эти взаимодействия выполнялись гладко.
При работе над новым проектом разработчики программного обеспечения создают программы с нуля. Большинство приложений работают как на интерфейсных, так и на внутренних языках программирования.
Но остается вопрос: что вы должны сначала изучить: интерфейсный или серверный язык? В этой статье мы более подробно объясним разницу между фронтальной и серверной разработкой (а также рассмотрим разработку полного стека), чтобы помочь вам решить, с чего начать.
Что такое фронтенд-разработка?
Front-end разработка — это разработка приложений на поверхностном уровне путем изменения их стиля и внешнего вида в соответствии с потребностями пользователя или заказчика. Проще говоря, интерфейсная часть управляет частями веб-сайтов и приложений, которые пользователи фактически видят и с которыми взаимодействуют для выполнения определенных задач.
Когда люди думают о внешнем интерфейсе, они обычно ассоциируют его со стилем веб-сайта, таким как макет страницы, меню и изображения.Внешние разработчики несут ответственность за обновление страниц компании, настройку макетов, добавление анимированных элементов, обеспечение доступности и многое другое.
Посмотрите следующее видео и прочтите, чтобы узнать больше о том, как начать разработку интерфейса.
Языки программирования внешнего интерфейса
Какие языки используются при разработке внешнего интерфейса? Как правило, интерфейс использует HTML, CSS и JavaScript.
HTML — это структурная основа сайта, CSS (каскадные таблицы стилей) — это настраиваемая обложка, которая определяет стиль визуальных элементов, а JavaScript влияет на перемещение элементов на странице.
Вы также захотите ознакомиться с некоторыми интерфейсными фреймворками, такими как React, Vue и Angular. Фреймворки — это специализированные технологии, которые помогают настраивать приложения. Вместо того, чтобы писать все с нуля, фреймворки позволяют ускорить процесс разработки.
Начало работы с интерфейсной разработкой
Хотите узнать больше о интерфейсной разработке? Мы предлагаем освоить основы веб-разработки с помощью HTML / CSS, поскольку они являются основой всех веб-страниц.Вы также можете погрузиться и узнать все, что вам нужно знать, чтобы стать фронтенд-инженером, с нашим карьерным курсом Front-End Engineer.
Даже если ваша конечная цель — стать разработчиком серверной части или полного стека, опытные разработчики могут порекомендовать вам сначала освоить интерфейсную разработку. Понимая, как создается интерфейс веб-сайтов, вы можете определить способы сделать приложения более плавными за кулисами.
Что такое внутренняя разработка?
Внутренняя разработка определяет, как работают программы, создавая скрытые процессы, которые выполняются за кулисами.Тем не менее, серверная часть — это гораздо больше, чем просто управление общей функциональностью приложения или веб-сайта. Он также подробно описывает, что происходит на сервере и в базе данных.
То, что разработчики называют серверной частью, — это то, что работает в фоновом режиме, невидимое без вглядывания в исходный код. Думайте о внешнем интерфейсе как о меню в ресторане: оно позволяет вам заказать что-то из списка предметов, доставленных из другой комнаты.
Думайте о задней части как о кухне.Он действует как скрытый отсек, в котором шеф-повар готовит вам еду. Клиент должен иметь возможность общаться с шеф-поваром, чтобы официант выступал в роли посредника, отправляя заказы на кухню. Внутренний разработчик — это официант, который обрабатывает базу данных веб-сайта, используя внутренний или серверный язык.
Языки программирования серверной части
Существует множество языков программирования, используемых в задней части. Здесь, в Codecademy, мы обучаем серверной разработке в основном на JavaScript, Python и C #.Когда вы только начинаете, мы рекомендуем сосредоточиться на JavaScript, поскольку наличие единого языка для интерфейса и серверной части упрощает путь к сильной разработке полного стека.
Хотите узнать о серверных фреймворках? Проверьте Express, Flask и asp.net. Мы также рекомендуем ознакомиться с этой замечательной статьей MDN Web Docs о серверных фреймворках и о том, как их выбрать. Хотите стать внутренним разработчиком? Ознакомьтесь с нашим карьерным планом Back-End Engineer.
Что такое разработка полного стека?
Разработка полного стека означает комбинацию внешней и внутренней разработки.Программист будет взаимодействовать как с клиентскими, так и с серверными функциями. Разработчик полного стека — это гибрид этих двух ролей, хорошо разбирающийся во многих областях и способный разрабатывать целые веб-сайты или приложения с нуля.
Разработчики полного стека носят разные шляпы. Их универсальность позволяет им участвовать на любом этапе цикла разработки программного обеспечения. Одно из преимуществ полноценного разработчика состоит в том, что вы сможете понять, что делает веб-сайт интуитивно понятным и простым в использовании, а также как создать его наиболее эффективно.
Начало работы
Если вы заинтересованы в том, чтобы научиться разрабатывать интерактивные веб-сайты от начала до конца, наш курс карьеры инженера полного цикла даст вам навыки, необходимые для входа в отрасль в качестве инженера полного цикла. Если вас интересует фронтенд-разработка, карьерный путь фронтенд-инженера для вас. Если вы заинтересованы в карьере в области бэкенд-разработки, перейдите на наш план карьеры бэк-инженера.
Разделяй или присоединяйся: дилемма внешнего интерфейса и бэкэнда
С появлением новых технологий быстро развивающиеся стандарты кодирования и улучшенная инфраструктура привели к эволюции тактик и стратегий веб-разработки.Среда, которая способствует успешной веб-разработке за счет объединения различных частей, называется архитектурой веб-приложения. Frontend и Backend — две основные части архитектуры веб-приложения.
Один из вопросов, который возникает, когда мы говорим о процессе веб-разработки, заключается в том, полезно ли хранить интерфейс-бэкэнд вместе или их следует хранить отдельно.
В этой статье рассматриваются плюсы и минусы обоих подходов, чтобы объяснить, почему компании-разработчики программного обеспечения предпочитают один другому.Начнем сначала с определений.
Определение внешнего и внутреннего интерфейса
Внешний интерфейс — это раздел, который может видеть пользователь, а серверный интерфейс — это поддерживающая его инфраструктура.
Front-end веб-сайта — это раздел, который пользователь видит и взаимодействует с ним с помощью браузера. Он также называется клиентской стороной и охватывает все, что напрямую связано с пользовательским опытом. Например, тексты, цвета, изображения, меню навигации, значки и т. Д.HTML, CSS и JavaScript — это основные языки, которые входят в состав интерфейсной разработки. В дополнение к этому, Bootstrap, фреймворки Angular и библиотеки JavaScript, такие как React, Vue, jQuery и расширения CSS, также входят в состав внешнего интерфейса.
Backend — это часть веб-сайта, удаленная от глаз пользователя. Бэкэнд, также известный как код на стороне сервера, упрощает управление данными и взаимодействие в организованном порядке. Связь между серверной частью и клиентской частью помогает отображать информацию на веб-странице.Например, при заполнении контактной формы в браузере вводится веб-адрес. Браузер отправляет запрос на сервер, который возвращает запрошенную информацию в виде кода внешнего интерфейса, который браузер интерпретирует и отображает пользователю.
Существует множество различных мнений о том, как хранить интерфейс и серверную часть вместе или отдельно. Важно только то, что оба компонента необходимы для разработки полноценного приложения.
На рассмотрении: тесная взаимосвязь внешнего и внутреннего интерфейса
Многие считают, что разделение серверной части и клиентской части — плохая идея, и между этими двумя ролями нет большого различия.
Следующие пункты подтверждают, почему интерфейс и бэкэнд должны храниться вместе:
- Схожая концепция и синтаксис: Функциональная абстракция оказалась очень полезной, поскольку она удаляла ненужные характеристики, сохраняя акцент на основных функциях проекта.Чтобы решить эту проблему, в клиентских и серверных средах используются аналогичные концепции и синтаксис. Например, ReactiveX, API-интерфейс асинхронного программирования с наблюдаемыми шаблонами, может быть реализован на различных языках, что упрощает создание проекта на одних и тех же реактивных абстракциях спереди и сзади.
- Количество недопониманий минимально: Связь должна быть неизменной для беспрепятственного процесса разработки приложений. Разделение внешнего интерфейса и внутреннего интерфейса создаст разрыв в общении, в результате чего обе команды останутся неинформированными или нечеткими в отношении изменений на соответствующих концах.Совместное использование интерфейса и серверной части уменьшит вероятность таких недопониманий, облегчая плавную разработку приложений.
- Эффективное использование ресурсов: Нанимают разработчиков полного стека для взаимодействия внешнего и внутреннего интерфейса. Когда принимаются во внимание большие проекты, есть задачи, которые необходимо решать как на стороне клиента, так и на стороне сервера. В этом случае разработчик полного стека переходит от одной части приложения к другой без каких-либо дополнительных затрат.Наличие в команде разработчиков полного стека является экономичным и эффективным по времени.
- Эффективная командная работа с полным владением: Интеграция внешнего и внутреннего интерфейса является плодотворной, если существует четкое понимание бизнес-требований. Таким образом, задействованные многопрофильные команды быстро адаптируются к среде разработки и полностью возьмут на себя ответственность за проект. Команды разработчиков работают вместе больше часов для эффективной доставки продукта.
- Эффективно для простых и небольших проектов: Для простых операций CRUD (создание, чтение, обновление и удаление) или для небольшой кодовой базы подход объединенного внешнего интерфейса более чем достаточно, поскольку в этом случае большинство задач уже решены и никаких дополнительных вводов не потребуется.
- Безопасность «из коробки»: Объединение внешнего интерфейса и внутреннего интерфейса дает множество преимуществ в области безопасности. Например, в таких случаях нет способов раскрыть API, защитить API от любого вида атак.
Итак, мы до сих пор говорили о преимуществах соединения frontend и backend. Но современная модель разработки приложений видит замену тесно связанных внешнего интерфейса и внутреннего интерфейса другими методами из-за его недостатков.
Ниже приведены недостатки объединения внешнего интерфейса и внутреннего интерфейса вместе:
- Интерфейсное и внутреннее объединение было успешным в случае с простыми веб-сайтами. Добавление веб-страниц на веб-сайт делает систему неэффективной для доставки различных типов контента, изображений или других элементов мультимедиа.
- Все задачи обработки выполняются сервером перед окончательной доставкой контента пользователю. В конечном итоге это сделало сервер неэффективным для обработки множественных запросов пользователей.
- Объем настройки меньше, поскольку любые изменения, внесенные в серверную часть, оказали прямое влияние на интерфейс веб-сайта. Кроме того, любые изменения в разработке или обслуживание требовали больше времени, чем обычно.
Для работы с большими проектами, такими как миллиарды строк кода, жесткая связь внешнего интерфейса с сервером не работает.Поскольку большие проекты слишком велики, чтобы кто-то мог их полностью понять. Разработчик полного стека не может полностью контролировать проект.
Источник: Dilbert
Разделение серверной части внешнего интерфейса в среде разработки
Мощные и высокопроизводительные веб-браузеры оснащены улучшенной обработкой, что способствует беспроблемному функционированию после разделения внешнего и внутреннего компонентов в модели разработки веб-приложений.
Основные преимущества разделения внешнего и внутреннего интерфейса указаны ниже:
- Широкий круг специалистов по технологиям: В многоуровневой архитектуре среды разработки задачи берут на себя сложные технологии.Поэтому для создания сложной системы нужны специалисты по конкретным технологиям. Разделение внешнего интерфейса и внутреннего интерфейса помогает привлечь программистов, которые являются экспертами в соответствующих технологиях. Кроме того, устранение ограничений на выбор технологий, которые каждая из сторон могла наложить на другую. Таким образом, упрощая процесс в таких средах разработки.
- Модульность: Поскольку компоненты или модули в таких моделях разработки являются отдельными, замена или любое изменение модулей происходит плавно.Изменения во внутреннем модуле веб-приложения не повлияют на интерфейсную часть и наоборот. Таким образом, нельзя перезаписывать или портить работу другого человека.
- Быстрая разработка и развертывание: Поскольку различные группы работают над проектом параллельно и в полной согласованности, это помогает в быстрой одновременной разработке веб-приложения, что приводит к быстрому развертыванию приложения.
- Объединение API: При наличии огромного количества устройств необходимо управлять различными версиями кода (веб-сайт, приложение для iOS, приложение для Android).Для большинства из них требуется одна и та же кодовая база. Веб-сайт на основе API упрощает все для разработчиков, поскольку теперь API обрабатывает управление кодом. Таким образом, разработчикам приходится иметь дело с меньшим количеством кода.
Мы увидели, что слабосвязанные интерфейс и серверная часть принесли много важных преимуществ.
Но это разделение также имеет ряд недостатков, это:
- Коммуникация и управление кодом с помощью API увеличивает накладные расходы на документацию для команд.Наряду с этим, нет четкого способа исправить изменения API во внешнем интерфейсе.
- Усилия увеличиваются с разделением на фронтенд и бэкэнд. Чтобы зафиксировать какие-либо изменения, выполняются две синхронные фиксации, а не одна.
- Интеграция внешнего интерфейса и внутреннего интерфейса приводит к ошибкам, задержкам выполнения и, в худшем случае, к сбоям в разработке. Кроме того, коммуникация между командами неэффективна.
Разделить или присоединиться? Что выбрать
Как мы видели, разделение внешнего и внутреннего интерфейса может дать мало преимуществ.Но эти преимущества распространяются на независимые обновления, интеграцию квалифицированного персонала, API-интерфейсы многократного использования и т. Д. Прежде всего, меньшее количество зависимостей снижает вероятность блоков разработки.
Мы не утверждаем, что эти расширяющие преимущества лучше всего разделяют интерфейс и бэкэнд по сравнению с соединением внешнего интерфейса. На самом деле все зависит от конкретной ситуации. Огромный список преимуществ не делает одно лучше другого.
Рекомендуется рассмотреть все аспекты проекта, прежде чем принимать какое-либо решение о разделении или объединении внешнего и внутреннего интерфейса приложения.
Заключение
Объединение и разделение внешнего интерфейса и внутреннего интерфейса имеет ряд преимуществ и недостатков. Учитывая текущий сценарий развития, можно выбрать лучший из двух.
Что вы думаете о том же?
Если у вас есть еще какие-то входы во внешнем и внутреннем интерфейсе, объедините или разделите? Вы можете оставить комментарий ниже или поделиться своим мнением в наших социальных сетях: Facebook, LinkedIn и Twitter.
Front End vs. Back End Веб-разработка
Веб-разработчики, как правило, подпадают под одну из двух категорий: клиентская часть или серверная часть.Курс веб-разработчика может охватывать навыки для любого из них, но может быть полезно получить фундаментальное понимание обоих.
Front End vs. Back End : Обзор
Вообще говоря, основное различие между фронтенд-разработкой и бэкенд-разработкой — это конкретная область внимания. Внешний интерфейс связан с внешним видом, внешним видом и ощущениями от веб-сайта; в то время как серверная часть фокусируется на функциональности на стороне сервера веб-сайта, включая все коммуникации между браузером и базой данных.
Чтобы создать веб-сайт, внешний разработчик заботится о теме, включая презентацию, изображения и стиль. Серверный разработчик заботится о базе данных, ценных бумагах, производительности сайта и пользователях.
Интерфейс и серверная часть : Используемые языки программирования
Хотя между ними есть некоторое совпадение, существуют некоторые различия в языках программирования, обычно используемых для клиентской и серверной веб-разработки.
Передняя часть
Помимо использования HTML, JavaScript и CSS в своих проектах, большинство современных фронтенд-разработчиков также владеют более продвинутыми навыками и фреймворками, такими как React, Angular и Bootstrap, а также инструментами командной строки.
Большинство интерфейсных разработчиков будут использовать HTML, JavaScript и CSS.
Внутренняя часть
Back-end разработчики обычно полагаются на PHP, Python, Ruby, Java и Node.js. Они также должны хорошо понимать один или два других языка, а также владеть такими базами данных, как SQL Server, Oracle и MySQL.
Фронтенд и бэкэнд : Желаемые навыки
Как и в случае с используемыми языками программирования, навыки, необходимые для клиентской и серверной разработки, различаются.
Передняя часть
Front-end разработчики должны иметь возможность работать с пользовательским интерфейсом и внешним видом веб-сайта, используя такие инструменты дизайна, как Figma, Sketch и Photoshop. Они также должны знать, как работает веб-хостинг и покупка доменов.
Внутренняя часть
По сравнению с интерфейсной частью, внутренняя разработка требует более критического мышления, чтобы проектировать системы, которые помогают пользователю взаимодействовать с веб-страницей. Разработчики серверной части должны знать, где хранятся данные, безопасность хранилища, как отлаживать и тестировать веб-сайт и как добавлять функции, не влияя на функциональность и масштабирование.
Front End vs. Back End : Образовательные методы
Когда дело доходит до изучения внешнего или внутреннего интерфейса, использование учебного пособия, прохождение университетского курса или запись в учебный лагерь могут помочь вам приобрести навыки, необходимые для обеих сторон. Независимо от того, чем вы занимаетесь, практика имеет первостепенное значение.
Практика и начало с нуля
Когда вы начнете изучать фронтальную или серверную разработку, потратьте время на то, чтобы попрактиковаться в создании кода с нуля, даже если он легко доступен в используемых вами программах.Это дополнит ваши исследования, позволив вам лучше понять, как работают различные функции и кодирование.
Смешивание Front End и Back End : Full Stack Development
Существует вариант, который сочетает в себе навыки, необходимые для работы как над внешним, так и с внутренним интерфейсом веб-сайта: веб-разработка полного стека.
Преимущества навыков разработки полного стека
Некоторые разработчики утверждают, что наличие навыков как для внешней, так и для серверной разработки дает преимущество перед специализацией только на одном из них, поскольку разработчики полного стека могут взять на себя практически любую работу веб-разработчика, увеличивая доступные им возможности.
Кроме того, понимание того, как оба конца веб-сайта работают вместе, упрощает работу над определенными проектами, поскольку вы можете четко понимать потребности фронтенд-разработчика, если вы работаете над бэкендом, или наоборот. Кроме того, работодатели ценят то, что разработчики полного стека могут при необходимости оказывать поддержку другим разработчикам или командам разработчиков.
Выбираете ли вы фронтенд или бэкэнд разработку, подумайте о том, чтобы отточить свои навыки в классе веб-разработчиков в Сан-Франциско, если вы живете в районе залива.
* Обратите внимание, что эти статьи предназначены для образовательных целей, и затронутые темы могут не соответствовать учебной программе нашего учебного лагеря. Изучите нашу учебную программу , чтобы узнать, что вы узнаете по нашей программе.
Front End vs Back End в веб-разработке | Программа инженерного образования (EngEd)
Веб-разработка — важная область в индустрии высоких технологий, поскольку она способствует развитию сайтов электронной коммерции, сервисов социальных сетей и сложных веб-приложений.Для создания веб-приложения требуются две основные части: серверная часть и интерфейсная часть.
Понимание разницы между этими частями особенно важно для молодых разработчиков, поскольку это помогает определить их правильный карьерный путь.
В этой статье будет проведено сравнение серверной части и клиентской части в веб-разработке и дается обзор того, как они взаимодействуют друг с другом.
Он также предоставит краткое руководство, которое поможет разработчикам выбрать правильный путь разработки.
Содержание
Что такое фронтенд-разработка?
Front-end разработка — это раздел Интернета, с которым взаимодействуют пользователи. Это включает в себя все, что пользователи могут увидеть, испытать и потрогать. Он представляет собой графический пользовательский интерфейс с различными значками, такими как меню навигации, видео и изображения.
Этот тип разработки также называется «клиентской», поскольку он улучшает прямое взаимодействие с пользователями. Внешние разработчики повышают привлекательность веб-страниц, создавая сайты, удобные и простые в использовании.
Что такое серверная разработка?
Back-end разработка — это раздел Интернета, который не виден пользователям. Пользователи не могут взаимодействовать с этой частью. Эта часть обрабатывает различные закулисные действия, такие как создание библиотек, кодирование и написание API. Это предполагает более высокий уровень сотрудничества по сравнению с фронтенд-разработкой.
Этот тип разработки можно также назвать «серверной», поскольку он обеспечивает функциональную поддержку веб-приложений.Уровень представления веб-страницы не может функционировать без внутренней разработки. Серверная сторона взаимодействует со стороной клиента, чтобы веб-приложение работало нормально.
Различия между front-end и back-end разработкой
Сравнение внешнего и внутреннего интерфейса может быть выполнено с использованием следующих критериев:
Сторона приложения
Обычно интерфейсная разработка выполняется на стороне клиента веб-приложения, в то время как внутренняя разработка выполняется на стороне сервера (иногда это может быть выполнено и на стороне клиента).Сторона сервера подключена к базе данных, которая отвечает на запросы, сделанные на стороне клиента.
Роли
Серверная часть обеспечивает функциональные возможности уровня представления, в то время как внешняя часть обеспечивает визуальные аспекты, улучшающие взаимодействие с пользователем. Задняя часть — это активатор передней части. Последний собирает данные от пользователей, а первый их обрабатывает.
Внешний интерфейс повышает доступность и предоставляет функцию поисковой оптимизации (SEO).Внутренняя разработка может включать использование функций резервного копирования и безопасности для защиты данных и веб-контента.
Front end разработчик vs back end разработчик
Front-end разработчики в основном занимаются дизайном веб-сайта, а back-end разработчик занимается программированием. Внутренние разработчики обеспечивают доставку данных, запрошенных на стороне клиента.
Языки
Внешний интерфейс использует веб-языки, такие как CSS, HTML и JavaScript. Языки программирования, используемые в серверной части, могут включать PHP, Java, Python и Ruby.
Взаимодействие с пользователем
Во внешнем интерфейсе пользователи могут взаимодействовать с веб-приложением с помощью различных значков и функций. Однако пользователи не могут взаимодействовать с серверной частью, потому что она не обеспечивает визуальных аспектов. Вместо этого он действует как мозг веб-приложения.
Фреймворки и библиотеки
Некоторые из фреймворков, используемых для интерфейсной разработки, включают Angular.js, React.js, jQuery, SASS и Flutter. Бэкэнд-фреймворки включают Laravel, Express, Spring и Django.
Полная разработка
Разработка полного стека подразумевает работу над всем стеком приложения. Это включает в себя внутреннюю разработку, API, базу данных, сервер и интерфейсную разработку. В этом типе разработки разработчик создает и взаимодействует как со стороной сервера, так и со стороной клиента.
Разработчик полного стека должен обладать множеством навыков для создания целого веб-приложения. К ним относятся кодирование, тестирование, отладка и веб-дизайн. Этот разработчик также должен знать о базах данных, API, безопасности, алгоритмах и системах контроля версий (VCS).
Источник изображения: Revenue River
Выбор правильного пути развития
Различные факторы могут определять правильный путь развития для разработчиков. Ниже приведены некоторые из важных факторов, которые вы должны учесть, прежде чем сделать выбор:
Требуемые навыки
Если у вас есть достаточные навыки программирования и вы хорошо владеете популярными языками программирования, то back-end разработка — хороший путь для следования. Этот путь идеален, если вы также знакомы с тестированием, базами данных и серверами.Если вы чрезвычайно креативны, отлично разбираетесь в дизайне и хорошо разбираетесь в HTML и CSS, то фронтенд-разработка может быть для вас хорошим путем.
Обязанности
Каждый путь развития состоит из уникальных обязанностей. Прежде чем выбрать путь развития, убедитесь, что вам удобны соответствующие обязанности.
Ниже перечислены некоторые обязанности фронтенд-разработчика:
- Реализация визуальных элементов веб-приложения.
- Проектирование пользовательского интерфейса приложения.
- Тестирование веб-приложения.
- Изменение интерфейса сайта.
- Работаем вместе с back-end разработчиком для решения любых возникающих проблем.
В обязанности внутреннего разработчика входят:
- Анализ кодов, данных и процессов.
- Отчетные данные.
- Мониторинг статуса сервера.
- Устранение неполадок, связанных с сервером.
- Создание API и выполнение интеграции API.
- Выполнение резервного копирования и проверки безопасности.
Карьерные амбиции
Выбор пути развития также может определяться карьерными амбициями разработчиков. Вам следует выбрать интерфейсную разработку, если вы хотите стать одним из следующих: интерфейсный разработчик, интерфейсный инженер, веб-дизайнер, дизайнер UI / UX или эксперт по SEO.
Вам следует выбрать внутреннюю разработку, если вы хотите стать одним из следующих: внутренним разработчиком, внутренним инженером, инженером DevOps, инженером-программистом, экспертом по REST API, дизайнером баз данных или разработчиком WordPress.
Резюме сравнения
В следующей таблице показана сводная таблица для сравнения внешнего и внутреннего интерфейса.
Критерии | Front End Development | Разработка серверной части |
---|---|---|
Сторона приложения | Выполняется на стороне клиента приложения | Это делается на стороне сервера приложения |
Роли | Предоставляет визуальные элементы приложения | Обеспечивает функциональность приложения |
Ответственность разработчиков | Интерфейсный разработчик в основном занимается дизайном приложения | Внутренний разработчик в основном занимается программированием, сервером и базой данных |
Языки | Используемые языки, включая HTML, CSS и JavaScript | Он использует такие языки программирования, как Python, Ruby, PHP и Java. |
Взаимодействие с пользователем | Позволяет взаимодействовать с пользователями | Нет взаимодействия с пользователями |
Каркасы | Угловой.js, React.js, jQuery, SASS и Flutter | Laravel, Express, Spring и Django |
Заключение
В этой статье мы узнали об основных различиях между внутренней и внутренней разработкой.
Суммируем:
- Мы получили представление о внутренней разработке.
- Мы получили представление о фронтенд-разработке.
- Мы узнали о конкретных различиях между этими частями, а также о различных критериях, таких как взаимодействие, роли, языки, фреймворки и сторона приложения.
- Нас также подсказали, как выбрать правильный путь развития.
Удачного кодирования.
Вклад экспертной оценки: Srishilesh P S
Об авторе
Онесмус Мбаабу
Онесмус Мбаабу — доктор философии. кандидат со степенью доктора наук в области управления и инженерии в Школе управления и экономики Университета электронных наук и технологий Китая (UESTC), провинция Сычуань, Китай.Его интересы включают экономику, науку о данных, новые технологии и информационные системы. Его хобби — баскетбол и музыка.
Руководство по внутренней разработке для новичков
Если вы не разработчик или инженер, такие концепции, как внешняя и внутренняя разработка, могут быть сложными для понимания. Скопируйте все фреймворки, языки программирования, API и библиотеки, которые разработчики используют для создания приложений, и все может стать довольно запутанным.
Хорошие новости? Вам не нужно писать код, чтобы понимать основы внутренней разработки и различные компоненты типичного «программного стека». На самом деле, это полезно, будь вы генеральным директором, менеджером по найму, продавцом в технологическом стартапе или менеджером по продукту.
Чтобы помочь вам стать профессионалом во всех областях серверной разработки, мы собрали серию статей, в которых рассказывается о некоторых ключевых вещах, которые необходимо знать, — в понятной для не разработчиков форме.Вы не только узнаете, что такое сценарии на стороне сервера и чем занимаются серверные инженеры, но и узнаете о плюсах различных языков программирования, о том, как облако меняет ситуацию, почему API-интерфейсы так важны и как сделать решения о том, какие фреймворки лучше всего подходят для вашего приложения.
Что такое Back-End разработка?
Back-end разработка относится к разработке серверной логики, которая обеспечивает работу веб-сайтов и приложений за кулисами. Он включает весь код, необходимый для создания базы данных, сервера и приложения.От миграции базы данных до интеграции API и настройки серверных технологий, которые заставляют веб-сайт работать, серверный веб-разработчик может быть талантом, который вам понадобится для запуска вашего следующего веб-проекта.
Front-end и back-end разработка
Чтобы понять back-end или «серверную часть», вы также должны знать внешний интерфейс и то, как они взаимодействуют. Интерфейс, также называемый «клиентским» программированием, — это то, что происходит в браузере — все, что конечные пользователи видят и с чем взаимодействуют.С другой стороны, серверная часть происходит на сервере (на сайте или в облаке) и базах данных. Это механизм, который работает за кулисами — все, что конечный пользователь не видит или с чем напрямую не взаимодействует, но это обеспечивает то, что происходит.
Важно отметить, что этот удобный способ разделения разработки значительно изменился за последние 10–15 лет со взрывным ростом JavaScript, который не был так широко распространен на интерфейсной части, как сейчас, или так распространен. на задней панели, благодаря Node.js. Между ними больше общего, особенно когда речь идет о роли разработчика JavaScript в стеке, полностью основанном на JavaScript.
Вот наглядное пособие, которое даст вам представление о том, как протекают интерфейсная и внутренняя разработка.
Вы можете увидеть, как серверная сторона (в зеленом поле) обрабатывает все запросы, поступающие от кликов пользователей. Внешние скрипты перенаправляют эти запросы на серверную сторону для обработки, возвращая соответствующие данные клиентской части.Это часто происходит в постоянном цикле запросов и ответов на сервер.
Теперь давайте посмотрим, как работает серверная архитектура — программное обеспечение и оборудование, которые вступают во владение на четвертом шаге на приведенном выше рисунке.
«Традиционная» серверная часть — это сочетание сервера, баз данных, API-интерфейсов и операционных систем, которые обеспечивают работу клиентской части приложения. Чтобы подробнее узнать о программном обеспечении, которое связывает все это воедино, прочитайте нашу статью о серверных сценариях. Внутренняя часть приложений может сильно отличаться от приложения к приложению, будь то использование облачных серверов и хранилищ данных, контейнеризация с помощью службы, такой как Docker, провайдеры Backend-as-a-Service (BaaS) или API для замены более сложная обработка.
Типы серверных языков
Серверные языки различаются размером файла, производительностью, совместимостью, количеством требуемых строк кода и стилем программирования. Некоторые серверные языки сценариев являются объектно-ориентированными языками программирования, стилем программирования, который связывает атрибуты и функции внутри объектов. Другие языки могут компилироваться, а не интерпретироваться, что влияет на время загрузки, читаемость и вычислительную мощность, необходимую для запуска приложения.
Давайте посмотрим на различные типы языков программирования серверной части.
C ++
C ++ сочетает в себе все функции C с функциями объектно-ориентированного программирования, такими как классы. Как язык программирования низкого уровня он используется для эффективного взаимодействия с системным оборудованием для повышения производительности. Это делает его идеальным для видеоигр, крупных веб-приложений и других сценариев использования, в которых производительность на системном уровне является премиальной.
C #
C # — предпочтительный язык для серверов и сред Windows.Если ваш технологический стек основан на таких продуктах Microsoft, как ASP.NET, высока вероятность, что C # будет наиболее продуктивным выбором для ваших разработчиков.
Java
Java — это объектно-ориентированный язык программирования общего назначения, который был разработан с учетом кросс-платформенной совместимости. Любая машина, на которой установлена виртуальная машина Java (JVM), может выполнять программы Java.
JavaScript (Node.js)
Хотя он традиционно считается языком сценариев внешнего интерфейса, внедрение Node.js показал миру, что этот объектно-ориентированный язык программирования общего назначения может также использоваться на стороне сервера приложений. Как одна из основных технологий Интернета, JavaScript сейчас является популярным выбором для интерфейсной и серверной веб-разработки.
PHP
PHP — самый популярный серверный язык для Интернета. PHP отличается низкой кривой обучения и преимуществом массивной кодовой базы и долгой истории поддержки сообщества разработчиков с открытым исходным кодом для использования PHP на серверной части веб-сайтов.Если вы когда-либо создавали личный веб-сайт с помощью WordPress, PHP обеспечивал работу серверной части из-за кулис.
Python
Python — это язык программирования общего назначения, который может похвастаться впечатляющей библиотекой для обработки данных. Для внутренней разработки Python дает преимущество производительности программистов благодаря простому синтаксису и короткой длине кода.
Perl
Perl, разработанный Ларри Уоллом в 1990-х годах, представляет собой язык программирования общего назначения, популярный в мире Linux и Unix.Сильные стороны Perl заключаются в обработке текста и управлении журналами. Он отлично подходит для написания коротких сценариев автоматизации на лету.
Scala
Scala — это язык программирования общего назначения, который поддерживает как функциональные, так и объектно-ориентированные парадигмы программирования. Поскольку Scala основан на Java, он по-прежнему поддерживается JVM и совместим с Java.
Ruby
Ruby, разработанный в середине 1990-х Юкихиро «Мац» Мацумото, представляет собой язык программирования общего назначения с динамической типизацией, известный своей продуктивностью программистов.Он поддерживает парадигмы процедурного, функционального и объектно-ориентированного программирования и известен своей способностью включать метапрограммирование в приложения (код, который может изменяться во время работы).
Back-end инструменты и технологии
Back-end разработка может быть гораздо более разнообразной, чем front-end разработка, которая в значительной степени основана на JavaScript, HTML, CSS и различных интерфейсных фреймворках, использующих эти языки.
Для упрощения мы разделим серверную часть на четыре основных компонента «программного стека»: сервер, база данных, операционная система и программное обеспечение.
Вот еще немного информации о каждом из этих компонентов серверной части.
1. Серверы
Из четырех компонентов вашего внутреннего стека, будь то локальный или облачный сервер, сервер выступает в качестве источника жизненной силы сети. Эти мощные компьютеры предоставляют общие ресурсы, необходимые для работы сети, включая хранилище файлов, безопасность и шифрование, базы данных, электронную почту и веб-службы. Изучив основы работы с локальными серверами, расширьте свои знания, взглянув на виртуализацию, то, как серверы выделяются для размещения нескольких приложений, и контейнеризацию — еще один способ, которым серверы предоставляют свои операционные системы для размещения разрозненных приложений.
2. Базы данных
Базы данных в контексте веб-сайта — это мозг, который делает веб-сайты динамическими. Каждый раз, когда вы запрашиваете что-либо с веб-сайта, будь то поиск продукта в интернет-магазине или поиск отелей в определенном штате, база данных отвечает за принятие этого запроса, получение данных и их возврат на веб-сайт. . Базы данных также могут принимать новые и отредактированные данные, когда с ними взаимодействуют пользователи веб-сайта или приложения.Клиент может изменять информацию в базе данных из браузера, независимо от того, публикует ли пользователь статьи в CMS, загружает фотографии в профиль в социальных сетях или обновляет информацию о своем клиенте.
В этом кратком руководстве по современной технологии баз данных вы получите понимание того, как работают базы данных, общие термины, которые нужно знать, взгляните на SQL и NoSQL и как определить, какая база данных лучше всего подходит для вашего веб-приложения.
3. Промежуточное программное обеспечение
Промежуточное программное обеспечение по существу описывает любое программное обеспечение на сервере, которое соединяет внешний интерфейс приложения с его серверной частью.Подумайте о промежуточном программном обеспечении как о канале для вашего сайта — оно направляет любые сообщения, такие как запросы и ответы, между вашим приложением и вашим сервером / базой данных. Как и в случае с водопроводом в доме, вы не видите промежуточного программного обеспечения, но оно есть, и оно должно быть надежным и всегда делать то, что от него ожидается.
Промежуточное ПО (серверное программное обеспечение) облегчает взаимодействие клиент-сервер, образуя промежуточный уровень между приложением (ями) и сетью: сервером, базой данных, операционной системой и т. Д.Промежуточное ПО может быть многоуровневым, организованным на разных уровнях сайта, будь то уровень представления или бизнес-уровень. Именно здесь веб-API могут играть в стеке, обеспечивая мост между бизнес-уровнем и уровнем представления.
Промежуточное ПО также позволяет облачным и локальным приложениям «разговаривать» и предоставляет такие услуги, как интеграция данных и обработка ошибок. Хорошее промежуточное программное обеспечение также может максимизировать эффективность ИТ и обеспечивать такие функции, как участие пользователей, управление бизнес-процессами, управление контентом, аутентификация и многое другое.Koa.js — это пример серверной инфраструктуры JavaScript.
Далее мы поговорим о некоторых языках программирования и фреймворках, используемых для создания различных типов промежуточного программного обеспечения, API-интерфейсов и серверного программного обеспечения.
4. API-интерфейсы
В наши дни нельзя говорить о серверной части приложения, не затрагивая API (интерфейсы прикладного программирования) и то, как они легко связывают программное обеспечение, приложения, базы данных и службы. .API-интерфейсы играют неотъемлемую роль в построении большинства серверных программных архитектур, часто заменяя более сложное программирование, позволяя программному обеспечению обмениваться данными и передавать данные.
Чтобы объяснить мощь API-интерфейсов, Upwork написал бесплатную электронную книгу «Экономика API», которая охватывает все, что вам нужно знать, чтобы начать работу с API. Скачайте бесплатно.
Общие навыки, необходимые для back-end разработки
Теперь, когда вы знаете, что включает в себя back-end разработка, давайте свяжем эти концепции в список навыков, которыми должен обладать back-end разработчик.
- Базовое понимание интерфейсных технологий HTML, JavaScript и CSS
- Практические знания серверной разработки (конфигурация, администрирование и управление базами данных и серверами)
- Серверные языки (например, PHP, C #, Java)
- Технологии баз данных (например, MySQL и SQL)
- Лучшие практики безопасности и аутентификации
- Опыт написания RESTful API
Общие задания на внутреннюю разработку
Внутренняя разработка — это общий термин, который относится к серверу -стороне любого приложения (не только веб-сайтов).Таким образом, основы понимания того, как создать серверную часть приложения, могут быть применены к множеству различных профессий. Давайте рассмотрим наиболее распространенные роли back-end разработчиков:
- Back-end веб-разработчики : Самая распространенная работа back-end разработчиков — это создание серверной части веб-сайта. Они несут ответственность за создание и обслуживание базы данных, сервера и бизнес-логики веб-сайта.
- Разработчики полного стека : Разработчики полного стека обладают практическими знаниями как внешнего, так и внутреннего интерфейса технологического стека.В небольших проектах они могут быть единственным разработчиком, создающим минимально жизнеспособный продукт. В более крупных проектах они являются руководителями групп, которые помогают интегрировать интерфейс и серверную часть приложения.
- Java-разработчики : От веб-сайтов до настольных приложений, внутренние разработчики, специализирующиеся на Java, пользуются большим спросом в индустрии корпоративных приложений.
- Разработчики программного обеспечения : В зависимости от описания должности это может быть другая работа разработчика Java или любой другой язык, который мы перечислили выше.Роли разработчиков программного обеспечения обычно относятся к приложениям, не относящимся к веб-сайтам, таким как настольные приложения.
Наем внутреннего разработчика
Возможно, вы знаете, что вам нужна внутренняя разработка и инжиниринг, но можете не знать, что входит в ваш проект или какие специалисты вам понадобятся, чтобы это сделать. Когда приходит время найти этого первоклассного внутреннего разработчика, мы подготовили для вас еще несколько ресурсов.
Если вы остановились на стеке или технологии, в руководствах Upwork по найму есть статьи, которые помогут вам найти, нанять, составить бюджет и написать описания вакансий для различных разработчиков, таких как разработчики PHP, разработчики SQL, разработчики C # и.NET-разработчиков.
Создав объявление о вакансии, начните поиск лучших талантов, которых можно пригласить в свой проект. В Upwork есть интеллектуальные фильтры, которые позволяют детализировать нужные навыки и категории. Или выполните поиск отзывов специалистов в области инженерии и архитектуры и отфильтруйте их по рейтингам и местоположению. Эти надежные обзоры из первых рук помогут вам найти талантов, добившихся успеха в проектах, подобных вашему.
Что такое Front-end и back-end
Планируя создать веб-приложение или мобильное приложение, необходимо понимать некоторые базовые концепции разработки программных продуктов.Эти знания помогут вам легко и эффективно общаться с вашей командой разработчиков или поставщиком программного обеспечения. По нашему опыту, два термина, которые могут сбивать с толку, — это «интерфейсный» и «внутренний» (а также «интерфейсный разработчик» и «внутренний разработчик»).
Что означают термины «интерфейс» и «бэкэнд»?
Любое веб-приложение или мобильное приложение можно разделить на две части. Интерфейс — это то, что пользователь видит и с чем взаимодействует (пользовательский интерфейс).Серверная часть — это часть приложения, которая скрыта от пользователя (что некоторые называют «под капотом»). Эта часть отвечает за обработку данных, хранение данных и математические операции. Специалисты, ответственные за разработку интерфейсной и серверной частей приложения, называются соответственно интерфейсными разработчиками и внутренними разработчиками.
Это разделение относительно новое. С развитием ИТ-индустрии проекты стали расти в размерах.Для завершения любого значительного проекта вам понадобится команда разработчиков (а не один человек). Чем больше группа, тем больше необходимо разделение труда. Каждый разработчик будет работать над отдельной частью приложения в соответствии со своими навыками.
Front-end и back-end подразумевают разные вещи в разных типах приложений. Давайте рассмотрим наиболее распространенные из них и поймем, что эти термины означают для каждого типа: веб-приложения, мобильные приложения и расширения веб-браузера.
1. Веб-приложение
В разработке веб-приложений может быть несколько подходов, которые сильно зависят от используемого технологического стека. Вот наш выбор технологий для разработки веб-приложений: для внутренней (серверной) разработки мы используем язык Python и веб-фреймворк с открытым исходным кодом Django. Для построения реляционных баз данных мы используем систему управления базами данных с открытым исходным кодом PostgreSQL или Oracle RDBMS. Для нереляционных баз данных — MongoDB. Для крупномасштабной обработки данных мы используем Hadoop.Для интерфейсной разработки мы используем HTML, CSS, JavaScript, TypeScript вместе с фреймворками с открытым исходным кодом на основе JavaScript, такими как AngularJS и React.
Вот как выглядит структура типичного веб-приложения на основе Python:
Веб-приложение состоит из двух отдельных частей: внешней и внутренней. Внутренний программный код генерирует HTTP-ответ, обычно текстовый документ в формате HTML, загружаемый веб-браузером. Сам ответ содержит интерфейсный код, который выполняется на пользовательском устройстве в веб-браузере: в соответствии с разметкой HTML и стилями CSS страница визуализируется на дисплее, поведение страницы (например,g., перетаскивание, переходы в другие состояния, проверка пользовательского ввода и т. д.) кодируется на языке программирования JavaScript. Типичный веб-сервер имеет программное обеспечение веб-сервера, такое как Nginx или Apache (мы предпочитаем первый), программное обеспечение сервера приложений, которое выполняет программный код (наш выбор — uWSGI) и программное обеспечение для хранения данных — базы данных.
2. Мобильное приложение
Как уже следует из названия, мобильные приложения разработаны для работы на мобильных устройствах и планшетах.В настоящее время большинство мобильных приложений разработано для операционных систем Android и iOS.
Есть два подхода к разработке таких приложений. При первом подходе для конкретной платформы разрабатываются два отдельных приложения с использованием языков программирования и сред разработки, предоставленных разработчиками платформы (например, iOS использует язык программирования Swift, а для Android — Kotlin). Такие приложения называются «собственными приложениями». При втором подходе пишется одно приложение, которое можно использовать на обеих платформах (Android и iOS).Такие приложения называются «гибридными» или «кроссплатформенными». Такие приложения представляют собой просто веб-приложения, завернутые в нативную оболочку, при этом они выглядят и ощущаются как нативные. Преимущество гибридных приложений — меньшее время разработки и меньшие затраты (в зависимости от функциональности время разработки двух собственных приложений по сравнению с одним гибридным приложением может быть на 30-40 процентов больше). Преимущество нативных приложений заключается в их собственном пользовательском интерфейсе и улучшенном пользовательском интерфейсе, а также в доступе к аппаратному / программному обеспечению устройства (GPS, местоположение, встряхивание, календарь и т. Д.).
Для простых мобильных приложений (где нет взаимодействия с сервером) роль back-end и front-end разработчиков выполняет один человек, разработчик Android или iOS.
Примером такого простого приложения может быть калькулятор, фонарик или будильник, которые вы можете найти на любом телефоне.
Для более сложных приложений, требующих подключения к Интернету и связи с сервером, мобильного разработчика можно условно назвать разработчиком внешнего интерфейса, поскольку он в основном работает с интерфейсом приложения.Однако мы по-прежнему предпочитаем называть их разработчиками iOS или Android.
3. Расширение веб-браузера
Расширения — это небольшие программные модули, которые помогают веб-приложениям и помогают настроить браузер. Большинство современных браузеров поддерживают расширения. Расширение помогает настроить ваш браузер, добавляя в него новые функции с помощью некоторых API-интерфейсов JavaScript. Это страница, размещенная в самом браузере, у которой есть доступ к дополнительным API. Для этого требуется использование HTML, CSS и JavaScript.Front-end разработчики разрабатывают расширения.
Однако для более сложных расширений может потребоваться разработка сервера.