Frontend, Backend и Full Stack: Выбор пути в веб-разработке

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

Frontend (клиентская сторона)

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

Backend (серверная сторона)

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

Full Stack

Термин «full stack» относится как к процессу разработки, так и к роли разработчика. Full stack разработчики – универсалы, владеющие навыками создания как frontend, так и backend частей приложения. Это делает их высоко востребованными специалистами.

Компоненты Frontend

Frontend состоит из трёх основных блоков:

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

Компоненты Backend

Backend включает множество технологий, которые можно разделить на три группы:

  1. Языки программирования: Node.js, Java, Python, C# и другие используются для создания логики backend и взаимодействия с базами данных.
  2. Базы данных: Существует два основных типа:

    • Реляционные базы данных (SQL): MySQL, PostgreSQL. Хранят данные в структурированном формате, в таблицах со взаимосвязями.
    • Базы данных документов (NoSQL): MongoDB, Redis. Не имеют строгих требований к формату данных. MongoDB хранит документы в коллекциях, Redis – данные в формате ключ-значение, часто используется для кэширования и обработки данных в реальном времени.
  3. Инфраструктурные сервисы: Docker, Kubernetes, Amazon Web Services (AWS), Google Cloud, Microsoft Azure. Эти сервисы помогают запускать и управлять серверными приложениями в облаке.

Взаимодействие Frontend и Backend

Frontend и backend приложения общаются посредством запросов и ответов. Клиент (браузер или мобильное приложение) отправляет запрос на сервер, сервер обрабатывает его, возможно, обращаясь к базе данных, и возвращает ответ клиенту. Протокол HTTPS (безопасная версия HTTP) является наиболее распространённым способом связи между клиентом и сервером. Для передачи данных между клиентом и сервером часто используются REST API или GraphQL.

Адаптивная верстка

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

  • Мобильный first дизайн: Разработка дизайна, начиная с мобильной версии, а затем адаптируя его под планшеты и компьютеры.
  • CSS Media Queries: Позволяют применять различные стили CSS в зависимости от характеристик устройства.
  • CSS Flexbox и Grid: Упрощают позиционирование и размещение элементов на экране.

Традиционные веб-приложения и SPA

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

Одностраничные приложения (SPA) загружают все необходимые файлы (HTML, CSS, JavaScript) при первом открытии. Дальнейшая навигация осуществляется без перезагрузки страницы, путём изменения содержимого страницы с помощью JavaScript. Для создания SPA используются различные фреймворки и библиотеки, такие как React, Angular, Vue.js, Svelte.

Пример архитектуры веб-приложения

Упрощенный пример архитектуры веб-приложения включает:

  • Frontend-сервер: Хранит статические файлы (HTML, CSS, JavaScript).
  • API-сервер: Обрабатывает запросы от frontend и взаимодействует с базой данных (MongoDB).
  • База данных: MongoDB.
  • Обрабатывающий сервер: Выполняет фоновые задачи.
  • Система очередей: Redis.
  • Логгинг и мониторинг: Elasticsearch, Kibana.

Frontend и backend – две неотделимые части любого веб-приложения. Full stack разработчики, владеющие навыками работы с обеими частями, очень востребованы. Создание успешного веб-приложения требует значительных усилий, времени и практики.

Что будем искать? Например,программа