15.12.2020. ·
5 min

Šta radi backend developer?

Šta radi backend developer?

Backend je termin za izradu softvera ’’iza scene’’ ili ’’iza zatvorenih vrata’’, sa podvučenom reči iza, gde se sva serverska čarolija jedne aplikacije događa. Konkretnije, komunikacija servera sa bazom podataka i ’’frontendom’’ tj njenim prednjim delom (ono što vidimo) u browseru. Jednom rečju, to je serverska izrada koja se fokusira na logiku i funkcionalnost aplikacije.

Dosta je kompleksnije nego ovako na prvu loptu, rad backend-a je kičma svake aplikacije, gde se zalazi u više segmenata izrade. Ok, ne zalazi se u to kako će aplikacija izgledati i ceo njen dizajn, ali, pored logike koja ’’napaja’’ aplikaciju, na polju sigurnosti i zaštite, posao retko kad je završen. Uvek ima nekih tweakovanja, podešavanja, updateovanja, na kraju treba zaštiti podatke od eventualnih napada i zloupotreba. Prethodno toj priči, backend developer sprema podatke iz baze za slanje do korisnika u vidu paketa, gde je potrebno konfigurisati tu komunikaciju kako bi svi paketi stigli do svog cilja. Ne bih zalazio u detalje oko ovoga i kako to funkcioniše, ali na backend developeru je da to sve lepo ’’upakuje’’ i na najbrži i najsigurniji način preda frontendu odnosno korisniku.

Koje tehnologije koristi backend?

U toj komunikaciji između prednje i zadnje strane, dolazimo do nečega što se zove API (Application Programming Interface). API je najbolji prijatelj backend developeru koji u to dragoceno prijateljstvo ulaže brzu implementaciju i podešavanja pomenute komunikacije.

Backend developer piše API za komunikaciju između dve aplikacije, gde omogućava integraciju aplikacije u sistem. Ovo se koristi za različite potrebe kompanije i namene aplikacije (softvera), ali jednostavan primer API-ja je Facebook koji ima javni (public) API, kojim drugim aplikacijama daje mogućnost integracije fejsbuka. Putem određenih sigurnih (hash) api ključeva se bezbedno vrši takva komunikacija i uz malo uloženog truda, ubacili ste fejsbuk u vašu aplikaciju. To je samo jedan od primera API-ja, postoji mnogo različitih namena i zavisi od toga kakva se aplikacija izrađuje.

Backend developeri imaju na raspolaganju niz tehnologija u kojima mogu izraditi ’’pozadinca’’ i neki od popularnih jezika koji se koriste su Java, Javascript (NodeJS), Python, Ruby, PHP, C# itd. i da ne generalizujem previše, uglavnom se koristi frejmvork da olakša dev izradu kao što je na primer Express za NodeJs, Django za Python, Laravel za PHP, .Net za C#, Ruby on Rails za, pogađaš, Ruby i drugi. Programiranje može biti objektno orijentisano (OOP) ili funkcionalno (FP). Ovo zavisi od plana infrastrukture i naravno namene određene aplikacije. Sa OOP programiranjem, izvršavanje je određenim redosledom i obično se koriste navedeni jezici. Ovakvo programiranje je u većini slučajeva standardno.

Kasnije su se upotrebljavale drugačije ’’action-based’’ tehnike, pa funkcionalno programiranje je našlo svoje mesto u primeni. Konstrukcija softvera se obavlja stvaranjem čistih funkcija gde se izostavlja koncept ’’shared state’’ ili ’’mutable data’’ koji su prisutni u OOP. Ovde nije određen redosled izvršavanja funkcija i često se zaobilazi ukoliko se pravi ’’large scale’’ (veća) aplikacija. Uglavnom se koristi za ’’data-science’’.

Šta je potrebno da bi bio dobar backend developer?

Pored ekspertskog znanja i iskustva u jednom od pomenutih tehnologija, za dobrog bekendaša moraš imati određenu ličnost. Pod ovim ne mislim ništa loše ili impliciram na bilo koji način da su ćaknuti ili slično (naprotiv), ali oni su dosta strpljivi i istraživački nastrojeni pojedinci, inteligentni su i radoznali. Svi znamo da je radoznalost ubila mačku, ali ovde to nije slučaj i ovde je tako nešto potrebno. Racionalno dolaze do rešenja problema i pristupaju metodično i savesno. Na takvu ’’određenu’’ ličnost sam mislio, ali ovde nisam isključiv i naravno da ovo nije jedino što je potrebno i da se bez toga ne može.

