U svijetu web developmenta postoji osnovna podjela na dva pravca razvoja: Front-end i Back-end. U ovom blog postu ćemo razmotriti koje tehnologije svaki pravac obuhvata, koje su odgovornosti programera na jednoj i na drugoj strani, kao i razlike između njih.
Napomena: Informacije o svim pojedinačnim tehnologijama možete pronaći u dijelu kursevi. Cilj ovog posta jeste da olakša polaznicima izbor između Front-end i Back-end pravca, i da im približi šta svaki od njih predstavlja. Znak / predstavlja "ili". Npr. React / Vue. Nije neophodno poznavati sve navedene tehnologije.
Front-end
Front-end (klijentska strana) se odnosi na sve što krajnji korisnik vidi na stranici i sa čim ima interakciju. Tu ubrajamo: layout, meni, slike, slajdere, fontove i sve ostalo što se prikazuje na stranici. Kako u savremenom dobu postoji veliki broj uređaja različitih dimenzija, posao Front-end developera jeste da prilagodi izgled stranice za sve uređaje kao i za različite operativne sisteme, pretraživače i sl. Korisnički interfejs se najčešće pravi na osnovu dizajna, a za najbolje korisničko iskustvo se koriste različite tehnologije koje ćemo nabrojati u nastavku teksta.
Tehnologije
Osnovne:
- HTML
- CSS
- JavaScript
Napredne:
- Bootstrap / Bulma
- Sass / Less
- React / Vue / Angular
Odgovornosti
- Korišćenje navedenih tehnologija za kreiranje web sajtova / web aplikacija
- Održavanje i poboljšavanje web sajtova
- Vođenje računa o prilagođenosti svim uređajima (Desktop računar, laptop, tablet, mobilni telefon)
- Saradnja sa Back-end developerima i web dizajnerima
- SEO principi
Ukoliko ste neko ko je više usmjeren na vizuelne stvari, izgled, animacije, onda je Front-end pravac najbolja opcija za vas. Većinu vremena ćete provoditi u razvoju sajtova/aplikacija, stilizovanju kroz CSS, pravljenju funkcionalnosti kroz JavaScript.
Back-end
Back-end (serverska strana) se odnosi na sve procese koji se dešavaju na serveru. Back-end softvera se sastoji od servera, aplikacije i baze podataka. Aktivnosti su usmjerene ka tome da se podaci mijenjaju, čuvaju i proslijeđuju na klijentsku stranu. Velika odgovornost postoji kada je u pitanju bezbjednost, pa se posebna pažnja poklanja sigurnosti podataka, back-up i sl.
Tehnologije
Osnovne:
- Python / Node.JS / PHP / C#
- MySQL / MongoDB
- Linux(Shell)
Napredne:
- Django / Flask
- Express / Nest
- Laravel / Symfony
- .NET
Odgovornosti
- Arhitektura sistema
- Analiza i obrada podataka
- Vođenje računa o bezbjednosti sistema
- Saradnja sa Front-end developerima i drugim članovima tima radi postizanja što boljeg korisničkog iskustva
- Skaliranje sistema
Ukoliko ste osoba koja je više usmjerena na operativne sisteme, baze podataka i radnje koje se "dešavaju u pozadini" onda bi Back-end bio logičan izbor za vas. Većinu vremena ćete provoditi u radu sa bazama podataka i serverima.