UA RU
logo
15 Nov 2022

Що таке backend-розробка і чим вона відрізняється від frontend

Микола Ладуба

Редактор текстів

Віддалена робота, спілкування та навчання, багатокористувацькі онлайнові ігри та онлайн-шопінг – все це було б неможливим без веб-сайтів. Однак жоден сайт не може існувати без фронтенд- і бекенд-розробників. І якщо фронтенд ми щодня бачимо у вікні свого браузера, то бекенд для багатьох залишається чимось загадковим і малозрозумілим.

Редакція MC.today з’ясувала, що таке бекенд-розробка, а також яких навичок та знань вона вимагає від програміста.


Що таке backend?

Бекенд – це внутрішня, прихована від користувача начинка сайту або веб-програми. Іншими словами, це частина сервісу, яка працює на віддаленому сервері, а не у браузері чи персональному комп’ютері. Бекенд обробляє і постачає користувачеві дані, які потім відображає фронтенд: так називають інтерфейс користувача, видиму частину сайту або програми, яка працює на вашому пристрої.

Що таке backend?

Що таке backend?

На мові аналогій веб-сайт можна порівняти з складним приладом. Зовні ми бачимо фронтенд, або інтерфейс користувача: екран, кнопки, перемикачі. Ми знаємо, яку кнопку натиснути, щоб на екрані з’явилася необхідна інформація. Так ось, бекенд – це ті процеси, які відбуваються під капотом приладу, коли ми натискаємо на кнопку. Ми не бачимо, що відбувається всередині корпусу, та й не повинні це знати. Адже всю роботу виконує бекенд, а фронтенд лише показує нам її результати.

Відмінності бекенд від фронтенд

Візьмемо для прикладу Приват24. Він зберігає на серверах дані про мільйони користувачів: скільки на їхніх рахунках грошей, історію операцій, підключені послуги тощо. Усе це записано в таблицях баз даних.

Курс
UI/UX design
Навчайся в онлайн форматі. Створи своє портфоліо з 4 проєктів та отримай роботу в ІТ компанії
РЕЄСТРУЙТЕСЯ!
Приват24

Приват24

Але простий користувач не здатний переглянути бази даних на сервері. Щоб ви могли побачити залишок на рахунку або зробити переказ,  потрібен пристрій зі зручним інтерфейсом: екраном, кнопками, інструкцією. Це може бути банкомат, спеціальний додаток або сайт privat24.ua, який надсилатиме запити на сервер, отримуватиме відповіді та красиво видаватиме їх вам на екранах смартфонів.

Сторінка банку, де ви можете дізнатися про тарифи, та скрипти, за допомогою яких браузер отримує інформацію від сервера, – це приклади фронтенду. Він заснований на трьох технологіях: HTML, CSS та JavaScript.

HTML, або мова гіпертекстової розмітки, нагадує сайту, що показувати. CSS , або каскадні таблиці стилів визначають як це буде виглядати. А мова програмування JavaScript відповідає за динамічні елементи: анімацію та взаємодію з користувачем.

Відмінності бекенд від фронтенд

Бекенд та фронтенд

Але є ще сам сервер, де зберігаються усі дані. Сервер повинен розуміти, хто до нього звертається, чого він хоче і чи має право доступу до інформації. Іншими словами він проводить авторизацію та перевіряє права доступу. Потім шукає в базах даних потрібні відомості, перетворює їх у доступний вигляд і віддає браузеру, щоб той показав вам. Всі ці серверні програми, які опрацьовують запити клієнтів і стежать за правильним зберіганням даних, – це бекенд. 

Іноді межа між фронтендом і бекендом виглядає досить хиткою. Коли ви вводите запит на сторінці пошукової системи, то маєте справу з фронтендом. Але варто натиснути Enter, і за справу береться бекенд. Запит потрапляє на сервер Google, де система знаходить найкращі сторінки і повертає їх список у браузер. Як тільки на екрані з’являються результати пошуку, ви знову повертаєтеся в область фронтенду.

Завдання та обов’язки backend-розробника

Бекенд-розробник, або бекендер, потрібен кожній компанії, яка взаємодіє з клієнтами через сайт чи веб-сервіс. Наприклад, в інтернет-магазині він відповідає за ідентифікацію покупців, зберігання та пошук інформації в базі даних, роботу полів реєстрації та кошика, взаємодію з банком, автоматичне розсилання листів та оновлення контенту.

