July 28, 2022

Різниця між Backend, Frontend, Full-stack та Super stack Development

Спрощено розглянемо різницю між термінами "backend", "frontend", "full-stack" і "super stack", звичайно, з фокусом на веб-розробці.

На картинці вище: Синя область є фронтендом, зелена(+частина жовтої) - бекенд. Помаранчева область представляє повний стек, а нижня жовта лінія вказує на супер стек.

Фронтенд-розробка зосереджена на тих елементах сайту, які ви бачите у браузері і з якими безпосередньо взаємодієте. Бекенд-розробка відповідає за функціонал сайту і має справу з речами, яких ви не бачите, — такими як бази даних та сервери.

Розглянемо докладніше кожну з них:

Backend Development

  1. Робота на Backend передбачає роботу щонайменше з однією мовою програмування, такою як PHP, NodeJs, Ruby, Python, Java, Go тощо, яка може взаємодіями з базою даних / сховищем даних.
  2. Базова робота по розробці ПО охоплюватиме проектування реляційних баз даних, які в основному представлені у вигляді діаграм Entity-Relationship (ER).
  3. Робота з Backend вимагатиме від розробника розуміння більш складних понятть бази даних, таких як паралельність, блокування та транзакції .
  4. Звичайно, знання SQL буде незамінним.
  5. Робота буде включати знання та/або налаштування реляційних СУБД, таких як Mysql, Postgres, SQL Server, Oracle тощо.
  6. Для того, щоб добре працювати з розробкою програм, знання мережі, DNS тощо буде також дуже корисним.
  7. Залежно від специфіки проекту, передбачатиме створення API. Робота може включати в себе створення RESTful API або GraphQL. Знання gRPC також буде корисним.

Тут ми пропускаємо багато речей, наприклад знання структури та алгоритмів даних, HTTP, знання операційної системи, база даних NoSQL, Message Brokers тощо, оскільки це спрощене порівняння.

Тож якщо коротко: коли потрібно виконати якусь операцію, бекенд-код взаємодіє з базою даних (використовуючи MySQL, SQL, Microsoft Access і т.д.). Після цього необхідна інформація повертається користувачу в формі фронтенд-коду.


Frontend Development

  1. Frontend розробка охоплює можливість змінювати вигляд сайту, тим самим включаючи кольори, кнопки, поля тощо. Це буде переважно робота з CSS .
  2. Робота з веб-інтерфейсом включає в себе складний HTML. Тож його знання є обов'язковим.
  3. Завдання зовнішнього інтерфейсу, безумовно, будуть включати певну форму Javascript і роботу з фреймворками/бібліотеками, такими як Angular, React або Vue, тощо.
  4. Щоб виконати якусь змістовну роботу з зовнішнім інтерфейсом, вам потрібно буде зрозуміти управління пакетами js, пакетами модулів, таких як webpack.
  5. Frontend тягне за собою використання API (в основному API REST).
  6. Робота з сучасним веб-інтерфейсом може включати вивчення Typescript, знання Progressive Web App та інших речей.

Варто згадати також статичні генератори сайтів, веб-компоненти та стек JAM.

Тож якщо коротко: 3 "кити" Frontend - HTML, CSS та JavaScript. HTML відповідає за представлення коду користувачам у зрозумілій та звичній формі. CSS пропонує можливості із вдосконалення стилів (кольори, фони і т.д.). Javascript робить взаємодію користувача з сайтом швидшою та цікавою за допомогою слайдів, випадних меню, безкінечного скролінгу і т.д.

Низка інших елементів та фреймворків (SAAS, LESS, Bootstrap, jQuery, Angular, Ember і т.д.) використовуютья разом із цією «великою трійкою» для значного полегшення роботи.

Full-stack Development

  1. Full-stack Development - це суміш як Frontend, так і Backend. Цей мікс - це не все, що є в бекенді + все у фронтені. Це вибіркова суміш залежно від проекту.
  2. Завдання буде кваліфіковано як Full-stack, коли воно включає такі речі, як додавання поля до таблиці бази даних, написання коду бекенду та зміна форми та логіки фронтенду.

Термін "full-stack developer" здається надто вимогливим, але справжні розробники full-stack не міфічні, просто дуже дорогі.

Super stack Development

  1. Робота Super stack передбачає не лише розробку Full-stack, але її розгортання та забезпечення доступності та масштабованості.
  2. Цей вид роботи включає в себе знання серверної архітектури, хмари та DevOps / SRE .
  3. Робота із Super stack також включає в себе питання безпеки данних та написання захищеного коду.

Висновок

Кожна спеціалізація потребує свого набору спеціалізацій, проте, є навички, що знадобляться для виконання всіх видів вищезазначених робіт, такі як використання Git, автоматизоване тестування, проведення code review, використання Docker.