40 najpopularnijih pitanja i odgovora za intervju za web developere (2026.)

Priprema za intervju za poziciju web developera zahtijeva jasnoฤu o izazovima koji predstoje i uvidima koje poslodavci traลพe. Intervju za web developera oฤekivanja pomaลพu kandidatima da uฤinkovito iskaลพu relevantne snage i napreduju.
Ovo podruฤje nudi ogromne moguฤnosti jer se digitalni proizvodi ลกire i zahtijevaju praktiฤne primjene koje nagraฤuju tehniฤko iskustvo i struฤnost u domeni. Struฤnjaci koji rade u tom podruฤju primjenjuju vjeลกtine analize, tehniฤku struฤnost i ลกirok skup vjeลกtina kako bi rijeลกili uobiฤajene i napredne izazove, pomaลพuฤi...ping poฤetnici, iskusni inลพenjeri i voditelji timova ispunjavaju rastuฤa oฤekivanja industrije. ฤitaj viลกeโฆ
๐ Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za web developera
Najฤeลกฤa pitanja i odgovori za intervju za web developere
1) Objasnite koje su uloge HTML-a, CSS-a i JavaSkripte su u web razvoju - i kako se razlikuju po namjeni i opsegu.
HTML, CSS i JavaSkripte imaju fundamentalno razliฤite uloge u web razvoju, a svaka se bavi zasebnim slojem korisniฤkog iskustva i strukture aplikacije. HTML (HyperText Markup Language) pruลพa strukturnu osnovu: definira elemente na stranici (naslove, odlomke, slike, poveznice, obrasce itd.). Bez HTML-a nema semantiฤkog sadrลพaja ili pristupaฤne strukture - niลกta ลกto bi preglednik smisleno prikazao. CSS (Cascading Style Sheets) nalazi se na vrhu HTML-a i definira prezentaciju: stiliziranje, raspored, razmak, responzivnost, tipografiju, boje i cjelokupni vizualni izgled. JavaSkripta dodaje ponaลกanje i interaktivnost: rukovanje dogaฤajima (klikovi, unos), dinamiฤka aลพuriranja sadrลพaja (bez ponovnog uฤitavanja stranice), animacije, validacije obrazaca, asinkrono uฤitavanje podataka (npr. AJAX), manipulaciju DOM-om i joลก mnogo toga.
Kljuฤne razlike i opseg:
| sloj | Odgovornost | Primjer upotrebe |
|---|---|---|
| HTML | Struktura i semantika | Definiranje obrasca s <input>, <button>i <label> oznake |
| CSS | Prezentacija i izgled | Stiliziranje forme, pozicioniranje, responzivni izgled, boja i tipografija |
| JavaScript | Ponaลกanje, logika, interaktivnost | Validacija unosa u obrazac, slanje putem AJAX-a, dinamiฤki prikaz poruka o uspjehu/pogreลกci |
Zbog ove podjele briga, promjene u jednom sloju (stil, ponaลกanje, sadrลพaj) obiฤno ne zahtijevaju prepisivanje ostalih. Na primjer, moลพete redizajnirati stranicu iskljuฤivo aลพuriranjem CSS-a, bez diranja HTML-a; ili dodati validaciju na strani klijenta putem JS-a bez mijenjanja HTML strukture.
Dobar web programer mora razumjeti sva tri - kako bi stvorio stranice koje su semantiฤki ispravne, vizualno privlaฤne, responzivne, interaktivne i jednostavne za odrลพavanje.
2) Kako osigurati da je web stranica โresponzivnaโ i da se dobro ponaลกa na razliฤitim ureฤajima โ koje su tehnike i najbolje prakse ukljuฤene?
Osiguravanje responzivnosti web stranice znaฤi njezino dizajniranje tako da se glatko prikazuje i funkcionira na ureฤajima s razliฤitim veliฤinama zaslona, โโrezolucijama i orijentacijama (stolna raฤunala, tableti, telefoni). To zahtijeva ne samo promjenu veliฤine, veฤ i prilagodbu izgleda, navigacije, slika, pa ฤak i funkcionalnosti.
Kljuฤne strategije i najbolje prakse:
- Fluidne mreลพe i relativne jediniceUmjesto fiksnih ลกirina piksela, koristite postotne ลกirine,
em/remjedinice ili CSS grid/flexbox kako bi se izgled fluidno prilagoฤavao. - Medijski upitiKoristite CSS medijske upite (
@media) za prilagodbu stilova na temelju ลกirine zaslona, โโorijentacije, razluฤivosti i vrste ureฤaja. Na primjer, preuredite stupce u jedan stupac na uskim zaslonima, prilagodite veliฤinu fonta, sakrijte ili saลพmite navigacijske izbornike. - Fleksibilne slike i medijiKoristite CSS (npr.
max-width: 100%; height: auto) ili HTML atributi (srcset,sizes) kako bi se slike skalirale na odgovarajuฤi naฤin; opcionalno koristite razliฤite verzije slika za razliฤite rezolucije (responzivne slike). - Dizajn na prvom mjestu za mobilne ureฤajeZapoฤnite s dizajniranjem za mobilne ureฤaje (najmanje zaslone) i postupno poboljลกavajte za veฤe zaslone - osiguravajuฤi da osnovno iskustvo funkcionira na ograniฤenim ureฤajima, a zatim dodajte poboljลกanja za stolna raฤunala.
- Testiranje na razliฤitim ureฤajima i preglednicimaRuฤno testiranje (stvarni ureฤaji ili emulatori), alati za responzivno testiranje, testiranje na viลกe preglednika i viลกe operativnih sustava za otkrivanje problema s izgledom, performansama i kompatibilnoลกฤu.
- Optimizacije performansiOptimizirajte slike, uฤitajte ih odgoฤeno, minimizirajte resurse (CSS/JS), koristite uฤinkovit kod โ brzo vrijeme uฤitavanja je kljuฤno, posebno na mobilnim ureฤajima ili sporijim vezama.
- Pristupaฤno i prilagodljivo korisniฤko suฤeljeKoristite kontrole prilagoฤene dodiru; osigurajte da su veliฤine fonta, veliฤine gumba i polja za unos upotrebljive na malim zaslonima; odrลพavajte ฤitljivost i upotrebljivost.
Usvajanje ovih praksi osigurava da web-mjesto pruลพa dosljedno i korisniฤko iskustvo na svim platformama. Vodiฤi za intervjue posebno navode "responzivni dizajn" kao kljuฤnu kompetenciju za web developere.
3) Koje su neke uฤinkovite metode za optimizaciju vremena uฤitavanja i performansi web stranice - i zaลกto su vaลพne?
Optimizacija performansi je kljuฤna: brลพe vrijeme uฤitavanja dovodi do boljeg korisniฤkog iskustva, niลพih stopa napuลกtanja stranice, boljeg angaลพmana i poboljลกanog SEO-a. Nekoliko tehnika pomaลพe u postizanju ovoga:
Uobiฤajene metode optimizacije:
- Minimizirajte i kombinirajte resurseKomprimiraj CSS, JavaSkripta i HTML (uklonite razmake/komentare), kombinirajte viลกe CSS/JS datoteka kako biste smanjili HTTP zahtjeve.
- Koristite mreลพu za isporuku sadrลพaja (CDN)Posluลพujte statiฤke elemente (slike, CSS, JS) sa servera geografski bliลพih korisnicima - smanjuje latenciju.
- Komprimirajte slike i koristite odgovarajuฤe formateOptimizirajte slike (koristite komprimirane formate poput WebP-a, ispravite dimenzije), odgoฤeno uฤitavanje nekritiฤnih slika.
- Omoguฤite predmemoriju preglednikaKoristite HTTP zaglavlja za predmemoriranje kako ponovljeni posjetitelji ne bi ponovno preuzimali nepromijenjene resurse.
- Asinkrono uฤitavanje i odgaฤanje nekritiฤnih skriptiPrvo uฤitajte bitan sadrลพaj; odgodite ili asinkrono uฤitajte skripte koje nisu kljuฤne za poฤetno renderiranje.
- Optimizirajte isporuku CSS/JS-aUฤitajte kritiฤni CSS inline ili rano, odgodite nekritiฤni CSS; izbjegavajte resurse koji blokiraju renderiranje.
- Smanjite HTTP zahtjeve i koristite savjete za resurseKombinirajte datoteke, paลพljivo koristite fontove, koristite
preload/prefetch, mali resursi u liniji. - Implementirajte uฤinkovite odgovore na strani posluลพiteljaKoristite predmemoriranje, smanjite vrijeme odgovora posluลพitelja, omoguฤite GZIP/Brotli kompresiju, optimizirajte backend upite.
Zaลกto su performanse vaลพne:
- Poboljลกava korisniฤko iskustvo; spore stranice frustriraju korisnike, poveฤavajuฤi stopu napuลกtanja stranice.
- Na mobilnim ili vezama niske propusnosti, performanse su kljuฤne.
- Brลพe stranice obiฤno se bolje rangiraju u traลพilicama, ลกto utjeฤe na vidljivost.
- Smanjuje potroลกnju resursa (propusnost, podaci), ลกto koristi i korisnicima i posluลพiteljima.
Prilikom intervjua za poziciju web developera, ฤesto se oฤekuje da kandidat bude sposoban artikulirati i implementirati optimizacije performansi.
4) Kako osiguravate kompatibilnost meฤu preglednicima - i koje alate ili prakse koristite za rjeลกavanje razlika meฤu preglednicima?
Kompatibilnost s viลกe preglednika osigurava da se web stranica ispravno ponaลกa i izgleda dosljedno u razliฤitim web preglednicima (Chrome, Firefox, Safari, Edge itd.) i na razliฤitim ureฤajima i operativnim sustavima. Postizanje ovoga ukljuฤuje promiลกljenost u razvoju i sustavno testiranje.
Pristupi za osiguranje kompatibilnosti:
- Koristite web standarde i semantiฤki HTML/CSSDrลพite se standardiziranog HTML-a, CSS-a i JS-a umjesto da se oslanjate na trikove specifiฤne za preglednik.
- Koristite CSS resetiranje ili normalizaciju bibliotekaUblaลพavaju razlike u zadanim stilovima meฤu preglednicima.
- Prefiksi dobavljaฤa i zamjenske opcijeZa novije CSS znaฤajke koristite prefikse dobavljaฤa (npr.
-webkit-,-moz-) ili rezervne tehnike za podrลกku starijim preglednicima. - Progresivno poboljลกanje / graciozna degradacijaIzradite osnovnu funkcionalnu verziju koristeฤi ลกiroko podrลพane znaฤajke; zatim je poboljลกajte za preglednike koji podrลพavaju novije znaฤajke - osigurava osnovnu funkcionalnost svugdje.
- Polyfills i transpileriKoristite JS transpilere (npr. Babel) za pretvaranje modernog JS-a u verzije kompatibilne s prethodnim verzijama; koristite polyfillove za nedostajuฤe API-je.
- Temeljito testiranje na razliฤitim preglednicima i ureฤajimaKoristite automatizirane alate (npr. BrowserStack, platforme za testiranje viลกe preglednika) i ruฤno testiranje kako biste identificirali CSS/JS specifiฤnosti, probleme s izgledom i probleme s funkcionalnoลกฤu.
- Izbjegavajte oslanjanje na zastarjele ili eksperimentalne znaฤajkePreferirajte stabilne, ลกiroko podrลพane API-je ili znaฤajke.
U intervjuima za web uloge, demonstracija svijesti o problemima s viลกe preglednika, poznavanje praksi normalizacije i testiranja te objaลกnjavanje kako se nosite s nedosljednostima ฤesto su odluฤujuฤi faktori.
5) ล to je CSS Box Model โ objasnite njegove komponente i kako njegovo razumijevanje pomaลพe u dizajnu izgleda.
CSS Box Model je temeljni koncept koji opisuje kako se svaki HTML element prikazuje kao pravokutni "kutija". Razumijevanje modela kutije kljuฤno je za upravljanje rasporedom, razmakom, veliฤinom i poravnanjem na web stranicama.
Komponente modela kutije (iznutra prema van):
- Sadrลพaj: Stvarni sadrลพaj elementa (tekst, slike itd.).
- punjenjeRazmak izmeฤu sadrลพaja i obruba. Dodavanje ruba poveฤava prostor unutar okvira bez promjene vanjskog poloลพaja elementa.
- GranicaRub obavija padding i sadrลพaj. Doprinosi ukupnoj veliฤini okvira.
- MarลพaProstor izvan granice โ odvaja element od susjednih elemenata.
| margin | ___________ | border | | padding | | content | โพโพโพโพโพโพโพโพ
Zaลกto je to vaลพno za izgled:
- Kada odredite ลกirinu/visinu za element, padding, border i margina utjeฤu na konaฤnu veliฤinu prikaza - stoga dizajn mora uzeti u obzir ove vrijednosti kako bi se izbjeglo neoฤekivano prelijevanje ili neusklaฤenost.
- Razumijevanje box modela pomaลพe u kontroli razmaka izmeฤu elemenata (npr. saลพimanje margina, koriลกtenje margina u odnosu na padding).
- Omoguฤuje predvidljivu konstrukciju rasporeda (npr. centriranje elemenata, poravnavanje jedan pored drugog, stvaranje praznina).
- Pruลพa jasnoฤu pri izradi responzivnih ili fluidnih izgleda - posebno u kombinaciji s CSS grid/flexbox.
Buduฤi da mnogi vodiฤi za intervjue za web developere oฤekuju ovo znanje (posebno kada se raspravlja o rasporedu, CSS-u, responzivnom dizajnu), sposobnost jasnog artikuliranja box modela pokazuje razumijevanje osnova CSS-a.
6) Koje su kljuฤne razlike izmeฤu == i === u JavaSkripta โ i kada biste trebali koristiti jednu umjesto druge?
In Javaskripta, == i === su operatori usporedbe, ali se ponaลกaju drugaฤije s obzirom na provjeru tipova i prisilu. Razumijevanje njihovih razlika kljuฤno je za pisanje predvidljivog koda bez greลกaka.
==(trbuลกnjacitracjednakost)Usporeฤuje dvije vrijednosti radi jednakosti nakon ลกto izvrลกi prisilnu promjenu tipa ako je potrebno. To znaฤi prije usporedbe, JavaSkripta moลพe pretvoriti jedan ili oba operanda u zajedniฤki tip. To moลพe dovesti do neoฤekivanih rezultata "true"/"false" ako se tipovi razlikuju.===(stroga jednakost)Usporeฤuje obje vrijednosti i vrsta, bez prisile. Vraฤa vrijednost true samo ako su oba operanda istog tipa i imaju jednaku vrijednost.
Zaลกto je to vaลพno:
Koriลกtenje == ponekad moลพe dati iznenaฤujuฤe rezultate, npr.:
0 == '0' // true โ because '0' is coerced to number 0 0 === '0' // false โ types differ (number vs string) null == undefined // true null === undefined // false
Zbog takvih osobitosti, mnogi programeri - i standardi kodiranja - preferiraju === (stroga jednakost) kako bi se izbjegli bugovi uzrokovani nenamjernom prisilom. U scenarijima intervjua, pokazivanje razumijevanja ove razlike ukazuje na to da ste svjesni JS zamki.
7) Opiลกite kako biste optimizirali web aplikaciju za SEO (optimizaciju za traลพilice) i pristupaฤnost - koje ฤimbenike morate uzeti u obzir od samog poฤetka?
Optimizacija za SEO i pristupaฤnost zahtijeva dizajniranje i kodiranje imajuฤi na umu i ljudske korisnike i traลพilice. To nadilazi vizualni dizajn ili performanse; ukljuฤuje semantiฤku strukturu, ฤisto oznaฤavanje, korisniฤko iskustvo i arhitekturu web-mjesta.
Vaลพna razmatranja i prakse:
- Semantiฤki HTMLKoristite odgovarajuฤe HTML5 semantiฤke oznake (
<header>,<nav>,<main>,<article>,<footer>itd.) umjesto generiฤkog<div>omotaฤi โ poboljลกavaju ฤitljivost, SEO indeksiranje i kompatibilnost s pomoฤnom tehnologijom. - Pravilna struktura i hijerarhija naslova: Koristiti
<h1>-<h6>promiลกljeno; osigurajte logiฤan, ugnijeลพฤeni redoslijed naslova - kljuฤno i za SEO i za pristupaฤnost (ฤitaฤi zaslona, โโโโstruktura). - Pristupaฤni atributi: Ukljuฤiti
alttekst za slike, ARIA atributi ako su potrebni,labelpovezana sinputs, navigacija dostupna tipkovnicom, redoslijed fokusa, jasne kontrole obrasca. - Responzivan i mobilnim ureฤajima prilagoฤen dizajnDizajn usmjeren na mobilne ureฤaje, responzivni izgled, brzo uฤitavanje โ upotrebljivost na mobilnim ureฤajima utjeฤe na SEO rangiranje i pristupaฤnost korisnicima malih ekrana.
- Optimizacija performansiBrzo vrijeme uฤitavanja, optimizirani resursi, uฤinkovite skripte - brzina stranice utjeฤe na SEO rangiranje i korisniฤko iskustvo.
- ฤista struktura URL-a i metaoznakeSmisleni URL-ovi, meta oznake naslova/opisa, pravilna upotreba oznaka zaglavlja, strukturirani podaci (shema), mapa web-mjesta, kanonske oznake โ pomaลพe traลพilicama da ispravno indeksiraju.
- Progresivno poboljลกanje i podrลกka za rezervne opcijeOsigurajte dostupnost osnovnog sadrลพaja i funkcionalnosti ฤak i ako JS zakaลพe ili za pomoฤne tehnologije - ลกto je kljuฤno za pristupaฤnost i botove traลพilica.
- ฤitljivost i upotrebljivost sadrลพajaJasan sadrลพaj, dobar kontrast, ฤitljivi fontovi, semantiฤko oznaฤavanje - pomaลพe ljudskim korisnicima, ฤitaฤima zaslona i SEO botovima.
Ukljuฤivanjem ovih ฤimbenika u ลพivotni ciklus razvoja od samog poฤetka (a ne kao naknadnu misao), isporuฤujete web aplikaciju koja je funkcionalna, lako vidljiva i upotrebljiva za svu publiku - snaลพan signal zrelih razvojnih praksi. To je u skladu s modernim oฤekivanjima za web developere, a to nadilazi puki izgled ili interaktivnost.
8) Kako strukturirate i organizirate JavaSkriptni kod u srednje velikom do velikom web projektu kako bi bio odrลพiv, modularan i skalabilan?
Kako web aplikacije rastu u veliฤini i sloลพenosti, organiziranje JavaPromiลกljeno pisanje skriptnog koda postaje kljuฤno za odrลพavanje, ฤitljivost, skalabilnost i jednostavnost suradnje. Dobro strukturirana kodna baza smanjuje greลกke, omoguฤuje lakลกe refaktoriranje i podrลพava rast znaฤajki.
Preporuฤene prakse i struktura:
- Modularna arhitektura kodaRazbijte kod u module - svaki koji obraฤuje odreฤenu funkcionalnost (npr. dohvaฤanje podataka, manipulacija korisniฤkim suฤeljem, upravljanje stanjem, usluลพni programi). Koristite sustave modula poput ES6 modula (
import/export) ili pakete modula (Webpack, Rollup) za upravljanje ovisnostima. - Razdvajanje briga (SoC): Odvojite manipulaciju korisniฤkim suฤeljem, poslovnu logiku, rukovanje podacima i konfiguraciju. Na primjer, nemojte mijeลกati logiku manipulacije DOM-om duboko unutar koda za rukovanje podacima.
- Koristite uzorke i principe dizajnaPrimijenite obrasce poput MVC-a (Model-View-Controller), MVVM-a, observer-a, pub/sub-a prema potrebi za upravljanje sloลพenoลกฤu; za SPA-ove razmotrite okvire/biblioteke (React, Vue, Angular) ili principe dizajna koji potiฤu komponentizaciju.
- Odrลพavanje strukture mapa/datotekaOrganizirajte kod u logiฤku hijerarhiju direktorija (npr.
components/,services/,utils/,assets/,state/) i jasno imenujte datoteke kako biste odraลพavali njihovu odgovornost. - Upravljanje drลพavom i podjela drลพave u odnosu na neutralnostKoristite obrasce upravljanja stanjem ili biblioteke (ako je potrebno) za odvajanje stanja aplikacije od korisniฤkog suฤelja - korisno kada aplikacija raste, za predvidljiva aลพuriranja i lakลกe otklanjanje pogreลกaka.
- Standardi dokumentacije i kodiranjaOdrลพavajte dosljedan stil kodiranja, konvencije imenovanja, komentare i dokumentaciju za module i API-je โ pomaลพe timskoj suradnji i buduฤem odrลพavanju.
- Automatizirana izgradnja i grupiranjeKoristite alate za izgradnju (Webpack, Babel itd.), transpilirajte za kompatibilnost s preglednicima, minimizirajte i grupirajte kod, upravljajte ovisnostima - osigurava da se kod izvodi u razliฤitim okruลพenjima.
- Testiranje i kontrola verzijaPisati jediniฤne testove za module, koristiti kontrolu verzija (npr. Git) za track promjenama, osigurajte sigurno refaktoriranje - kljuฤno za dugoroฤno zdravlje projekta.
Primjenom ovih praksi od ranih faza ลพivotnog ciklusa projekta, programeri osiguravaju da, kako se projekt skalira, kodna baza ostane upravljiva, organizirana i prilagodljiva. Razgovori za viลกe web pozicije ฤesto istraลพuju ovu vrstu arhitektonskog razmiลกljanja.
9) Koji su neki uobiฤajeni sigurnosni problemi u web razvoju - i kako ih ublaลพavate prilikom izrade web aplikacije?
Sigurnost je kljuฤni aspekt web razvoja; ranjivosti mogu dovesti do krลกenja podataka, neovlaลกtenog pristupa ili naruลกavanja integriteta. Kao web programer, mora se proaktivno pozabaviti sigurnoลกฤu na viลกe slojeva - frontendu, backendu i komunikaciji.
Uobiฤajeni sigurnosni problemi i strategije ublaลพavanja:
- Koristite HTTPS / sigurnu komunikacijuOsigurajte da su podaci izmeฤu klijenta i posluลพitelja ลกifrirani; izbjegavajte transmitslanje osjetljivih informacija putem obiฤnog HTTP-a.
- Validacija i sanitizacija unosaValidirajte i dezinficirajte sve korisniฤke unose kako biste sprijeฤili napade poput SQL injekcije, cross-site scriptinga (XSS) i naredbenog injekcije. Koristite parametrizirane upite i odgovarajuฤe izbjegavajte izlaz.
- Sprjeฤavanje meฤusjetnog skriptiranja (XSS)Izbjegavajte ili kodirajte korisniฤki generirani sadrลพaj prije prikazivanja u HTML-u; koristite zaglavlja Pravila sigurnosti sadrลพaja (CSP) za ograniฤavanje dopuลกtenih izvora sadrลพaja.
- Sprjeฤavanje CSRF-a (krivotvorenja zahtjeva na viลกe web-mjesta)Implementirajte CSRF tokene za zahtjeve za promjenu stanja, koristite samo HTTP i sigurne kolaฤiฤe, implementirajte pravilno rukovanje sesijama.
- Sigurna autentifikacija i rukovanje lozinkamaHashirajte (i solite) lozinke prije pohranjivanja; provodite pravila o jakim lozinkama; izbjegavajte pohranjivanje osjetljivih podataka u obiฤnom tekstu.
- Koristite sigurne, aลพurne biblioteke i okvireOdrลพavajte ovisnosti aลพurnima; izbjegavajte poznate ranjivosti; redovito primjenjivajte sigurnosne zakrpe.
- Pravilna autorizacija i kontrola pristupaOsigurajte odgovarajuฤu kontrolu pristupa temeljenu na ulogama, izbjegavajte izlaganje osjetljivih krajnjih toฤaka/podataka neovlaลกtenim korisnicima.
- Zaลกtita podataka i usklaฤenost s privatnoลกฤuSanitizirajte podatke, ลกifrirajte osjetljive podatke u mirovanju/u prijenosu, pridrลพavajte se propisa o privatnosti, izbjegavajte otkrivanje nepotrebnih podataka.
- Rjeลกavanje i evidentiranje pogreลกaka bez curenja podatakaNe otkrivajte osjetljive informacije u porukama o pogreลกkama. Sigurno zabiljeลพite pogreลกke bez otkrivanja korisniฤkih podataka.
Pokazivanje svijesti o ovim problemima - i objaลกnjavanje jasnih strategija ublaลพavanja - ukazuje na zrelost i odgovornost web programera. Popisi pitanja za intervju za web programere obiฤno oฤekuju takvo razumijevanje.
10) Kada pokreฤete novi web projekt od nule, kako planirate svoj tijek rada - od poฤetnog postavljanja do implementacije - uzimajuฤi u obzir odrลพavanje, skalabilnost, performanse i suradnju?
Pokretanje web projekta od nule zahtijeva strukturiran tijek rada koji uravnoteลพuje planiranje, postavljanje, odrลพavanje, suradnju i dugoroฤnu skalabilnost. Promiลกljen pristup od samog poฤetka smanjuje tehniฤki dug i pojednostavljuje buduฤi razvoj.
Tipiฤan plan tijeka rada:
- Analiza zahtjeva i planiranje arhitekture โ razumjeti ลกto aplikacija mora raditi: kljuฤne znaฤajke, protok podataka, korisniฤke uloge, potrebe za performansama i sigurnoลกฤu, dugoroฤnu skalabilnost.
- Odaberite tehnoloลกki paket i alate โ odluฤiti o front-endu (vanilla JS, framework/biblioteka), backendu (ako je primjenjivo), bazi podataka, alatima za izgradnju, kontroli verzija (npr. Git), upraviteljima paketa, CI/CD cjevovodima, testnim okvirima.
- Postavljanje razvojnog okruลพenja i strukture projekta โ inicijaliziranje kontrole verzija, stvaranje strukture direktorija (
src/,components/,assets/,styles/itd.), konfigurirajte alate za izgradnju, lintere, formatiranje, varijable okruลพenja. - Dizajn korisniฤkog suฤelja/ux iskustva i modela podataka โ wireframeovi/nacrti za korisniฤko suฤelje, dizajn baze podataka/sheme ako je primjenjivo, plan za responzivni/mobilni izgled, pristupaฤnost, navigaciju, UX tokove.
- Razvijajte osnovnu funkcionalnost u koracima โ slijedite prakse modularnog kodiranja, piลกite male komponente ili module, koristite grane znaฤajki za svaki zadatak, dokumentirajte kod.
- Implementirajte testiranje, pregled koda i prakse kontrole verzija โ jediniฤno testiranje, integracijski testovi gdje je potrebno, meฤusobni pregledi koda, poruke o potvrฤivanju (commit), strategija grananja, zahtjevi za spajanje/povlaฤenje.
- Optimizirajte za performanse, sigurnost, SEO, pristupaฤnost โ optimizacija slika, grupiranje resursa, minifikacija, sigurna komunikacija (HTTPS), atributi pristupaฤnosti, semantiฤki HTML, SEO prilagoฤeno oznaฤavanje.
- Implementirajte i konfigurirajte produkcijsko okruลพenje โ konfiguriranje posluลพitelja, baze podataka, varijabli okruลพenja, SSL-a, CDN-a, predmemorije, praฤenja, zapisivanja pogreลกaka.
- Kontinuirana integracija / kontinuirano rasporeฤivanje (CI/CD) โ automatizirati cjevovode izgradnje, testiranja i implementacije radi dosljednosti i brzih iteracija.
- Odrลพavanje, aลพuriranja i dokumentacija โ dokumentacija koda, aลพuriranje ovisnosti, sigurnosne zakrpe, praฤenje performansi i pogreลกaka, prilagoฤavanje dizajna novim zahtjevima, komunikacija putem dokumentacije ili povijesti verzija za suradnike.
Ovaj cjeloviti tijek rada odraลพava stvarna oฤekivanja od timova za web razvoj. Anketari ฤesto pitaju kandidate kako holistiฤki pristupaju izgradnji projekta, kako bi procijenili ne samo vjeลกtine kodiranja veฤ i planiranje, arhitekturu, odrลพavanje i spremnost na suradnju.
11) Koji su razliฤiti naฤini upravljanja stanjem u modernim web aplikacijama i po ฤemu se razlikuju?
Upravljanje stanjem odnosi se na naฤin na koji aplikacija pohranjuje, aลพurira i dijeli podatke (stanje) izmeฤu komponenti ili stranica. Uฤinkovito upravljanje stanjem postaje sve sloลพenije kako aplikacije rastu.
Razliฤiti pristupi upravljanju drลพavom:
| naฤin | Description | Primjer upotrebe |
|---|---|---|
| Stanje lokalne komponente | Stanje pohranjeno unutar jedne komponente pomoฤu Reacta useState() ili Vue-ov data. |
Male promjene korisniฤkog suฤelja poput prekidaฤa, modalnih prozora ili unosa u obrasce. |
| Buลกenje rekvizita | Prosljeฤivanje stanja/podataka putem propsa kroz hijerarhiju komponenti. | Jednostavno prosljeฤivanje podataka roditelj-dijete, ali postaje nezgrapno u velikim aplikacijama. |
| Kontekstni API | Pruลพa globalni naฤin dijeljenja stanja izmeฤu viลกe komponenti bez buลกenja propelera. | Tematiranje, autentifikacija korisnika, postavke jezika. |
| Redux / MobX / Stanje | Vanjske biblioteke koje nude predvidljivo globalno upravljanje stanjem putem pohrane, akcija i reducera. | Veliki SPA-ovi kojima je potrebno dosljedno aลพuriranje stanja i otklanjanje pogreลกaka. |
| Upravljanje stanjem posluลพitelja | SyncStanje korisniฤkog suฤelja s podacima posluลพitelja pomoฤu API-ja (React Query, SWR). | Aplikacije koje zahtijevaju puno podataka i trebaju kontrolu nad predmemorijom, sinkronizacijom i ponovnim uฤitavanjem. |
| Stanje URL-a/usmjerivaฤa | Koristi URL parametre ili nizove upita za upravljanje stanjem navigacije. | Paginacija, filtriranje ili upiti za pretraลพivanje. |
Kljuฤno za poneti: Koristite jednostavno lokalno stanje gdje god je to moguฤe i usvojite globalna ili rjeลกenja stanja posluลพitelja kao skale sloลพenosti. Pretjerano rano upravljanje stanjem ฤesto dodaje nepotrebne troลกkove.
12) Objasnite razliku izmeฤu renderiranja na strani klijenta (CSR) i renderiranja na strani posluลพitelja (SSR). Koje su njihove prednosti i nedostaci?
Strategija renderiranja utjeฤe na performanse, SEO i korisniฤko iskustvo.
Renderiranje na strani klijenta (CSR):
CSR prikazuje sadrลพaj u pregledniku pomoฤu JavaSkripta nakon poฤetnog uฤitavanja stranice. Okviri poput Reacta, Vuea i Angulara prvenstveno koriste CSR.
Prednosti:
- Brza naknadna navigacija (nakon poฤetnog uฤitavanja).
- Smanjeno optereฤenje posluลพitelja (dohvaฤaju se samo JSON podaci).
- Izvrsno za dinamiฤne primjene i SPA centre.
Nedostaci:
- Sporije prvo iscrtavanje sadrลพaja (prazan HTML prije pokretanja JS-a).
- Loลก SEO ako se ne rijeลกi predrenderiranjem.
Renderiranje na strani posluลพitelja (SSR):
SSR renderira HTML na posluลพitelju prije slanja u preglednik. Primjeri: Next.js (React), Nuxt.js (Vue).
Prednosti:
- Brลพe poฤetno uฤitavanje (poslan je potpuno renderirani HTML).
- Bolji SEO jer pretraลพivaฤi vide cijele stranice.
- Poboljลกana percipirana izvedba.
Nedostaci:
- Sloลพenije postavljanje servera.
- Veฤe optereฤenje servera.
- Sporiji prijelazi stranica bez hidratacije.
| Faktor | DOP | SSR |
|---|---|---|
| Poฤetna brzina uฤitavanja | sporiji | Brลพe |
| SEO | Slabo (potrebno je prethodno renderiranje) | jak |
| Optereฤenje posluลพitelja | Nizak | visok |
| Sloลพenost razvoja | Spustite | Viลกi |
| Najbolje za | SPA-ovi, nadzorne ploฤe | Blogovi, e-trgovina, marketinลกke stranice |
Moderni okviri (Next.js, Remix, SvelteKit) spajaju oboje putem Hibridno renderiranje, odabirom SSR-a ili CSR-a po stranici.
13) ล to je REST API i po ฤemu se razlikuje od GraphQL-a?
REST (prijenos reprezentativnog stanja) je arhitektonski stil u kojem API-ji otkrivaju krajnje toฤke koje predstavljaju resurse. Svaka krajnja toฤka odgovara operaciji na resursu (GET, POST, PUT, DELETE).
GraphqlS druge strane, je jezik upita za API-je koji klijentima omoguฤuje da zatraลพe toฤno one podatke koji su im potrebni s jedne krajnje toฤke.
| svojstvo | REST API | Graphql |
|---|---|---|
| Struktura | Viลกe krajnjih toฤaka (npr. /users, /users/:id) |
Jedna krajnja toฤka (/graphql) |
| Dohvaฤanje podataka | Fiksni odgovor po krajnjoj toฤki | Klijent definira oblik podataka |
| Prekomjerno dohvaฤanje / Nedovoljno dohvaฤanje | Zajedniฤki | eliminiran |
| caching | Lakลกe (HTTP keลกiranje) | Kompleksnije |
| Krivulja ucenja | jednostavnije | Viลกi |
| Upotrijebite sluฤaj | Standardni CRUD API-ji | Sloลพeni, meฤusobno povezani upiti podataka |
Primjer:
Za dobivanje korisnika i njegovih objava:
- ODMOR:
/users/1i/users/1/posts(dva poziva) - GraphQL: jedan upit
{ user(id: 1) { name posts { title } } }
Saลพetak: Koristite REST za jednostavne CRUD-ove ili mikroservise; GraphQL odgovara bogatim klijentskim aplikacijama kojima su potrebni fleksibilni upiti.
14) Kako se rjeลกavaju asinhrone operacije u JavaSkripta?
JavaSkripta izvrลกava kod sinkrono prema zadanim postavkama, ali web aplikacije ฤesto zahtijevaju asinkrone operacije (dohvaฤanje podataka, timeri, dogaฤaji). Uฤinkovito rukovanje njima osigurava nesmetan rad bez blokiranja.
Uobiฤajeni asinhroni obrasci:
- Povratni pozivi:
Najstarija metoda. Funkcija se prosljeฤuje na izvrลกenje nakon ลกto se zavrลกi neka druga.getData(url, (response) => console.log(response));
โ ๏ธ Vodi do
callback hellako je duboko ugnijeลพฤeno. - obeฤanja:
Osigurajte ฤiลกฤu, ulanฤanu sintaksu za asinkrone rezultate.fetch(url) .then(res => res.json()) .then(data => console.log(data)) .catch(err => console.error(err));
- Asinkrono/ฤekanje:
Uvedeno u ES2017, ฤini da asinkroni kod izgleda sinkrono.async function fetchData() { try { const res = await fetch(url); const data = await res.json(); console.log(data); } catch (e) { console.error(e); } } - Promise.all / race / any:
Uฤinkovito upravljajte viลกe istovremenih operacija.
Razumijevanje asinkronog ponaลกanja, petlje dogaฤaja i mikrozadataka kljuฤno je za web developere orijentirane na performanse.
15) ล to su web komponente i zaลกto su vaลพne?
Web komponente su prilagoฤeni elementi za viลกekratnu upotrebu izgraฤeni koriลกtenjem standardnih web tehnologija (HTML, CSS, JS) - bez oslanjanja na frameworkove.
Oni saฤinjavaju tri glavne tehnologije:
- Prilagoฤeni elementi: Definiraj nove HTML oznake (
custom-element). - Sjeni DOM: Enkapsulira stilove i oznake.
- HTML predloลกci: Unaprijed definirane strukture koje se mogu ponovno koristiti.
Prednosti:
- Ponovna upotreba UI komponenti neovisna o okviru.
- Kapsulacija stila โ sprjeฤava curenje CSS-a.
- Potiฤe modularni, odrลพivi kod.
Primjer:
class MyCard extends HTMLElement {
connectedCallback() {
this.innerHTML = `<div class="card">${this.getAttribute('title')}</div>`;
}
}
customElements.define('my-card', MyCard);
Web komponente izvorno podrลพavaju preglednici i sve se viลกe koriste u poslovnim aplikacijama za interoperabilnost izmeฤu razliฤitih okvira.
16) Objasnite ลพivotni ciklus web stranice od zahtjeva do prikaza.
Razumijevanje ลพivotni ciklus web stranice pomaลพe u optimizaciji performansi i otklanjanju pogreลกaka pri uฤitavanju.
Faze ลพivotnog ciklusa:
- DNS pretraga: Preglednik pretvara naziv domene u IP adresu.
- TCP veza i SSL rukovanje: Uspostavlja sigurnu vezu.
- Poslan HTTP zahtjev: Preglednik zahtijeva HTML od posluลพitelja.
- Odgovor posluลพitelja: Vraฤa HTML (i reference na CSS, JS, slike).
- HTML parsiranje: Preglednik konstruira DOM stablo.
- CSS parsiranje: Stvara CSSOM (CSS objektni model).
- JavaIzvrลกenje skripte: DOM i CSSOM kombinirani โ Renderiraj stablo stvorio.
- Izgled: Preglednik izraฤunava poloลพaje/veliฤine elemenata.
- Slikanje i komponiranje: Preglednik crta piksele na ekranu.
Moguฤnosti optimizacije:
- Minimizirajte blokirajuฤe skripte.
- Ugraฤeni kritiฤni CSS.
- Koristite keลกiranje i CDN-ove.
- Odgodite nekritiฤnu imovinu.
Poznavanje ovog slijeda pomaลพe u dijagnosticiranju "zaลกto mi je stranica spora?" - omiljenog pitanja u intervjuu.
17) Koja je razlika izmeฤu var, let i const u JavaSkripta?
| Rijeฤ | Djelokrug | Preraspodjela | Dizanje | Vremenska mrtva zona |
|---|---|---|---|---|
var |
Funkcijski opseg | Da | Podignuto, inicijalizirano kao undefined |
Ne |
let |
Blok-opseg | Da | Podignuto, nije inicijalizirano | Da |
const |
Blok-opseg | Ne | Podignuto, nije inicijalizirano | Da |
Kljuฤne toฤke:
- preferiraju
letza varijable koje se mijenjaju,constza konstante. - Izbjeฤi
varโ njegov opseg funkcija i podizanje uzrokuju greลกke. - Primjer:
console.log(a); // undefined (hoisted var) var a = 5; console.log(b); // ReferenceError let b = 10;
Razumijevanje ovih razlika pokazuje teฤnost u modernom JS-u.
18) ล to su servisni radnici i kako poboljลกavaju progresivne web aplikacije (PWA)?
Servisni workeri su skripte koje se izvode u pozadini, odvojeno od glavne stranice, omoguฤujuฤi offline funkcionalnost, predmemoriranje i sinkronizaciju u pozadini - ลกto PWA-ove ฤini pouzdanima i brzima.
moguฤnosti:
- Izvanmreลพno keลกiranje: Uฤitaj resurse iz predmemorije kada je izvan mreลพe.
- Push obavijesti: Primajte pozadinske poruke.
- Sinkronizacija u pozadini: Ponovite zahtjeve kada se mreลพa vrati.
- Zahtjevi za presretanje mreลพe: Inteligentno mijenjajte, pohranjujte u predmemoriju ili dohvaฤajte resurse.
Primjer upotrebe:
self.addEventListener('fetch', event => {
event.respondWith(
caches.match(event.request)
.then(resp => resp || fetch(event.request))
);
});
Prednosti:
- Trenutno uฤitavanje stranice.
- Upotrebljivost izvan mreลพe.
- Smanjeno optereฤenje servera.
- Poboljลกano korisniฤko iskustvo i ponovni angaลพman.
PWA-ovi koji koriste Service Workere mogu konkurirati iskustvima nativnih mobilnih aplikacija - ลกto je ฤesto tema rasprave u modernim web intervjuima.
19) Kako kontrola verzija (Git) poboljลกava suradnju u web razvoju?
Kontrola verzija kao ลกto je iฤi tracpromjene koda u ks, omoguฤujuฤi viลกe programera da sigurno suraฤuju.
Osnovne prednosti:
- Povijest i vraฤanje na prethodno stanje: Revvratite se na prethodne verzije ako je potrebno.
- Grananje i spajanje: Paralelni razvoj znaฤajki bez konflikata.
- suradnja: Viลกe suradnika moลพe raditi na istom projektu.
- Code recenzije: Zahtjevi za povlaฤenjem i potvrde pomaลพu u odrลพavanju kvalitete.
- Automatizacija implementacije: Integrirano s CI/CD cjevovodima za izdanja.
Uobiฤajeni Gitov tijek rada:
- Kloniraj repozitorij.
- Stvorite novu granu:
git checkout -b feature/login. - Potvrdi promjene.
- Zahtjev za push i open pull.
- Code pregled โ spoji u
main.
Poznavanje Gita i strategija grananja (Git Flow, trunk-based) je kljuฤno za timski rad u bilo kojoj ulozi web developera.
20) Koje su prednosti i nedostaci koriลกtenja frontend frameworka poput Reacta, Angulara ili Vuea?
| Okvir | Prednosti | Nedostaci |
|---|---|---|
| Reagovati | Arhitektura temeljena na komponentama, virtualni DOM, veliki ekosustav. | Zahtijeva dodatne biblioteke za usmjeravanje/stanje; strma krivulja uฤenja za poฤetnike. |
| Kutni | Potpuno opremljen (usmjeravanje, DI, obrasci), snaลพan TypeScript Podrลกka. | Preopลกirno, tvrdoglavo, preteลกko za male aplikacije. |
| Vue | Lagano, jednostavna krivulja uฤenja, dvosmjerno vezanje. | Manji ekosustav; problemi skalabilnosti za velike aplikacije. |
Opฤe prednosti:
- Code ponovna upotreba putem komponenti.
- Poboljลกane performanse s virtualnim DOM-om ili optimiziranim otkrivanjem promjena.
- Lakลกe upravljanje stanjem i modularizacija.
- Aktivna zajednica i podrลกka.
Nedostaci:
- Veฤe poฤetne veliฤine paketa.
- Sloลพenost izgradnje (alati, konfiguracija).
- ฤesta aลพuriranja koja zahtijevaju odrลพavanje.
Anketari oฤekuju da programeri ne samo koriste, veฤ i razumiju kada not koristiti okvir.
21) Kako moลพete poboljลกati performanse web stranice tehnikama front-end optimizacije?
Optimizacija front-enda poboljลกava uฤinkovitost uฤitavanja, prikazivanja i izvrลกavanja sadrลพaja u pregledniku. Programeri moraju identificirati uska grla koja utjeฤu na brzinu, interaktivnost ili vizualnu stabilnost.
Kljuฤne strategije optimizacije ukljuฤuju:
- Code Umanjivanje: Uklonite nepotrebne znakove i razmake iz HTML-a, CSS-a, JS-a.
- Vezivanje u snopove i tresenje drveฤa: Kombinirajte datoteke kako biste smanjili HTTP zahtjeve; uklonite neiskoriลกteni kod (eliminacija mrtvog koda).
- Lijeno uฤitavanje: Uฤitajte slike, videozapise i skripte samo kada je potrebno.
- Optimizacija slike: Koristite moderne formate (WebP, AVIF), responzivne veliฤine (
srcset) i kompresija. - Preduฤitavanje i preddohvaฤanje: Dajte prioritet kritiฤnim resursima (
<link rel="preload">). - Optimizacija kritiฤnog puta renderiranja: Ugradite kritiฤni CSS, odgodite nekritiฤni JS.
- Strategije predmemoriranja: Primijenite predmemoriranje preglednika i CDN-a; koristite Service Workere za offline sadrลพaj.
- Smanjite preoblikovanja/ponovne boje: Izbjegavajte grupne manipulacije DOM-om.
Alati za izvedbu:
- Google Lighthouse, WebPageTest, GTmetrix za revizije.
- Chrome DevTools za profiliranje tijekom izvoฤenja.
Rezultat: Brลพi LCP (najveฤe iscrtavanje sadrลพaja), bolji Core Web Vitals i viลกi SEO rang.
22) ล to je CORS i kako se s njim nosite u web razvoju?
CORS (Dijeljenje resursa izmeฤu izvora) je sigurnosni mehanizam preglednika koji kontrolira kako web stranice zahtijevaju resurse s razliฤitih domena.
Prema zadanim postavkama, preglednici primjenjuju Politika istog porijekla, ลกto blokira skripte od dohvaฤanja resursa iz drugog izvora.
Primjer:
- Lokacija A (
example.com) pokuลกava dohvatiti podatke s web-mjesta B (api.other.com) โ blokirano osim ako to ne dopusti posluลพitelj Stranice B.
Rjeลกenje:
Konfigurirajte CORS zaglavlja na posluลพitelju:
Access-Control-Allow-Origin: https://example.com Access-Control-Allow-Methods: GET, POST Access-Control-Allow-Headers: Content-Type
Kljuฤne toฤke:
- Koristiti
"*"samo za javne API-je. - Koristiti zahtjevi za pregled leta (OPCIJE) za sloลพene zahtjeve.
- Za vjerodajnice:
Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: https://trusted.com
U Node.js-u (Express):
const cors = require('cors');
app.use(cors({ origin: 'https://example.com', credentials: true }));
Ispravno rukovanje CORS-om osigurava sigurne, interoperabilne API-je - ลกto je ฤesto praktiฤno pitanje.
23) Koja je razlika izmeฤu sinkronog i asinkronog programiranja i zaลกto se asinkrono programiranje preferira u web aplikacijama?
Synckroniฤni kod izvrลกava se sekvencijalno - jedna operacija odjednom. Ako jedan zadatak traje predugo, sve ostalo ฤeka (blokira).
Asinkroni kod izvrลกava zadatke koji ne blokiraju, dopuลกtajuฤi drugim operacijama da nastave dok ฤekaju (npr. mreลพni pozivi).
Primjer:
| Tip | Description | Primjer |
|---|---|---|
| Synchronozan | Zadaci izvrลกavani sekvencijalno. | alert(fetchData()) ฤeka da se dohvaฤanje zavrลกi. |
| asinhron | Zadaci se izvrลกavaju istovremeno. | fetch().then(...); console.log('Next line runs'); |
Zaลกto je asinkronost vaลพna:
- Sprjeฤava zamrzavanje korisniฤkog suฤelja.
- Poboljลกava performanse u aplikacijama s puno ulazno/izlaznih operacija.
- Omoguฤuje skalabilnu obradu viลกe zahtjeva.
Moderna JS upotreba Obeฤanja, asinkroni/ฤekaji petlje dogaฤaja za uฤinkovito upravljanje asinkronim tokom. Asinkrona arhitektura je kljuฤna za API-je i SPA-ove.
24) ล to su jednostraniฤne aplikacije (SPA) i koje su njihove prednosti i nedostaci?
SPA-ovi uฤitavaju jednu HTML stranicu i dinamiฤki aลพuriraju sadrลพaj pomoฤu JavaSkriptiraj dok korisnici komuniciraju - bez ponovnog uฤitavanja cijele stranice.
Prednosti:
- Besprijekorno korisniฤko iskustvo (brza navigacija).
- Uฤinkovito koriลกtenje resursa (djelomiฤna aลพuriranja).
- Jednostavno stvaranje dinamiฤkih suฤelja (React, Vue, Angular).
- Viลกekratno upotrebljive komponente i usmjeravanje na prednjem kraju.
Nedostaci:
- Poฤetno optereฤenje je veฤe (u paketu JS).
- SEO izazovi osim ako se ne koristi SSR/predrenderiranje.
- Povijest preglednika i rukovanje dubokim vezama zahtijevaju biblioteke usmjeravanja.
- Curenje memorije moguฤe je ako se stanjem ne upravlja ispravno.
| Faktor | SPA | MPA (aplikacija s viลกe stranica) |
|---|---|---|
| navigacija | Na strani klijenta (brzo) | Ponovno uฤitavanje posluลพitelja (sporo) |
| SEO | Potrebno je SSR/predrenderiranje | Prilagoฤeno domaฤim korisnicima |
| Izvoฤenje | Brzo nakon uฤitavanja | Sporije tranzicije |
| Sloลพenost | Visoka (stanje, usmjeravanje) | jednostavnije |
SPA-ovi dominiraju modernim web razvojem, ali moraju biti paลพljivo optimizirani za performanse i SEO.
25) Kako osiguravate osjetljive podatke tijekom prijenosa i pohrane u web aplikacijama?
Web aplikacije obraฤuju povjerljive podatke poput vjerodajnica, tokena i osobnih informacija. Sigurnost mora pokrivati u tranzitu i u mirovanju podatke.
Za vrijeme Transmission:
- Koristite HTTPS s TLS enkripcijom.
- Primijenite HSTS (HTTP Strict Transport Security).
- Izbjegavajte slanje osjetljivih podataka u URL-ovima ili GET parametrima.
- Koristite sigurne kolaฤiฤe (
HttpOnly,Secure,SameSite). - Sigurno koristite JWT ili OAuth2 tokene.
Tijekom skladiลกtenja:
- Koriลกtenje hash lozinki
bcryptorArgon2. - ล ifrirajte osjetljiva polja (npr. AES-256).
- Nikad ne zapisujte vjerodajnice u obiฤnom tekstu.
- Primijenite princip najmanjih privilegija pri pristupu bazi podataka.
Primjer (upravljanje lozinkama u Node.js):
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash(password, 12);
Rezultat: Poveฤana povjerljivost, smanjeni rizik od krลกenja i usklaฤenost s najboljim praksama GDPR-a i OWASP-a.
26) ล to je kontinuirana integracija i kontinuirano rasporeฤivanje (CI/CD) i zaลกto su vaลพni?
CI/CD automatizira izgradnju, testiranje i implementaciju koda โ poboljลกavajuฤi brzinu razvoja i pouzdanost.
- Kontinuirana integracija (CI):
Programeri ฤesto spajaju kod u zajedniฤki repozitorij, pokreฤuฤi automatizirane izgradnje i testove. - Kontinuirano rasporeฤivanje (CD):
Automatski implementira testirane verzije u pripravnu ili produkcijsku verziju.
Prednosti:
- Rano otkrivanje greลกaka putem automatiziranih testova.
- Dosljedna, pouzdana izdanja.
- Smanjena ljudska pogreลกka.
- Brลพa iteracija i petlje povratnih informacija.
Primjeri CI/CD alata:
Akcije na GitHubu, GitLab CI, Jenkins, CircleCI, Azure DevOps.
Primjer tijeka rada:
- Programer ลกalje kod na granu.
- CI cjevovod pokreฤe testove โ gradi โ generira artefakte.
- CD cjevovod se rasporeฤuje u produkciju nakon odobrenja.
Moderni web timovi oslanjaju se na CI/CD za uฤinkovito usklaฤivanje DevOpsa.
27) ล to su WebSockets i kako se razlikuju od HTTP-a?
WebSockets omoguฤiti potpuno dupleksnu, trajnu vezu izmeฤu klijenta i posluลพitelja โ omoguฤujuฤi dvosmjernu komunikaciju u stvarnom vremenu.
HTTP temelji se na zahtjevima/odgovorima i nema stanje - svaka interakcija je nova.
| svojstvo | HTTP | WebSocket |
|---|---|---|
| Vrsta veze | Jednosmjerno, kratkotrajno | Dvosmjerno, uporno |
| komunikacija | Klijent โ Posluลพitelj | Oba smjera |
| Dometnut | Prepuno zaglavlja | Lagano nakon rukovanja |
| Koristite sluฤaj | REST API-ji, statiฤki sadrลพaj | Chat, aลพuriranja uลพivo, igre za viลกe igraฤa |
Primjer (na strani klijenta):
const socket = new WebSocket('wss://server.com');
socket.onmessage = (msg) => console.log(msg.data);
Primjeri sluฤajeva upotrebe:
- Nadzorne ploฤe u stvarnom vremenu.
- Suradniฤko ureฤivanje.
- Tickeri cijena dionica.
WebSockets smanjuju latenciju i poboljลกavaju interaktivnost - omiljeno napredno pitanje.
28) Kako dizajnirati skalabilnu arhitekturu web aplikacije?
Skalabilnost osigurava da web aplikacija moลพe podnijeti poveฤani promet, podatke i sloลพenost bez degradacije.
Scalable ArchiPrincipi teksture:
- Odvajanje koncerna: Podijelite slojeve frontenda, backenda i baze podataka.
- Balansiranje optereฤenja: Distribuirajte zahtjeve izmeฤu posluลพitelja pomoฤu uravnoteลพivaฤa optereฤenja.
- Slojevi predmemorije: CDN za statiฤke resurse; Redis/Memcached za dinamiฤko keลกiranje.
- Optimizacija baze podataka: Koristite indeksiranje, particioniranje i replikaciju.
- Microservices Architekstura: Razbijte monolite na neovisne usluge.
- Horizontalno skaliranje: Dodajte viลกe instanci umjesto poveฤanja specifikacija posluลพitelja.
- Asinkrona obrada: Koristite redove ฤekanja (RabbitMQ, Kafka) za pozadinske zadatke.
- Praฤenje i biljeลพenje: Alati poput Prometheusa, Grafane, ELK Stacka.
Primjer ArchiTektura Tok:
Client โ Load Balancer โ Web Servers โ API Layer โ Database
โณ Cache โณ Message Queue โณ CDN
To pokazuje razmiลกljanje na razini sustava - ลกto se oฤekuje za razgovore za posao viลกeg razvojnog inลพenjera.
29) Koje su neke metode za testiranje web aplikacija radi osiguranja kvalitete?
Testiranje osigurava pouzdanost, odrลพivost i funkcionalnost.
Vrste testiranja:
| Tip | Description | Primjeri alata |
|---|---|---|
| Ispitivanje jedinice | Testira pojedinaฤne komponente/funkcije. | ล ala, Moka |
| Ispitivanje integracije | Testovi kombiniranih modula. | Cypress, Dramski pisac |
| End-to-end (E2E) | Simulira korisniฤke tokove. | Selenium, Lutkar |
| Ispitivanje performansi | Provjerava optereฤenje i naprezanje. | JMeter, Svjetionik |
| Ispitivanje sigurnosti | Pronalazi ranjivosti. | OWASP ZAP |
| Testiranje pristupaฤnosti | Osigurava usklaฤenost s WCAG-om. | Sjekira, Svjetionik |
Primjer jediniฤnog testa (Jest):
test('adds numbers', () => {
expect(add(2, 3)).toBe(5);
});
Najbolje prakse:
- Odrลพavajte pokrivenost testiranjem >80%.
- Automatizirajte regresijske testove.
- Integrirajte u CI/CD cjevovode.
Programer koji je svjestan testiranja isporuฤuje pouzdanije i odrลพivije aplikacije.
30) Kako pratite brzo razvijajuฤe web tehnologije?
Web razvoj se razvija brลพe od veฤine podruฤja - alati, okviri i standardi se stalno mijenjaju.
Uฤinkovite strategije ukljuฤuju:
- Pratite pouzdane izvore: MDN web dokumenti, CSS-trikovi, ฤasopis Smashing.
- Gledajte kanale zajednice: Trendovi na GitHubu, Reddit r/webdev, Stack Overflow.
- Vjeลพbajte i izgradite sporedne projekte: Primjena nove tehnologije uฤvrลกฤuje nauฤeno.
- Doprinesite otvorenom kodu: Suradnja u stvarnom svijetu ubrzava razumijevanje.
- Prisustvujte webinarima/konferencijama: npr. JSConf, Google I/O.
- Pratite zapise promjena: Budite u toku s aลพuriranjima frameworka (React, Vue, Node).
Primjer:
Kada je React uveo Hooks, programeri koji su ostali u toku brzo su se prilagodili, odrลพavajuฤi konkurentnost u karijeri.
Prilagodljivost i kontinuirano uฤenje pokazuju dugoroฤnu odrลพivost - osobinu koju menadลพeri za zapoลกljavanje cijene.
31) ล to su mikroservisi i kako se razlikuju od monolitnih arhitektura?
Microservices su softverski arhitektonski stil koji strukturira aplikaciju kao skup malih, neovisnih servisa, od kojih svaki radi u svom vlastitom procesu i komunicira putem laganih protokola (npr. HTTP, gRPC).
monolitan Architekstura:
Sve funkcionalnosti - korisniฤko suฤelje, poslovna logika, baza podataka - ฤvrsto su povezane i implementirane kao jedna cjelina.
Microservices Architekstura:
Svaka usluga obraฤuje odreฤenu funkciju (korisnik, narudลพba, plaฤanje) i moลพe se neovisno razvijati, implementirati i skalirati.
| Faktor | Monolit | Microservices |
|---|---|---|
| razvoj | Pojedinaฤna jedinica | Neovisne usluge |
| skalabilnost | Skaliranje cijele aplikacije | Skaliranje pojedinaฤnih usluga |
| Tehnoloลกki stog | Jedinstveni | Moguฤe je poliglotstvo |
| Pronalazak pogreลกke | Nizak | visok |
| odrลพavanje | Kompleks s rastom | Lakลกe u izolaciji |
Primjer: E-trgovina: auth-service, inventory-service, cart-service, payment-service.
Prednosti: Fleksibilnost, izolacija greลกaka i neovisno rasporeฤivanje.
Nedostaci: Sloลพeno umreลพavanje, veฤi DevOps optereฤenje, distribuirano otklanjanje pogreลกaka.
32) Kojih je 10 najveฤih ranjivosti OWASP-a i kako ih ublaลพavate?
OWASP (Open Web Application Security Project) navodi Top 10 najkritiฤniji sigurnosni rizici web aplikacija.
| Ranjivost | Strategija ublaลพavanja |
|---|---|
| 1. Injektiranje (SQL, naredba) | Koristite parametrizirane upite, ORM okvire. |
| 2. Neispravna autentifikacija | Implementirajte politiku jakih lozinki i viลกefaktorsku autentifikaciju. |
| 3. Izloลพenost osjetljivih podataka | Koristite HTTPS, ลกifrirajte podatke u mirovanju i tijekom prijenosa. |
| 4. Vanjski XML entiteti (XXE) | Onemoguฤi obradu vanjskih entiteta. |
| 5. Pokvarena kontrola pristupa | Provedite pristup s najmanje privilegija, temeljen na ulogama. |
| 6. Sigurnosna pogreลกna konfiguracija | Redovite revizije, uklonite nekoriลกtene usluge, koristite sigurnosne zaglavlja. |
| 7. Meฤusejstno skriptiranje (XSS) | Izbjegavanje korisniฤkog unosa, koriลกtenje CSP-a, dezinfekcija podataka. |
| 8. Nesigurna deserijalizacija | Validirati i dezinficirati serijalizirane objekte. |
| 9. Koriลกtenje komponenti s poznatim ranjivostima | Redovito aลพurirajte ovisnosti, koristite npm audit. |
| 10. Nedovoljno evidentiranje i praฤenje | Implementirajte centralizirano evidentiranje i upozorenja. |
Razumijevanje OWASP-a je temeljno za siguran web razvoj i ฤesto je izravno pitanje na intervjuu.
33) Kako HTTPS funkcionira i kakvu ulogu igraju SSL/TLS certifikati?
HTTPS (HyperText Transfer Protocol Secure) osigurava sigurnu komunikaciju izmeฤu preglednika i posluลพitelja pomoฤu SSL/TLS enkripcija.
Pregled procesa:
- Rukovanje: Klijent i posluลพitelj se dogovaraju o metodama ลกifriranja.
- Potvrda certifikata: Posluลพitelj ลกalje SSL certifikat potpisan od strane pouzdanog CA.
- Razmjena kljuฤeva: Kljuฤevi sesije se sigurno razmjenjuju pomoฤu asimetriฤne enkripcije.
- Datum Transmission: Podaci se simetriฤno ลกifriraju pomoฤu sesijskih kljuฤeva.
Prednosti:
- Sprjeฤava prisluลกkivanjeping i napade tipa "ฤovjek u sredini".
- Potvrฤuje autentiฤnost posluลพitelja.
- Poboljลกava SEO rang i povjerenje korisnika.
Primjer:
Ikona lokota u preglednicima potvrฤuje valjani TLS certifikat.
Bez HTTPS-a, vjerodajnice, API tokeni ili osobni podaci mogli bi biti presretnuti.
34) ล to je Docker i kako se koristi u web razvoju?
Luฤki radnik je platforma za kontejnerizaciju koja pakira aplikaciju i njezine ovisnosti u lagane kontejnere, osiguravajuฤi konzistentnost u razliฤitim okruลพenjima.
Zaลกto koristiti Docker:
- Problem "Radi na mom raฤunalu" rijeลกen.
- Reproducibilnost okoline.
- Brลพe implementacija i skalabilnost.
Osnovni tijek rada:
- Napravite
Dockerfiledefiniranje okoline i ovisnosti. - Izgradite sliku:
docker build -t myapp. - Pokreni kontejner:
docker run -p 3000:3000 myapp.
Primjer: Dockerfile:
FROM node:18 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . CMD ["npm", "start"]
Prednosti:
- Izolirana okruลพenja.
- Lakลกe skaliranje (Kubernetes).
- Pojednostavljeni CI/CD cjevovodi.
Poznavanje Dockera je izuzetno vrijedno u full-stack i DevOps-orijentiranim ulogama.
35) Kako API-ji sigurno komuniciraju izmeฤu klijenta i posluลพitelja?
API komunikacija mora osigurati autentifikaciju, integritet i povjerljivost.
Uobiฤajeni mehanizmi sigurnosti API-ja:
- HTTPS/TLS enkripcija: ล titi podatke tijekom prijenosa.
- API kljuฤevi: Identificira pozivne aplikacije; ograniฤeno, ali korisno za jednostavne sluฤajeve.
- OAuth 2.0: Delegirana autorizacija (npr. โPrijava putem Googleaโ).
- JWT (JSON web tokeni): Kompaktni tokeni koji se koriste za provjeru korisniฤkih sesija.
- Ograniฤenje brzine: Sprjeฤava zlouporabu ograniฤavanjem zahtjeva po korisniku/IP adresi.
- Validacija unosa: Sprjeฤava napade injekcijom.
- HMAC potpisi: Osigurava autentiฤnost poruke.
Primjer (JWT tijek):
- Prijava klijenta โ Problemi sa serverom JWT potpisan tajnim kodom.
- Klijent ลกalje JWT
Authorization: Bearer <token>Zaglavlje. - Posluลพitelj provjerava potpis tokena na svakom zahtjevu.
Sigurni API-ji su temeljni za skalabilne i zaลกtiฤene web ekosustave.
36) Objasnite razliku izmeฤu horizontalnog i vertikalnog skaliranja.
Skaliranje poveฤava kapacitet sustava za podnoลกenje veฤeg optereฤenja.
| Vrsta skaliranja | Definicija | Primjer | Prednosti | Nedostaci |
|---|---|---|---|---|
| Okomito skaliranje | Dodajte viลกe snage (CPU, RAM) jednom posluลพitelju. | Nadogradnja tipa EC2 instance. | Jednostavan za implementaciju. | Ograniฤeno hardverom; potreban je zastoj. |
| Horizontalno skaliranje | Dodajte viลกe posluลพitelja za rjeลกavanje optereฤenja. | Dodavanje viลกe EC2 instanci iza uravnoteลพivaฤa optereฤenja. | Visoka tolerancija greลกaka, gotovo beskonaฤno skaliranje. | Sloลพena postavka; zahtijeva distribuirani dizajn. |
Najbolja vjeลพba:
Dizajn za horizontalna skalabilnost โ usluge bez stanja, centralizirana pohrana i uravnoteลพenje optereฤenja omoguฤuju elastiฤnost.
U intervjuima, objaลกnjavanje kada koristiti koji element pokazuje razumijevanje kompromisa u dizajnu sustava.
37) ล to je CDN (mreลพa za isporuku sadrลพaja) i kako poboljลกava performanse?
A CDN je distribuirana mreลพa posluลพitelja koji keลกiraju statiฤki sadrลพaj bliลพe korisnicima na temelju geografije.
Kako radi:
- Korisnik zahtijeva resurs (npr. sliku, CSS).
- CDN usmjerava do najbliลพeg rubnog posluลพitelja umjesto do izvora.
- Isporuฤuje se predmemorirani sadrลพaj, ลกto smanjuje latenciju.
Prednosti:
- Brลพe vrijeme uฤitavanja.
- Smanjeno optereฤenje servera.
- Poboljลกana dostupnost i tolerancija greลกaka.
- Ublaลพavanje DDoS napada.
Popularne CDN mreลพe: Cloudflare, Akamai, AWS CloudFront, Fastly.
Primjer upotrebe:
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js"></script>
U intervjuima, demonstracija svijesti o koriลกtenju CDN-a i strategiji predmemoriranja ukazuje na vjeลกtine full-stack optimizacije.
38) ล to su dizajnerski obrasci i koji se najฤeลกฤe koriste u web razvoju?
Dizajn uzorci su viลกekratno upotrebljiva rjeลกenja za uobiฤajene probleme dizajna softvera.
Uobiฤajeni obrasci web razvoja:
| Uzorak | Description | Primjer |
|---|---|---|
| MVC (Model-View-Controller) | Odvaja podatke, korisniฤko suฤelje i logiku. | Koristi se u frameworkima poput Angulara i Djanga. |
| Posmatraฤ | Obavjeลกtava pretplatnike kada se podaci promijene. | Sluลกaฤi dogaฤaja u JS-u. |
| jedna stvar | Jedna instanca u cijeloj aplikaciji. | Redux trgovina. |
| Tvornica | Stvara objekte bez navoฤenja konkretnih klasa. | Kreiranje komponenti u Reactu. |
| Dekorater | Dinamiฤki dodaje nove funkcionalnosti. | Middleware u Express.js-u. |
Zaลกto vaลพno:
Poboljลกavaju ฤitljivost koda, ponovnu upotrebu i odrลพavanje - kljuฤno za skalabilne sustave.
Anketar vas moลพe zamoliti da opiลกete kada koristiti MVC ili obrasce promatraฤa u stvarnim projektima.
39) Kako se nosite s optimizacijom performansi baze podataka?
Uฤinkovite baze podataka su kljuฤne za skalabilne aplikacije.
Tehnike optimizacije:
- Indeksiranje: Ubrzava dohvaฤanje podataka.
- Optimizacija upita: Izbjeฤi
SELECT *; dohvati samo potrebne stupce. - Normalizacija: Smanjuje redundanciju.
- Predmemoriranje: Pohranite ฤeste upite u Redis.
- prikljuฤak Pooling: Ponovno koristite DB veze kako biste smanjili optereฤenje.
- Sharding/Particioniranje: Podijelite velike skupove podataka.
- Koristite odgovarajuฤe tipove podataka: Minimizirajte koriลกtenje memorije.
- Balansiranje optereฤenja: Distribuiraj upite po replikama za ฤitanje.
Primjer (Indeksiranje u SQL-u):
CREATE INDEX idx_user_email ON users(email);
Razvojni programeri koji razumiju optimizaciju performansi upita posebno su cijenjeni za uloge koje se odnose na pozadinski sustav.
40) Objasnite kako biste implementirali full-stack web aplikaciju u oblak.
Implementacija full-stack aplikacije ukljuฤuje oboje suฤelje i pozadina orkestracija.
Koraci implementacije:
- Kontejneriziraj aplikaciju: Koristite Docker za ponovljivost.
- Odaberite pruลพatelja usluga u oblaku: AWS, Azure, GCP ili Vercel.
- Postavljanje CI/CD cjevovoda: Automatiziraj izgradnju, testiranje, implementaciju.
- Implementirajte frontend:
- Statiฤki hosting: AWS S3 + CloudFront, Netlify ili Vercel.
- Naredba:
npm run buildโ rasporeditidist/orbuild/mapa.
- Implementirajte pozadinski sustav:
- Host API na EC2, Elastic Beanstalk, ili Azure Usluga aplikacija.
- Konfigurirajte varijable okruลพenja i URL-ove baze podataka.
- Postavljanje baze podataka: Koristite RDS, MongoDB Atlas ili Firebase.
- Umreลพavanje: Konfigurirajte DNS, uravnoteลพivaฤ optereฤenja i HTTPS (TLS).
- Praฤenje: Omoguฤite zapisivanje (CloudWatch, Datadog), upozorenja i automatsko skaliranje.
Primjer Cloud Stacka:
- Frontend โ React (Vercel)
- Backend โ Node.js (AWS ECS)
- Baza podataka โ PostgreSQL (RDS)
- CI/CD โ Akcije GitHuba
To pokazuje sposobnost programera da premosti razvoj, implementaciju i operacije - ลกto je kljuฤno u intervjuima za viลกe pozicije.
๐ Najฤeลกฤa pitanja za intervju za web developere sa stvarnim scenarijima i strateลกkim odgovorima
1) Koje su kljuฤne razlike izmeฤu responzivnog i adaptivnog dizajna?
Oฤekuje se od kandidata
Anketar ลพeli vidjeti razumijete li osnovne principe dizajna front-enda i kako svaki pristup utjeฤe na upotrebljivost i performanse.
Primjer odgovora โResponzivni dizajn koristi fleksibilne rasporede koji se automatski prilagoฤavaju na temelju veliฤine zaslona, โโdok adaptivni dizajn koristi unaprijed postavljene rasporede za odreฤene toฤke prekida. Responzivni dizajn je opฤenito fluidniji, dok adaptivni dizajn pruลพa veฤu kontrolu nad iskustvima na odreฤenim ureฤajima. Obiฤno preferiram responzivni dizajn zbog njegove skalabilnosti na ลกirem rasponu ureฤaja.โ
2) Moลพete li objasniti kako optimizirate web stranicu za performanse?
Oฤekuje se od kandidata
ลฝele uvid u vaลกe razumijevanje optimizacije brzine, alata i praksi u industriji.
Primjer odgovora โFokusiram se na minimiziranje HTTP zahtjeva, komprimiranje slika, implementaciju lijenog uฤitavanja i koriลกtenje dijeljenja koda kad god je to moguฤe. Takoฤer koristim strategije predmemoriranja i optimiziram CSS i JavaPaketi skripti. U prethodnoj sam ulozi poboljลกao brzinu uฤitavanja stranice implementacijom kombinacije ovih tehnika zajedno s alatima za praฤenje performansi poput Lighthousea.
3) Opiลกite zahtjevan projekt web razvoja koji ste zavrลกili i kako ste se nosili s preprekama.
Oฤekuje se od kandidata
Anketari traลพe otpornost, analitiฤko razmiลกljanje i uspjeลกne rezultate.
Primjer odgovora โNa prethodnoj poziciji radio sam na redizajnu naslijeฤene aplikacije sa sloลพenim ovisnostima. Najveฤi izazov bio je osigurati unatrag kompatibilnost. To sam rijeลกio dokumentiranjem svih ovisnosti, izradom faznog plana migracije i provoฤenjem temeljitog regresijskog testiranja kako bih osigurao stabilnost sustava.โ
4) Kako osiguravate kompatibilnost meฤu preglednicima u svojim projektima?
Oฤekuje se od kandidata
ลฝele znati vaลก proces i alate za testiranje ponaลกanja korisniฤkog suฤelja u razliฤitim okruลพenjima.
Primjer odgovora โKoristim alate poput BrowserStacka i provodim ruฤno testiranje u glavnim preglednicima. Oslanjam se na progresivno poboljลกanje i izbjegavam kod specifiฤan za preglednik osim ako nije potrebno. Na prethodnom poslu takoฤer sam izradio kontrolnu listu kompatibilnosti kako bih osigurao dosljedno renderiranje u svim podrลพanim preglednicima.โ
5) Kako pristupate otklanjanju pogreลกaka sloลพenih problema na front-endu?
Oฤekuje se od kandidata
ลฝele dokaze o strukturiranom razmiลกljanju i poznavanju alata za razvoj preglednika.
Primjer odgovora โPoฤinjem dosljednim reproduciranjem problema. Zatim koristim alate za razvoj preglednika za pregled elemenata, analizu mreลพnih poziva i trace skripte. Suลพavam potencijalne uzroke izoliranjem komponenti dok ne pronaฤem korijen problema. U svojoj posljednjoj ulozi ฤesto sam suraฤivao s odjelom za kontrolu kvalitete kako bih osigurao da popravak rjeลกava sve rubne sluฤajeve.
6) Recite mi o situaciji kada ste morali blisko suraฤivati โโs dizajnerima ili backend developerima. Kako ste osigurali nesmetanu komunikaciju?
Oฤekuje se od kandidata
Procjenjuju timski rad, komunikaciju i sposobnost premoลกฤivanja tehniฤkih nedostataka.
Primjer odgovora โRedovito sam odrลพavao sastanke s dizajnerima i backend developerima kako bih uskladio oฤekivanja i razjasnio tehniฤka ograniฤenja. Takoฤer sam koristio zajedniฤku dokumentaciju i prototipove kako bih izbjegao nesporazume. Ovaj pristup osigurao je transparentan tijek rada i smanjio preradu.โ
7) Kako pratite nove tehnologije i najbolje prakse web razvoja?
Oฤekuje se od kandidata
Traลพe strast, inicijativu i kontinuirano usavrลกavanje vjeลกtina.
Primjer odgovora โOstajem u tijeku ฤitajuฤi MDN dokumentaciju, prateฤi blogove iz industrije i posjeฤujuฤi virtualne konferencije. Takoฤer istraลพujem nove okvire kroz male sporedne projekte kako bih ostao upoznat s novim obrascima.โ
8) Kako biste postupili u situaciji u kojoj klijent zahtijeva znaฤajke koje nisu izvedive unutar zadanog vremenskog okvira?
Oฤekuje se od kandidata
ลฝele procijeniti vaลกu sposobnost profesionalnog upravljanja oฤekivanjima.
Primjer odgovora โJasno bih objasnio tehniฤka ograniฤenja i predloลพio alternativna rjeลกenja ili moguฤnosti fazne isporuke. Otkrio sam da klijenti cijene transparentnost, posebno kada je uparena s odrลพivim alternativama koje i dalje ispunjavaju njihove ciljeve.โ
9) Koje sigurnosne prakse primjenjujete prilikom izrade web aplikacija?
Oฤekuje se od kandidata
ลฝele biti svjesni osnovnih naฤela web sigurnosti.
Primjer odgovora โUvijek provjeravam unos i na klijentskoj i na posluลพiteljskoj strani, koristim parametrizirane upite, omoguฤavam HTTPS i implementiram odgovarajuฤe tokove autentifikacije i autorizacije. Takoฤer izbjegavam izlaganje osjetljivih podataka na klijentu i koristim sigurnosne zaglavlja za ublaลพavanje uobiฤajenih napada poput XSS-a i CSRF-a.โ
10) Opiลกite kako biste rijeลกili znaฤajnu greลกku prijavljenu neposredno prije produkcijskog izdanja.
Oฤekuje se od kandidata
ลฝele uvid u vaลกe vjeลกtine upravljanja krizama i sposobnost brzog odreฤivanja prioriteta.
Primjer odgovora โOdmah bih procijenio utjecaj i utvrdio je li rijeฤ o blokadi izdanja. Ako je kritiฤno, pauzirao bih izdanje i suraฤivao s timom na dijagnosticiranju i rjeลกavanju problema. Ako je potrebno, dokumentirao bih problem, obavijestio dionike o aลพuriranjima i osigurao da se rjeลกenje temeljito testira prije nego ลกto se nastavi.โ