Іншими словами, бекендер повинен забезпечити роботу всіх тих функцій, які споживачеві надає інтерфейс. У проекті, що вже існує, бекенд-розробники зазвичай покращують сервіс: додають функціональність і нові можливості, виправляють помилки. Якщо проект розробляють з нуля, то завдання бекендера будуть такими:

  • Вивчення контексту задачі. Ще одна особливість бекенда в тому, що він вимагає більшого порівняно з фронтендом занурення у конкретні бізнес-процеси. Наприклад, якщо ви не знаєте, що таке лійка продажів, то навряд чи зможете розробити її логіку разом з усіма фільтрами та переходами.
  • Пошук рішення. Насправді головне завдання бекенд-розробника – вирішення бізнес-завдань клієнта програмними засобами. І написання коду – це лише один із способів досягнення цієї мети. Досвідчений розробник пропонує клієнту найбільш практичне рішення на основі шаблонів програмування, веб-стандартів та напрацьованого роками досвіду. У великих проектах для цього проводять планерки за участю фахівців, які відповідають за різні фрагменти сервісу.
  • Вибір мови. В рамках поставленого йому завдання бекендер може вибирати будь-яку з серверних мов. Головне, щоб він забезпечив зручність, швидкість та продуктивність роботи. Універсального вибору немає. Так для великих проектів зазвичай вибирають Java, для середніх – PHP, для стартапів, що швидко розвиваються, – Ruby або Go. Докладніше про мови для backend ми поговоримо нижче.
  • Вибір інструментів. Крім мови програмування на початковому етапі розробки необхідно вибрати інструменти. Це можуть бути бази даних, наприклад, MySQL, PostgreSQL або MongoDB. А також найбільш підходящий під ваші цілі фреймворк. Термін «фреймворк» перекладається з англійської, як каркас, структура. Це набір готових рішень, що прискорює процес розробки програм. Усередині фреймворків реалізовано код для вирішення безлічі найпоширеніших завдань: ідентифікації користувачів, роботи з базами даних тощо. Приклади популярних у бекенді фреймворків: Spring Framework, Django, Express.js .
  • Написання коду. Це основне завдання бекендера, яке займає найбільше часу. У процесі написання коду велике значення приділяється спільної роботи з іншими розробниками. Спростити її дозволяють системи контролю версій, або СКВ. Вони записують на хмарному сервері всі зміни коду і дозволяють за потреби повернутися до певного варіанту.

Мови програмування в бекенді

Набір технологій, на основі яких розробляють веб-проект, включає операційну систему, тип веб-сервера, систему управління базами даних, мову програмування та фреймворк. Усе разом це називають стеком технологій. При вказуванні мови до неї часто додають назву вибраного фреймворку. Наприклад, JavaScript + Node.js або PHP + Yii .

Мови програмування в бекенді

Мови програмування в бекенді

PHP

За даними ресурсу W3techs, понад 77% всіх веб-сайтів у світі написані мовою PHP. Він простий у вивченні, але погано масштабується та досить повільно працює. Тому часто можна почути, що PHP вмирає. Так це чи ні, покаже час. А поки що PHP-розробники забезпечені роботою на багато років вперед, адже мільйони сайтів на PHP нікуди не подінуться і їх потрібно обслуговувати.

C# + ASP.NET

Універсальний C# у зв’язці з потужним фреймворком від Microsoft займає друге місце в рейтингу популярності серверних мов для веб-сайтів.

Ruby + Ruby on Rails

Мова загального призначення Ruby дозволяє швидко створити працюючий проект. Тому її часто обирають за основу стартапи, серед яких Kickstarter, Airbnb та інші.

Java

Головні переваги мови Java – кросплатформність та продуктивність. Її можна використовувати для створення програм на Android, десктопних та веб-додатків. А висока продуктивність Java дозволяє створювати великі проекти з великим навантаженням. Наприклад, програми для роботи з Big Data. 

У рейтингу популярності на основі пошукових запитів TIOBE за листопад 2022 Java займає третє місце. Крім цього, у 70% вакансій для розробників знання цієї мови є обов’язковою умовою для працевлаштування. Про зарплату Java-розробників в Україні ми писали раніше.

Python

Зручний і нескладний у вивченні Python підходить для вирішення багатьох завдань. А завдяки хорошим фреймворкам, наприклад Django, дозволяє швидко створити блог, форум чи інтернет-магазин. У рейтингу TIOBE мова програмування Python стабільно посідає перше місце.

Go (Golang)

Швидка і легка мова від Google ще не така популярна, як перелічені вище, але активно розвивається. Тому фахівці з Go потрібні у багатьох компаніях і досить непогано заробляють.

JavaScript + Node.js

Мову програмування JavaScript широко використовують для фронтенд-розробки, але вона знаходить застосування і в бекенді. Платформа Node.js дозволяє запускати JS на серверній частині сайту. З одного боку, це забезпечує гнучкість налаштувань. З іншого, ускладнює масштабування та уповільнює роботу.

Навички та знання необхідні для backend-розробника

Вимоги до бекендеру залежать від сфери та рівня компанії. Умовно їх можна розділити на дві частини: hard skills, або професійні компетенції, і soft skills, або особисті якості. 

Hard skills

У статті про HTML ми писали, що програмісту-початківцю набагато простіше освоїти frontend, тому що це про візуал та про браузер. Тобто свої помилки ви зможете наочно бачити у браузері. З бекенд-розробниками ситуація дещо інша: вони відповідають за процеси, які не тільки не можна побачити, а й часто досить складно уявити. Тому великою перевагою при прийомі на роботу буде абстрактне мислення і поглиблене знання математики та алгоритмів. Крім цього, у більшості вакансій прописаний базовий набір професійних навичок.

Hard skills та soft skills

Hard skills та soft skills

  • Володіння декількома популярними у бекенд-розробці мовами програмування, такими як PHP, Python, Java, C#
  • Вміння писати запити та організовувати бази даних у MySQL, Postgres або NoSQL .
  • Навички розробки у популярних фреймворках.
  • Вміння підключати API або програмний інтерфейс додатків. Це складова частина сервера, яка отримує запити та надсилає відповіді. Наприклад, програма з прогнозом погоди звертається із запитом до API сайту weather.com, щоб підвантажити у свій інтерфейс дані про температуру, вологість та напрям вітру.
  • Базові навички з адміністрування Windows, Linux, Unix.
  • Розуміння роботи протоколів передачі між клієнтом і сервером.
  • Знання функціоналу серверів – NGINX, Apache та інших.
  • Досвід використання системи контролю версії Git.
  • Використання шаблонів проектування або рішень для загального набору проблем, які виникають під час розробки веб-застосунків. Наприклад, Singleton, Factory, Observer, Decorator .

Soft skills

  • Аналітичне мислення, вміння систематизувати інформацію, щоб вибрати найкращі інструменти та способи реалізації проекту.
  • Вміння працювати у команді, взаємодіяти з колегами, спілкуватися із замовниками. 
  • Адекватне сприйняття конструктивної критики.
  • Здатність до постійного навчання та розвитку.
  • Гнучкість у постійно мінливих умовах роботи.

Наочно розібратися з необхідними у бекенді навичками допоможе дорожня карта для бекенд-розробника. Вивчіть її та прокладіть свій шлях до вершин професії!

Чи потрібно бекенд розробнику знати англійську мову

У DOU з’ясували, що лише 8,9% українських розробників (software engineer) знають англійську мову на найвищому рівні Advanced . Більшість (39,6%) знають англійську на рівні Upper-Intermediate. То чи потрібна англійська мова бекенд-розробнику? Безперечно, потрібна! І на це є кілька причин.

Джерело: dou.ua

Джерело: dou.ua

  1. Технічна документація. Безліч документації з’являється англійською мовою. Її переклад, по-перше, спотворює сенс. По-друге, його іноді доводиться чекати роками, а за цей час інформація може безнадійно застаріти. Тому краще вивчити англійську самому та читати документацію в оригіналі.
  2. Англомовне співтовариство програмістів. Якщо взяти для прикладу Stack Overflow, один з найбільших ресурсів про мови програмування, то англійською там більше 21 мільйона тем, а російською лише 370 тисяч.
  3. Середовище розробки та код. Називати змінні з функціями транслітом абсолютно неприйнятно. Тому знання мови на базовому рівні необхідне для написання якісного коду.
  4. Замовники з інших країн. Володіння англійською дозволяє безпосередньо спілкуватися із замовниками. А фрілансерам дає можливість знаходити замовлення з інших країн та отримувати більше грошей за свою роботу.
  5. Розмір оплати. Якщо ми вже говоримо про заробітну плату, то навіть в Україні вона на 25–30% більша у тих програмістів, які добре знають англійську. Деякі компанії взагалі створюють вакансії англійською, щоб відразу відсіяти тих фахівців, які її не знають.
  6. Пошук в інтернеті. Готове вирішення складного завдання часто можна знайти в Інтернеті. Але запити англійською дадуть тобі в рази більше варіантів та порад.

Чи можна одночасно бути frontend і backend-розробником?

Незважаючи на різні спеціалізації, бекенд-розробники та фронтенд-розробники спільно працюють над одним завданням: створенням якісних веб-сервісів. Іноді, особливо в невеликих компаніях, програмісти вирішують проблеми і на стороні сервера, і в клієнтській частині. Таких фахівців називають фулстек-розробниками.

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

work.ua

Джерело: work.ua

При цьому роботодавцям простіше взяти одного універсального розробника, ніж двох вузьких спеціалістів. Тому fullstack-розробник – одна з найрідкісніших та найактуальніших спеціальностей на ринку праці. У середньому full stack developer в Україні заробляє 70 500 грн на місяць. Це медіана заробітних плат за даними із 129 вакансій, розміщених на Work.ua.

Як потрапити до професії?

Хорошим фундаментом для бекенд-розробки стане вища математична, фізична або IT освіта. Саме вони дають розуміння алгоритмів, функцій та обчислювальних процесів. Але це не означає, що без академічної освіти не можна стати бекендером. І навіть навпаки, за опитуванням ресурсу StackOverflow, майже 60% респондентів навчилися програмувати за допомогою онлайн-ресурсів.

Курси програмування

Курси програмування

Для входу в професію можна окремо пройти курси веб-розробки та програмування однією з серверних мов, наприклад PHP або Java

Або записатися на курси fullstack-розробників, де дають базові знання з HTML, CSS, JavaScript та доповнюють їх знаннями з серверних мов та фреймворків.

Після курсів можна претендувати на посаду стажистів у невеликій IT-компанії. Робота з досвідченим наставником допоможе отримати повніше розуміння окремих компонентів бекенд-розробки. Потім вже пробуйте сили як спеціаліст рівня Junior.

Ще одна можливість – самотужки створити повноцінний проект з бекендом та фронтендом. А потім зацікавити ним роботодавців. Або знайти невеликий Open Source проект і приєднатися до його команди, наприклад, на платформі Github.

Зарплата та кар’єрні перспективи

Як ви вже, напевно, встигли зрозуміти, бекенд – досить складна сфера діяльності навіть за мірками IT. Від кандидатів вимагають знання багатьох технологій. Але чи вартий результат витрачених на навчання зусиль? 

Середня зарплатня бекенд-розробників у США

Джерело: indeed.com

Згідно ресурсу Indeed, бекенд-розробник у США в середньому заробляє $6767 на місяць. А у великих компаніях ця сума може зрости до 11–17 тис. доларів. В Україні суми менші. Охочих докладно вивчити рівень зарплат у бекенді ми надсилаємо до інформативної статті з порталу DOU. Там можна відсортувати середній рівень зарплат розробників у 2022 році за містами, спеціалізацією, мовами розробки та типом компаній. 

Джерело: dou.ua

Джерело: dou.ua

У середньому країною Junior бекенд-розробник заробляє $950, Middle $2600, а Senior близько $4600. Середня зарплата програмістів, що не дивно, більша у Києві та Львові. А ось статистика по мовам програмування підносить сюрпризи. 

Джерело: dou.ua

Джерело: dou.ua

Найбільше зарплати у київських Senior-розробників на Ruby ($6000), Go ($5500) та Scala ($5450). Замикають перелік C++ ($4140) та PHP ($4025). З мідлами ситуація трохи інша: найбільше заробляють фахівці з Dart ($3000) і найменше розробники на Go ($2650). Для джуніорів найприбутковішим варіантом є C++ ($1235), а на протилежному боці списку знаходиться C#/.NET ($900).

Майбутнє обіцяє бекенд-розробникам непогані перспективи. Почнемо з того, що в команді стандартного веб-проекту на одного фронтендера припадає 3-4 бекендери. Значить потреба в них, а відповідно і шанси отримати роботу в стільки ж разів більші.

Крім того, бекендер завжди ближче до фулстека. І може перейти до нього зовсім непомітно. Бекенд-розробникам із знанням Java, С/С++ простіше перейти у сферу десктопних додатків, ентерпрайз-розробку (вирішення проблем бізнесу), інформаційну безпеку.

Отже, бекенд-розробники потрібні скрізь, де використовують сайти та веб-додатки. Вони пишуть серверний код та відповідають за реакцію ресурсу на дії користувачів. Це складна та дуже важлива робота. Хороший бекендер має знати кілька мов програмування. Найзатребуваніші – PHP, Java, Python, Ruby, C#, C++

В Україні фахівці з бекенд-розробки заробляють у середньому від $950 на рівні Junior до $4600. З недоліків професії можна назвати складність її освоєння. Вивчити необхідний стек технологій без наставника досить складно. Тому придивіться до практичних курсів від навчальних закладів із гарною репутацією.

Новости

Спецпроекты

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: