Weby a webové aplikace se mnohdy skládají ze dvou částí. Také se můžeš setkat s termínem „klient – server“. Jedna část je umístěna na serveru (backend) a druhá se spouští v prohlížeči uživatele (frontend). Jak už můžeš tušit z názvů, „front“ je něco, co je vidět, „back“ je něco, co je skryté. Toto rozdělení přináší řadu výhod, např. rozdělení práce developerů podle specializací, nezávislost serverové části a logiky na aktuální podobě aplikace nebo webu. Toto uspořádání také umožňuje provozování několika frontendů přes jeden backend.
Pojďme si architekturu klient–server ukázat na službě Netflix. Služba používá jeden backend s databází, kde jsou uložena všechna data o uživatelích, o předplatném i o tom, kdo viděl jaké filmy. Tato data jsou pak poskytována různým frontendovým aplikacím. Díky tomu vidíš stejné informace přes web, mobilní apku i přes chytrou televizi. Díky tomu, že backend je společný, Netflix rozpozná např. pokud se přihlásíš z různých zařízení současně. Backend v tu chvíli rozhodne, zda ti má přístup v některém z frontendů zablokovat na základě tvého předplaceného plánu.
Hlavní zodpovědností backendu je uchovávat centrálně data a poskytovat správná data pro frontend. Tato část aplikace má obvykle přístup do databáze, kde může s daty pracovat. Může je ukládat, aktualizovat, mazat či v nich vyhledávat. Logika aplikace, zjednodušeně řečeno, popisuje, jakým způsobem se mají data posílat na frontend, co se s nimi má stát, pokud frontend pošle data do backendu přes komunikační rozhraní, tzv. API.
Frontend aplikace se stará o atraktivní a uživatelsky přívětivé zobrazení informací a přijímá data připravená pro zobrazení.
Backend developer má na starost programování celé vnitřní logiky aplikace (v praxi se také setkáš s termínem business logic) a práci s daty (čtení z databáze, ukládání a vyhledávání).
Záleží na typu projektu a velikosti týmu, ale zjednodušeně se dá říci, že backend developer se zabývá následujícími činnostmi:
Backend developer píše kód (např. v jazyce Java nebo Python), zajišťuje odpovídající efektivitu a rychlost fungování programu. Pracuje s databázemi, např. MySQL, PostgreSQL apod. Více o programování backendu zde.
Analyzovali jsme pozice vypsané na trhu práce. Každý třetí zaměstnavatel požaduje, aby backend developer znal Javu, či Python. Dále se očekává, že backend vývojáři budou znát SQL (24,48 % inzerátů), REST (20,72 %) a Spring (20,29 %). Nejméně často požadovanou dovedností je znalost C++ (5,73 %) a JavaScriptu (7,6 %).
Ve skutečnosti by měl mít dobrý seniorní backend vývojář mnohem širší škálu dovedností. Kromě výše zmíněné Javy nebo Pythonu by se mu vyplatilo znát ještě alespoň jeden programovací jazyk (např. PHP nebo .NET) a být specialistou na databáze (např. MySQL, Oracle, MongoDB apod.). Měl by mít také schopnost řídit projekty i vývojové, testovací a produkční prostředí (a seznámit se s Dockerem). Je dobré, aby backendový vývojář získal zkušenosti se systémy pro správu verzí (zejména GIT), ale měl by rozumět i frontendovým technologiím.
To vše na tebe však teprve čeká. V IT to chodí tak, že téměř každý nový projekt obsahuje novou technologii, takže tvoje schopnosti s přibývající praxí neustále porostou.
Naučit se backend development stojí za to. Polovina uživatelů nejpopulárnějšího webu o programování na světě StackOverflow.com jsou backendoví vývojáři. Nejžádanější skupinou jsou vývojáři střední úrovně (tzv. medioři), následují seniorní specialisté, ale na trhu se objevují i příležitosti pro juniorní zaměstnance.
Backend developer se může dále profesně rozvíjet mnoha směry. Někteří developeři se postupně přesunuli od analýzy a návrhu systémů k řízení lidí (např. na pozice CTO) nebo do systémové integrace.
Programování backendu je pro tebe vhodné, pokud:
Četné inzeráty s nabídkou práce v oblasti backendu potvrzují, že se jedná o specializaci s dobrou perspektivou do budoucna.