Spremnost na konstantno učenje je nešto što mora imati svaki developer, ali bez upornosti i dosta strpljenja, neće daleko dogurati. Komunikacione veštine i socijalni skilovi su dobrodošli, jer i pored svog znanja i iskustva, developer mora biti spreman na saradnju i da pomogne junioru ili ostalim kolegama u rešavanju problema, ali da negativne strane ličnosti ostavi ispred vrata kolektiva.

Uloga i odgovornost

Posao mu je da razume ciljeve aplikacije i da nađe najbolje efektivno rešenje za implementaciju. Pored toga, mora da razume frontend web tehnologije kao što su html, css i javascript. Upravlja hosting okruženjem, administracija baze podataka, čuvanje podataka i deklaracija ruta do određenih dokumenata koje se mogu dozvoliti korisniku da vidi ili radi nešto sa njima (download, izmena...). Saradnja sa drugim developerima je nešto što se podrazumeva, iskustvo u korišćenju version control, kao što je na primer git.

Ukoliko aplikacija ima funkcionalnost plaćanja na webu, na bekendašu je da omogući siguran sistem za ceo proces, od čuvanja podataka do samog izvršenja plaćanja. Ovde se vidi lepota u upotrebi pomenutog API servisa (nisam siguran da li može bez API), gde olakšava ceo proces implementacije funkcije plaćanja kao i povezivanje na više uređaja, sistema i slično.

Pomenuo sam saradnju sa drugim dev ekipama, tako postoji i saradnja sa sistem arhitektom u procesu instalacije celokupne infrastrukture. Odgovoran je za logiku sistema softvera koji se izrađuje za više uređaja, iako sam to ranije pomenuo, važno je da se takva logika implementira na najbolji mogući način.

Kao što vidiš, velika je odgovornost na bekendašu da izgradi i podesi temelje brze i sigurne aplikacije ili softvera, pa onda i ne čudi što ih generalizuju i stavljaju u ulogu ćutljivog lika iz ćoška, kad se mačuje dan i noć sa svim stvarima koje mu se mogu lako obiti o glavu.

Za kraj...

Naravno, u realnosti nije baš tako mračno, suvoparno i nategnuto u ’’pozadinskim vodama’’ kako sam to možda nagovestio (gde pomenuti ćutljivi bekendaš samostalno udara glavom o zid da reši sve taskove), jer se bekendaši organizuju u timove po stručnosti i iskustvu na određenim poljima i svako dobije svoj deo zida za lupanje glavom. Šalu na stranu, najčešće su najbrojniji tim u kolektivu, što govori o kompleksnosti njihovih zadataka.

U dev segmentu postoji mnogo izazova koji znaju da budu kompleksni, s vremena na vreme, ali dobro uigrana ekipa, opremljena dovoljnom količinom kofeina (ili energetskim pićima), ni jedan bag ih ne može poremetiti, ni jedan problem nije nerešiv i ni jedna tvrđava nije neosvojiva.

Posmatrajući ceo backend sistem u celini, može se uporediti sa Rubikovom kockom. Jedan praktičan savet za kraj, ako vidiš bekendaša da ćutke sedi ispred kompa i slaže Rubikovu kocku, ne diraj ga :).

Oceni tekst

4
53 glasa
Ivan Kuzmanović Ivan Kuzmanović

Običan i opušten lik, technology freak. Čovek koji kad ode u šoping po odeću (ili bilo šta drugo), vrati se sa nekim tech gedžetom ili komponentom za PC. Bavi se web programiranjem, trenutno kao frontend developer, sa ciljem da se lagano prebaci u fullstack kad se poklope sve kockice u glavi. U slobodno vreme kad ne ispija piva sa društvom, čita knjige, tech blogove, gleda filmove, serije, šeta uz reku i, naravno, gejming do kasno u noć.

3 komentara

Aleksandra Aleksandra 23.12.2020.
0
0

Zaista lepo napisan tekst o backend-u i onim pametnim glavama bez kojih backend ne bi postojao.

Aleksandar Aleksandar 25.12.2020.
0
0

Solidan tekst, ali par stvari nije tacno, ili ja nisam dobro razumeo. Zasto bi od insfrastrukture zavislio da li se koristi OOP ili FP? Druga stvar je da se FP apsolutno ne koristi u data sciencu-u. Tu se gotovo uvek koristi Python, koji nema nikakve odlike funkcionlanih jezika.

Mira Mira 30.01.2022.
0
0

Samo da ostanu " zdravi " i dočekaju penziju !!!

Iz ove kategorije

Svi članci sa Bloga

Slični poslovi

Povezane kompanije po tagovima