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

Najฤeลกฤ‡a pitanja i odgovori za intervju za web developere

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/rem jedinice 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 alt tekst za slike, ARIA atributi ako su potrebni, label povezana s inputs, 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Razvijajte osnovnu funkcionalnost u koracima โ€” slijedite prakse modularnog kodiranja, piลกite male komponente ili module, koristite grane znaฤajki za svaki zadatak, dokumentirajte kod.
  6. 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.
  7. 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.
  8. Implementirajte i konfigurirajte produkcijsko okruลพenje โ€” konfiguriranje posluลพitelja, baze podataka, varijabli okruลพenja, SSL-a, CDN-a, predmemorije, praฤ‡enja, zapisivanja pogreลกaka.
  9. Kontinuirana integracija / kontinuirano rasporeฤ‘ivanje (CI/CD) โ€” automatizirati cjevovode izgradnje, testiranja i implementacije radi dosljednosti i brzih iteracija.
  10. 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/1 i /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:

  1. 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 hell ako je duboko ugnijeลพฤ‘eno.

  2. 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));
    
  3. 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);
      }
    }
    
  4. 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:

  1. DNS pretraga: Preglednik pretvara naziv domene u IP adresu.
  2. TCP veza i SSL rukovanje: Uspostavlja sigurnu vezu.
  3. Poslan HTTP zahtjev: Preglednik zahtijeva HTML od posluลพitelja.
  4. Odgovor posluลพitelja: Vraฤ‡a HTML (i reference na CSS, JS, slike).
  5. HTML parsiranje: Preglednik konstruira DOM stablo.
  6. CSS parsiranje: Stvara CSSOM (CSS objektni model).
  7. JavaIzvrลกenje skripte: DOM i CSSOM kombinirani โ†’ Renderiraj stablo stvorio.
  8. Izgled: Preglednik izraฤunava poloลพaje/veliฤine elemenata.
  9. 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 let za varijable koje se mijenjaju, const za 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:

  1. Kloniraj repozitorij.
  2. Stvorite novu granu: git checkout -b feature/login.
  3. Potvrdi promjene.
  4. Zahtjev za push i open pull.
  5. 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:

  1. Code Umanjivanje: Uklonite nepotrebne znakove i razmake iz HTML-a, CSS-a, JS-a.
  2. Vezivanje u snopove i tresenje drveฤ‡a: Kombinirajte datoteke kako biste smanjili HTTP zahtjeve; uklonite neiskoriลกteni kod (eliminacija mrtvog koda).
  3. Lijeno uฤitavanje: Uฤitajte slike, videozapise i skripte samo kada je potrebno.
  4. Optimizacija slike: Koristite moderne formate (WebP, AVIF), responzivne veliฤine (srcset) i kompresija.
  5. Preduฤitavanje i preddohvaฤ‡anje: Dajte prioritet kritiฤnim resursima (<link rel="preload">).
  6. Optimizacija kritiฤnog puta renderiranja: Ugradite kritiฤni CSS, odgodite nekritiฤni JS.
  7. Strategije predmemoriranja: Primijenite predmemoriranje preglednika i CDN-a; koristite Service Workere za offline sadrลพaj.
  8. 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 bcrypt or Argon2.
  • ล 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:

  1. Programer ลกalje kod na granu.
  2. CI cjevovod pokreฤ‡e testove โ†’ gradi โ†’ generira artefakte.
  3. 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:

  1. Odvajanje koncerna: Podijelite slojeve frontenda, backenda i baze podataka.
  2. Balansiranje optereฤ‡enja: Distribuirajte zahtjeve izmeฤ‘u posluลพitelja pomoฤ‡u uravnoteลพivaฤa optereฤ‡enja.
  3. Slojevi predmemorije: CDN za statiฤke resurse; Redis/Memcached za dinamiฤko keลกiranje.
  4. Optimizacija baze podataka: Koristite indeksiranje, particioniranje i replikaciju.
  5. Microservices Architekstura: Razbijte monolite na neovisne usluge.
  6. Horizontalno skaliranje: Dodajte viลกe instanci umjesto poveฤ‡anja specifikacija posluลพitelja.
  7. Asinkrona obrada: Koristite redove ฤekanja (RabbitMQ, Kafka) za pozadinske zadatke.
  8. 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:

  1. Rukovanje: Klijent i posluลพitelj se dogovaraju o metodama ลกifriranja.
  2. Potvrda certifikata: Posluลพitelj ลกalje SSL certifikat potpisan od strane pouzdanog CA.
  3. Razmjena kljuฤeva: Kljuฤevi sesije se sigurno razmjenjuju pomoฤ‡u asimetriฤne enkripcije.
  4. 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:

  1. Napravite Dockerfile definiranje okoline i ovisnosti.
  2. Izgradite sliku: docker build -t myapp.
  3. 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:

  1. HTTPS/TLS enkripcija: ล titi podatke tijekom prijenosa.
  2. API kljuฤevi: Identificira pozivne aplikacije; ograniฤeno, ali korisno za jednostavne sluฤajeve.
  3. OAuth 2.0: Delegirana autorizacija (npr. โ€žPrijava putem Googleaโ€œ).
  4. JWT (JSON web tokeni): Kompaktni tokeni koji se koriste za provjeru korisniฤkih sesija.
  5. Ograniฤenje brzine: Sprjeฤava zlouporabu ograniฤavanjem zahtjeva po korisniku/IP adresi.
  6. Validacija unosa: Sprjeฤava napade injekcijom.
  7. HMAC potpisi: Osigurava autentiฤnost poruke.

Primjer (JWT tijek):

  1. Prijava klijenta โ†’ Problemi sa serverom JWT potpisan tajnim kodom.
  2. Klijent ลกalje JWT Authorization: Bearer <token> Zaglavlje.
  3. 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:

  1. Indeksiranje: Ubrzava dohvaฤ‡anje podataka.
  2. Optimizacija upita: Izbjeฤ‡i SELECT *; dohvati samo potrebne stupce.
  3. Normalizacija: Smanjuje redundanciju.
  4. Predmemoriranje: Pohranite ฤeste upite u Redis.
  5. prikljuฤak Pooling: Ponovno koristite DB veze kako biste smanjili optereฤ‡enje.
  6. Sharding/Particioniranje: Podijelite velike skupove podataka.
  7. Koristite odgovarajuฤ‡e tipove podataka: Minimizirajte koriลกtenje memorije.
  8. 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:

  1. Kontejneriziraj aplikaciju: Koristite Docker za ponovljivost.
  2. Odaberite pruลพatelja usluga u oblaku: AWS, Azure, GCP ili Vercel.
  3. Postavljanje CI/CD cjevovoda: Automatiziraj izgradnju, testiranje, implementaciju.
  4. Implementirajte frontend:
    • Statiฤki hosting: AWS S3 + CloudFront, Netlify ili Vercel.
    • Naredba: npm run build โ†’ rasporediti dist/ or build/ mapa.
  5. Implementirajte pozadinski sustav:
    • Host API na EC2, Elastic Beanstalk, ili Azure Usluga aplikacija.
    • Konfigurirajte varijable okruลพenja i URL-ove baze podataka.
  6. Postavljanje baze podataka: Koristite RDS, MongoDB Atlas ili Firebase.
  7. Umreลพavanje: Konfigurirajte DNS, uravnoteลพivaฤ optereฤ‡enja i HTTPS (TLS).
  8. 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.โ€œ

Saลพmite ovu objavu uz: