Администрирование, Блог

IT понятным языком. Frontend и Backend.

В случае, если Вы решили стать разработчиком, Вам следует определиться с направлением: frontend или backend. Разберемся, что это значит, где применятся и с чем должен уметь работать специалист.

В первую очередь, определимся в понятиях:

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

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

 

Естественно, у каждого разработчика свои инструменты. Главными приспособлениями «фронтэндера» являются HTML, CSS и JavaScript. Также они могут использовать React, Angular, NodeJS и даже Swift. Разберемся, что есть что:

HTML – HyperText Markup Language. Это – язык разметки, благодаря которому ресурс обретает структуру: какие абзацы будут располагаться на странице, что в них будет написано, что будет заголовком, из чего будет состоять «шапка» — это задачи, которые разработчик решает при помощи HTML.

CSS – Cascading Style Sheets. С ним страница приобретает внешний вид. Шрифты, цвета и позиционирование блоков на экране – всё это разрабатывается и оформляется при помощи CSS.

JavaScript. В отличии от HTML и CSS, это – полноценный язык программирования. «JS» делает страницы живыми: обрабатывает клики мыши, настраивает анимации и встраивает приятные глазу эффекты. Все ссылки и кнопочки становятся рабочими и интерактивными.

React. Это — библиотека для JavaScript с открытым исходным кодом, которая используется для разработки пользовательских интерфейсов. Отлично подходит для одностраничников и мобильных приложений.

Angular — тоже штука, связанная с JavaScript. Он является его фреймворком (от англ. framework — каркас, структура). Его основная фишка — возможность вставить код прямо в HTML, сделав его компактнее.

NodeJS — среда выполнения кода, построенная на движке JavaScript V8. Используется для транслирования вызовов на языке JS в машинный код.

Swift — язык программирования от компании Apple. В наших краях менее популярен.

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

«Бэкэндер» же работает в другой среде. Его задачи выполняются на серверной стороне ресурса, а число инструментов куда больше. Например, разработчик может оперировать Ruby, Python, PHP, Java, Golang, C++ и C# или ASP.NET Core. А для полноценного контроля над базами данных, ему следует владеть MySQL, PostgreSQL или SQLite.Что же все это означает?

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

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

PHP — скриптовый язык программирования. PHP расшифровывается как Hypertext PreProcessor — препроцессор гипертекста. На нём пишутся скрипты, которые выполняются на стороне сервера, а также оконные приложения, работающие на стороне клиента.

Java. Главное — не перепутать его с JavaScript! Java — объектно-ориентированный язык программирования, на котором пишутся приложения для самых разных платформ. Например, он является одним из основных языков программирования под Android.

Golang. Относительно молодой язык, разработанный компанией Google в 2009-м году. Отличается понятным синтаксисом, компилируемостью и многопоточностью.

C++ и C# — два совершенно разных языка, не смотря на похожее название. Вкратце: C++ — сложный, но при этом более быстрый и эффективный, отлично подходит для высокопроизводительных задач. C# — легче, чем «плюсы», но менее эффективный. Используется в обычных приложениях.

ASP.NET Core — фреймворк для кроссплатформенной разработки. Имеет открытый исходный код и гибкость в реализации задач. Позволяет создавать облачные приложения, веб-службы, серверную часть разработки, а также выполнять развертывание как в сетевой, так и в локальной среде. Является модификацией ASP.NET, первая версия которого появилась в 2002-м году.

MySQL, PostgreSQL, SQLite — СУБД — системы управления базами данных. База данных — это специально разработанное хранилище для самых разных типов данных. Модели баз данных бывают разные: например, реляционные, или документо-ориентированные. СУБД в свою очередь являются приложениями для управления базами данных различных форм и размеров. MySQL — наиболее популярная и распространенная СУБД. PostgreSQL — упрощая, наиболее продвинутая СУБД. SQLite — мощная встраиваемая система управления.

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

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

Фронтенд и бэкенд связаны по следующему принципу:

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

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

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

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

Миддл – средний специалист, который умеет справляться со сложными задачами. Он осознаёт масштабы проекта и работает не только с его частями, но и над целыми направлениями.

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

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

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