30 najvažnijih pitanja i odgovora za intervju za UI developere (2026.)
Priprema za intervju za poziciju UI developera znači predviđanje izazova, očekivanja i dubine evaluacije dizajna i koda. Pitanja za intervju za poziciju UI developera otkrivaju prioritete, rješavanje problema i spremnost za uloge u svijetu.
Ovo područje nudi snažne karijerne puteve jer sučelja pokreću proizvode, zahtijevajući tehničku stručnost, stručnost u domeni i analitičke vještine stečene radom u tom području, helping Stručnjaci prve, srednje i više razine surađuju s menadžerima, voditeljima timova i starijim osobama kako bi kroz praktično iskustvo diljem svijeta rješavali uobičajena tehnička, osnovna i napredna pitanja i odgovore za intervjue. Čitaj više…
👉 Besplatno preuzimanje PDF-a: Pitanja i odgovori za intervju za UI developera
Najčešća pitanja i odgovori za intervju za UI developere za početnike
1) Objasnite ulogu UI programera u životnom ciklusu razvoja softvera.
UI (korisnički interfejs) programer odgovoran je za stvaranje vizualnih i interaktivnih dijelova web aplikacije s kojima korisnici izravno komuniciraju. Prevode nacrte dizajna i UX specifikacije u funkcionalni HTML, CSS i JavaSkriptni kod koji besprijekorno radi na svim uređajima i preglednicima. Njihova uloga premošćuje jaz između grafičkog dizajna i funkcionalnog softvera osiguravajući da su sučelja estetski ugodna i jednostavna za korištenje.
UI programeri blisko surađuju s UX dizajnerima, backend programerima i timovima za proizvode kako bi optimizirali upotrebljivost, pristupačnost i performanse. Također implementiraju responzivne izglede, integriraju API-je za dinamički sadržaj i često sudjeluju u testiranju i otklanjanju pogrešaka prije implementacije. Snažan UI programer doprinosi i izgled i osjećate proizvoda, kao i njegovog iskoristivost u scenarijima stvarnog svijeta.
Primjer: U aplikaciji za e-trgovinu, UI programer bi implementirao komponente galerije proizvoda, responzivnu navigaciju, interaktivne filtere i glatke validacije obrazaca za naplatu koje poboljšavaju cjelokupno korisničko iskustvo.
2) Koja je razlika između UI programera i UX programera?
Uloge UI (korisničkog sučelja) i UX (korisničkog iskustva) se preklapaju, ali se usredotočuju na različite aspekte dizajna proizvoda:
- Razvojni programer korisničkog sučelja: Koncentrira se na vizualni dizajn, interaktivne elemente i izgradnju sučelja pomoću koda (HTML, CSS, JavaScript). Njihov učinak određuje kako proizvod izgleda i kako se osjeća.
- UX programer: Fokusira se na istraživanje korisnika, upotrebljivost, korisničke tokove i strukturiranje iskustva kako bi bilo intuitivno i učinkovito. Oni oblikuju način rada proizvoda i način interakcije korisnika s njim.
| Aspekt | Razvojnik korisničkog sučelja | UX programer |
|---|---|---|
| Primarni fokus | Vizualni raspored i interakcija | Korisnički protok i upotrebljivost |
| Ključni izlaz | HTML/CSS/JS sučelja | Žičani modeli, korisnički tokovi, prototipovi |
| Alati | Front-end okviri, dizajnerski sustavi | Alati za istraživanje, alati za izradu wireframinga |
| Glavni cilj | Estetska upotrebljivost | Optimalno korisničko iskustvo |
Primjer: UX programer može utvrditi da obrazac s više koraka poboljšava stopu dovršetka zadataka, dok UI programer implementira obrazac s animacijama i validacijama koje se čine glatkim i intuitivnim.
3) Opišite kako responzivni dizajn funkcionira i zašto je važan.
Responzivni dizajn osigurava da se sučelja web aplikacija prilagođavaju različitim veličinama zaslona i vrstama uređaja (mobilni uređaji, tableti, stolna računala) bez gubitka upotrebljivosti ili integriteta izgleda. Primarno koristi CSS tehnike kao što su medijski upiti, flexbox, rasporedi mrežei relativne jedinice (%, rem, vw/vh) za dinamičko prilagođavanje izgleda.
Responzivni dizajn je važan jer osigurava dosljedno korisničko iskustvo bez obzira na uređaj. S obzirom na to da mobilni promet dominira korištenjem weba, mnoge tvrtke daju prioritet responzivnom korisničkom sučelju kako bi spriječile gubitak korisnika zbog loše upotrebljivosti na manjim zaslonima.
Primjeri tehnika:
@mediaupiti prilagođavaju izgled na temelju širine zaslona.- CSS Grid organizira složene izglede.
- Flexbox raspoređuje prostor unutar kontejnera za fleksibilan raspored redaka/stupaca.
@media (max-width: 600px) {
.card { flex-direction: column; }
}
Responzivni izgledi poboljšavaju angažman, SEO rangiranje i stope konverzije, što ih čini ključnima u razvoju korisničkog sučelja.
4) Kako optimizirati korisničko sučelje za performanse?
Optimizacija performansi korisničkog sučelja osigurava brzo vrijeme učitavanja i glatke interakcije, izravno poboljšavajući zadovoljstvo i zadržavanje korisnika. Ključne tehnike optimizacije uključuju:
- Minimiziranje CSS-a/JS-aUklanjanje razmaka i komentara radi smanjenja veličine datoteke.
- Lijeno učitavanje slika i komponenti: Učitavanje nekritičnih resursa samo kada se pojave u prikazu.
- Code cijepanje: Posluživanje je potrebno samo JavaPrvo se paketi skripti.
- Korištenje učinkovitih CSS selektora i izbjegavanje dubokih DOM hijerarhija.
- Predmemoriranje sredstava i korištenje CDN-ova za statički sadržaj.
Primjer: Za stranicu proizvoda, odgođeno učitavanje slika visoke rezolucije omogućit će se tako da se prvo učitaju minijature, a cijela slika se učitava kada se korisnik pomakne do nje. To značajno smanjuje vrijeme početnog učitavanja stranice i percipiranu latenciju.
5) Što je CSS box model i zašto je važan?
CSS model okvira definira kako se svaki element na web stranici prikazuje i određuje mu se veličina. Uključuje:
- Sadržaj — tekst ili slike unutar okvira.
- punjenje — prostor između sadržaja i obruba.
- Granica - obris oko kutije.
- Marža — vanjski razmak između kutija.
Razumijevanje modela okvira ključno je jer utječe na izračune rasporeda, razmake i responzivno ponašanje. Nerazumijevanje svojstava modela okvira često dovodi do neočekivanih promjena rasporeda ili problema s prelijevanjem.
Primjer:
div {
width: 200px;
padding: 20px;
border: 2px solid black;
margin: 10px;
}
Iako je širina 200px, ukupni zauzeti prostor postaje veći zbog ispune i obruba. Pravilno savladavanje osigurava dosljedan raspored i poravnanje u svim preglednicima.
6) Objasnite razliku između debouncinga i throttlinga u JavaSkripta.
I debouncing i throttling kontroliraju učestalost izvršavanja funkcija kao odgovor na događaje (poput pomicanja ili promjene veličine), ali djeluju drugačije:
- Uklanjanje odskoka: Odgađa izvršenje dok ne prođe određeno vrijeme bez dodatnih okidača događaja. Korisno za polja za unos ili okvire za pretraživanje.
- proporcionalnost: Osigurava da se funkcija izvrši najviše jednom u zadanom intervalu, bez obzira na učestalost događaja.
| Tehnika | Koristite slučaj | Ponašanje |
|---|---|---|
| Debounce | Unos pretraživanja | Izvršava se tek nakon što događaji završe |
| gasa | Pomicanje/promjena veličine | Izvršava se u redovitim intervalima |
Primjer: Debouncing sprječava okidanje rukovatelja dok korisnik ne zaustavi typing, poboljšavajući performanse pri čestim pritiscima tipki. Usporavanje ograničava slušača pomicanja na pokretanje jednom svakih 100 ms za glatku interakciju stranice.
7) Kako osiguravate pristupačnost (svaki dan) u razvoju korisničkog sučelja?
Pristupačnost osigurava da web sučelja mogu koristiti osobe s invaliditetom, uključujući one koji koriste čitače zaslona ili navigaciju tipkovnicom. Najbolje prakse uključuju:
- Semantički HTML za pravilnu strukturu.
- ARIA uloge i atributi gdje je izvorna semantika nedovoljna.
- Navigacija dostupna tipkovnicom.
- Pravilni omjeri kontrasta za čitljivost teksta.
- Zamjenski tekst za slike i oznake za polja obrasca.
Primjer: Korištenje <button> elementi umjesto elemenata na koje se može kliknuti <div> osigurava fokus tipkovnice i ispravnu semantiku za pomoćne tehnologije.
Pristupačnost poboljšava uključivost, usklađenost s propisima i ukupnu upotrebljivost, čineći proizvode robusnijima i jednostavnijima za korištenje.
8) Što su semantički HTML elementi i zašto se koriste?
Semantički HTML elementi jasno opisuju značenje sadržaja koji sadrže. Primjeri uključuju <header>, <main>, <footer>, <article>i <nav>.
Semantički elementi se koriste jer:
- Poboljšajte pristupačnost za čitače zaslona.
- Poboljšajte SEO (tražilice razumiju strukturu sadržaja).
- Učinite kod čitljivijim i održivijim.
Korištenje semantičkih oznaka pomaže i strojevima i ljudima da učinkovitije interpretiraju strukturu i funkcionalnost stranice.
9) Koja je razlika između i ?
| svojstvo | <div> |
<span> |
|---|---|---|
| Prikaz mjesta | Blokirati | U redu |
| Prijelom retka prije i poslije | Da | Ne |
| tipična uporaba | Kontejneri/raspored | Mali tekstualni/ugrađeni elementi |
| Prihvaća djecu blokova | Da | Ne |
<div> koristi se za veće strukturne blokove, dok <span> koristi se za inline grupuping teksta ili malih elemenata. Razumijevanje kada koristiti koji utječe na odluke o izgledu i CSS strategije.
10) Koji su uobičajeni alati i okviri koje bi UI programer trebao znati?
Moderni UI programer trebao bi biti upoznat sa:
- HTML5, CSS3, JavaSkripta (ES6+)
- Okviri/Biblioteke - Reagovati, Angular, Vue.js
- CSS predprocesori - Sass/MANJE
- Alati za izradu — Webpack, Vite
- Kontrola verzije — Git/GitHub
- Alati za dizajn - Figma, Adobe XD
Primjer: React-ova arhitektura temeljena na komponentama pomaže u izgradnji višekratno upotrebljivih UI blokova, dok alati poput Sass pojednostavite CSS s varijablama i ugniježđivanjem.
11) Kako upravljate stanjem u velikim UI aplikacijama?
Upravljanje stanjem odnosi se na kontrolu i sinkronizaciju podataka koji utječu na ono što korisnik vidi i s čime komunicira. U malim aplikacijama, lokalno stanje komponente (korištenjem hookova poput useState) je često dovoljno. Međutim, velika korisnička sučelja zahtijevaju centralizirano upravljanje državom kako bi se održala konzistentnost među više komponenti.
Uobičajeni pristupi uključuju:
- React Context API za laganu globalnu državu.
- Redux ili Stanje za predvidljive, skalabilne kontejnere stanja.
- MobX za upravljanje reaktivnim stanjem.
- Biblioteke upita (React Query, SWR) za sinkronizaciju stanja poslužitelja.
Primjer: U nadzornoj ploči e-trgovine, Redux može sadržavati stavke košarice, status autentifikacije i filtere proizvoda - osiguravajući da sve komponente pristupaju jednom izvoru istine.
| Oruđe | Idealan slučaj upotrebe | Temeljna korist |
|---|---|---|
| Kontekstni API | Male i srednje aplikacije | Jednostavno, ugrađeno rješenje |
| Redux | Enterprise aplikacije | Predvidljivo stanje i otklanjanje pogrešaka |
| React upit | Stanje API-ja | Automatsko keširanje i ponovna validacija |
12) Objasnite kako virtualni DOM funkcionira u Reactu.
The Virtualni DOM (VDOM) je memorijski prikaz stvarnog DOM-a koji koriste React i druge biblioteke za optimizaciju renderiranja. Kada dođe do promjene korisničkog sučelja:
- React prvo ažurira virtualni DOM.
- Zatim uspoređuje novi VDOM s prethodnom snimkom (algoritam za razlikovanje).
- U stvarnom DOM-u (usklađivanje) ažuriraju se samo promijenjeni dijelovi.
Ovaj proces minimizira skupe manipulacije stvarnim DOM-om, značajno poboljšavajući performanse.
Primjer: Ako se promijeni samo jedna stavka na popisu, React ponovno renderira samo taj čvor umjesto da ponovno izgradi cijeli popis.
| OperaANJE | Bez virtualnog DOM-a | S virtualnim DOM-om |
|---|---|---|
| Ažuriranja DOM-a | Višestruko po promjeni | Grupno i minimalno |
| Izvođenje | sporiji | Brže |
| Složenost | Upravljano od strane razvojnih programera | Upravljano okvirom |
13) Koje su različite vrste CSS pozicioniranja i kada biste svaku koristili?
CSS pozicioniranje kontrolira kako se elementi postavljaju u izgledu. Glavne vrste su:
| Tip | Description | Uobičajena upotreba |
|---|---|---|
| statički | Zadano; prati tok dokumenta | Standardni tekst i rasporedi |
| rođak | Pomiče element u odnosu na njegov normalni položaj | Fine prilagodbe |
| apsolutan | Pozicioniran u odnosu na najbližeg pozicioniranog pretka | Opisi alata, slojevi |
| fiksni | Ostaje u odnosu na vidljivi dio | Ljepljivi zaglavlja, plutajući izbornici |
| ljepljiv | Prebacuje se između relativnog i fiksnog na temelju pomicanja | Zaglavlja tablice |
Primjer: Fiksna navigacijska traka ostaje vidljiva tijekom pomicanja, osiguravajući dosljedan pristup opcijama izbornika.
Pravilno pozicioniranje osigurava fleksibilne i čitljive rasporede bez prekidanja toka dokumenata.
Pitanja za intervju za UI developere za iskusne (front-end)
14) Kako biste otklonili probleme s renderiranjem korisničkog sučelja u React ili Angular aplikaciji?
Ispravljanje pogrešaka korisničkog sučelja zahtijeva sustavno istraživanje cijelog stoga. Ključni koraci uključuju:
- Provjerite konzolu preglednika za JavaPogreške u skripti ili nedostajuće ovisnosti.
- Koristite React/Angular DevTools za pregled hijerarhija komponenti i svojstava/stanja.
- Izolirajte problem — komentirajte ili onemogućite sumnjive komponente.
- Validacija toka podataka — provjeriti sadrže li props, state ili observables očekivane vrijednosti.
- Pregledajte CSS konflikte — provjeriti z-index, pozicioniranje ili pravila prikaza.
- Testirajte u anonimnom ili sigurnom načinu rada kako bi se uklonile smetnje predmemoriranja ili proširenja.
Primjer: Ako se komponenta ne uspije prikazati, provjerite DevTools kako biste osigurali da se svojstva ispravno prenose od roditelja do djeteta. Zapisivanje vrijednosti stanja tijekom ponovnog prikazivanja često otkriva probleme s logikom ili životnim ciklusom.
15) Koje su neke najbolje prakse za pisanje održivog CSS-a?
Održivi CSS poboljšava skalabilnost, čitljivost i smanjuje konflikte u velikim projektima. Najbolje prakse uključuju:
- Usvajanje konvencije imenovanja (BEM — Blok, Element, Modifikator).
- Modularna CSS arhitektura (podijeli datoteke po komponentama).
- Korištenje varijabli (Prilagođena CSS svojstva ili varijable predprocesora).
- Izbjegavanje dubokih selektora i previše specifična pravila.
- Iskoristite CSS metodologije kao što su SMACSS ili OOCSS.
Primjer (BEM):
.card__title--highlighted {
color: #ff6b00;
}
Ovaj pristup jasno definira strukturu i svrhu, helping timovi surađuju bez sukoba stilova.
16) Koja je razlika između REST i GraphQL API-ja za integraciju korisničkog sučelja?
I REST i GraphQL pružaju podatke za UI renderiranje, ali se razlikuju u fleksibilnosti i učinkovitosti.
| svojstvo | OSTALO | Graphql |
|---|---|---|
| Dohvaćanje podataka | Fiksne krajnje točke | Klijent definira strukturu |
| Prekomjerno/nedovoljno dohvaćanje | Zajednički | eliminiran |
| HTTP metode | DOBITI, OBJAVITI, STAVITI, BRISATI | Obično POST |
| Izvođenje | Više zahtjeva | Jedan upit |
Primjer: REST API može zahtijevati tri poziva (korisnik, objave, komentari), dok jedan GraphQL upit može dohvatiti sve u jednom zahtjevu.
Za UI developere, GraphQL pojednostavljuje rukovanje podacima i smanjuje latenciju, posebno u aplikacijama s ugniježđenim odnosima.
17) Kako rješavate probleme s kompatibilnošću preglednika?
Nedosljednosti preglednika mogu utjecati na izgled i ponašanje. Njihovo rješavanje zahtijeva proaktivno testiranje i rezervne strategije:
- Koristiti otkrivanje značajki (
@supports, Modernizr). - Korak po korak do prijave CSS resetiranja ili normalizatori standardizirati zadane stilove.
- Testirajte u glavni preglednici (Chrome, Safari, Firefox, Rub).
- Koristiti polifilovi ili transpileri (Babel, PostCSS) za nepodržane značajke.
- Pogledajte CanIUse.com za podršku značajkama prije implementacije.
Primjer: Ako CSS Grid nije podržan u starijem pregledniku, rezervni izgledi pomoću Flexboxa mogu osigurati osnovnu funkcionalnost.
18) Objasnite životni ciklus React komponente.
React komponente imaju različite faze životnog ciklusa, što omogućuje programerima da se povežu s određenim točkama za izvršavanje logike.
| Faza | način | Svrha |
|---|---|---|
| Montiranje | constructor(), componentDidMount() |
Inicijalizacija, API pozivi |
| Ažuriranje | componentDidUpdate() |
Odgovor na promjene prop/stanja |
| Demontaža | componentWillUnmount() |
Čišćenje (mjerači vremena, pretplate) |
Primjer: U komponenti grafikona, dohvaćanje podataka može se dogoditi u componentDidMounta slušači događaja mogu se ukloniti u componentWillUnmount kako bi se spriječilo curenje memorije.
U modernom Reactu, ove metode životnog ciklusa se upravljaju pomoću kuke (useEffect), pružajući čišću i funkcionalniju sintaksu.
19) Koja je razlika između Flexboxa i CSS Grida?
I Flexbox i CSS Grid su sustavi za oblikovanje, ali rješavaju različite probleme.
| Aspekt | flex box | CSS mreža |
|---|---|---|
| Smjer rasporeda | Jednodimenzionalno (redak ili stupac) | Dvodimenzionalno (retci i stupci) |
| Poravnanje | Izvrsno za raspodjelu prostora | Precizno poravnanje mreže |
| Koristite slučaj | Alatne trake, izbornici, male komponente | Složeni izgledi stranica |
Primjer: Koristite Flexbox za horizontalno centriranje gumba u alatnoj traci i CSS Grid za stvaranje stranice s više odjeljaka, zaglavljem, bočnom trakom i sadržajem.
Snažan UI programer često kombinira oba sustava za optimalnu fleksibilnost i održivost.
20) Kako pristupate testiranju UI sloja?
Testiranje osigurava pouzdanost, pristupačnost i performanse korisničkog sučelja. Vrste testiranja korisničkog sučelja uključuju:
- Jedinično testiranje: Validira ponašanje komponenti (koristeći Jest, Jasmine).
- Testiranje integracije: Osigurava zajednički rad više komponenti (React Testing Library).
- Testiranje od početka do kraja (E2E): Simulira interakcije korisnika pomoću Cypress, Dramski pisac ili Selenium.
- Vizualno regresijsko testiranje: Otkriva neželjene promjene korisničkog sučelja usporedbom snimaka zaslona (Percy, Chromatic).
Primjer: E2E test bi mogao potvrditi da se korisnik može prijaviti, dodati artikle u košaricu i uspješno dovršiti naplatu - replicirajući ponašanje stvarnog korisnika.
Testiranje poboljšava dugoročnu stabilnost, smanjuje regresije i gradi povjerenje tijekom kontinuirane integracije i implementacije.
21) Kako učinkovito implementirati animacije u korisničko sučelje?
Animacije poboljšavaju korisničko iskustvo kada se primjenjuju promišljeno - poboljšavajući vizualni tok, privlačeći pozornost na ključne radnje ili pružajući povratne informacije. Učinkovita implementacija ovisi o pravoj tehnologiji i praksama optimizacije.
Uobičajene tehnike:
- CSS prijelazi i animacije za jednostavne, hardverski ubrzane efekte.
- JavaPismo (GSAP, Anime.js) za složene animacije temeljene na vremenskoj liniji.
- React biblioteke poput Kretanje okvira za deklarativne animacije u korisničkim sučeljima vođenim komponentama.
Savjeti za izvedbu:
- Animirati transformirati i neprozirnost samo svojstva (izbjegavajte preklapanje izgleda).
- Koristiti
will-changekako bi obavijestio preglednik o nadolazećim promjenama. - Ograničite istovremene animacije.
Primjer:
.button:hover {
transform: scale(1.05);
transition: transform 0.3s ease;
}
Dobro osmišljene mikrointerakcije poboljšavaju povratne informacije bez utjecaja na performanse.
22) Što je dizajnerski sustav i kako pomaže u razvoju korisničkog sučelja?
A Sustav dizajna je centralizirana zbirka višekratno upotrebljivih komponenti, dizajnerskih tokena, smjernica i standarda koji osiguravaju dosljednost među proizvodima.
Komponente:
- Vodič za stil: Tipografija, paleta boja, razmak itd.
- Biblioteka komponenti: Unaprijed izgrađeni UI blokovi (gumbi, modalni prozori, obrasci).
- Dokumentacija: Pravila za korištenje i pristupačnost.
| Korist | Description |
|---|---|
| Dosljednost | Ujednačen izgled i dojam u svim aplikacijama |
| Reus Sposobnost | Komponente smanjuju vrijeme razvoja |
| skalabilnost | Lakše je održavati velike dizajnerske timove |
| Pristupačnost | Standardi ugrađeni u elemente za višekratnu upotrebu |
Primjer: Dizajnerski sustavi poput GoogleMaterijalni dizajn i Atlassianov ADG omogućiti više timova da izgrade korisnička sučelja s jedinstvenim principima i identitetom robne marke.
23) Objasnite koncept mikro front-endova.
Mikro front-endovi (MFE-ovi) primijeniti principe mikroservisa na prednji sloj. Umjesto jednog monolitnog korisničkog sučelja, aplikacije su podijeljene u manje, neovisne module koji se razvijaju i implementiraju zasebno.
Prednosti:
- omogućuje neovisno raspoređivanje od strane različitih timova.
- Poboljšava skalabilnost i održivost.
- omogućava tehnološka raznolikost (npr. React za jedan modul, Vue za drugi).
| Aspekt | Monolitno korisničko sučelje | Mikro prednji dio |
|---|---|---|
| razvoj | Sve odjednom | Nezavisan |
| Skaliranje | Globalan | Po značajki |
| Autonomija tima | Nizak | visok |
Primjer: Web-mjesto za e-trgovinu može imati odvojene mikro front-endove za popis proizvoda, blagajnu i profil - svakim upravljaju različiti timovi i integriran je putem orkestracijske razine.
24) Kako optimizirate pristup webu za čitače zaslona?
Optimizacija pristupačnosti uključuje osiguravanje da pomoćne tehnologije mogu pravilno interpretirati i komunicirati s sučeljem.
Ključne strategije:
- Koristiti semantički HTML (
<header>,<nav>,<main>). - Uključivati ARIA oznake gdje je potrebno (
aria-label,aria-hidden). - Održavati navigacija tipkovnicom i vidljive indikatore fokusa.
- Predvidjeti alt tekst za slike i Oznake za unose u obrasce.
Primjer:
<button aria-label="Open settings menu"> <svg>...</svg> </button>
Poboljšanja pristupačnosti ne samo da zadovoljavaju zakonske standarde (WCAG 2.1, ADA), već i poboljšavaju SEO i upotrebljivost za sve korisnike.
25) Kako osiguravate sigurnost u front-end kodu?
Razvojni programeri korisničkog sučelja moraju zaštititi klijentsku stranu od ranjivosti koje ugrožavaju korisničke podatke ili integritet aplikacije.
Uobičajene prijetnje i rješenja:
| Prijetnja | Tehnika prevencije |
|---|---|
| Skripta na više stranica (XSS) | Izbjegni korisnički unos, koristi Pravila sigurnosti sadržaja |
| Krivotvorenje zahtjeva na različitim mjestima (CSRF) | Uključi tokene u API zahtjeve |
| Nesigurna pohrana | Izbjegavajte pohranjivanje osjetljivih podataka u lokalnoj pohrani |
| Jahanje klikova | Koristite zaglavlja predaka okvira |
Primjer: Nikada ne ubacujte korisnički generirani sadržaj izravno u DOM pomoću innerHTMLUmjesto toga, koristite sigurno renderiranje putem biblioteka predložaka ili okvira.
Sigurnosna higijena ključna je za očuvanje povjerenja i usklađenosti.
26) Što je kritični put renderiranja u optimizaciji web performansi?
The Kritični put renderiranja (CRP) je niz koraka koje preglednik poduzima za prikaz sadržaja na zaslonu. Uključuje:
- HTML parsiranje → DOM konstrukcija
- CSS parsiranje → CSSOM konstrukcija
- Kombiniranje oba → Render stablo
- Raspored i bojanje
Za optimizaciju:
- Umanjiti kritični resursi (npr. skripte za blokiranje CSS-a).
- Koristiti odgoda/asinkroniziranje za JavaSkripta.
- U redu kritični CSS za brže renderiranje iznad pregiba.
- Komprimirajte i unaprijed učitajte ključne resurse.
| Tehnika | Korist |
|---|---|
| Minimizirajte i grupirajte resurse | Manje mrežnih zahtjeva |
| Odloženo učitavanje slika ispod preklopa | Smanjeno početno opterećenje |
| Koristite CDN | Brža globalna dostava |
Optimizacija CRP-a poboljšava percipirano vrijeme učitavanja i angažman korisnika - što je ključno za metrike Core Web Vitals.
27) Koji čimbenici utječu na performanse front-end aplikacije?
Nekoliko međusobno povezanih čimbenika određuje performanse prednjeg dijela:
- Kašnjenje mreže – teški skripti, neoptimizirani resursi.
- Složenost DOM-a – prekomjerni elementi usporavaju renderiranje.
- Učestalost ponovnog točenja i ponovnog bojenja – uzrokovano čestim promjenama rasporeda.
- JavaVrijeme izvršavanja skripte – dugi zadaci blokiraju nit korisničkog sučelja.
- Curenje memorije – neočišćeni slušatelji ili zatvarači.
Strategije optimizacije:
- Koristiti dijeljenje koda i lijeno učitavanje.
- Implementirati zahtjev za predmemoriranje.
- Smanjiti ponovno renderira u okvirima (React-ova memoizacija).
- Optimizirajte formati slika (WebP, AVIF).
Primjer: Slika od 1 MB smanjena na 100 KB pomoću WebP-a drastično smanjuje vrijeme učitavanja na mobilnim mrežama.
28) Objasnite razliku između progresivnih web aplikacija (PWA) i jednostraničnih aplikacija (SPA).
| Aspekt | PWA | SPA |
|---|---|---|
| Izvanmrežna podrška | Da (Serviceri) | ograničen |
| Montaža | Može se instalirati na uređaj | Samo za preglednik |
| Push obavijesti | Podržano | Obično ne |
| Izvođenje | Brže nakon keširanja | Brzo, ali ovisi o mreži |
| Primjer | Twitter Lite | Gmail |
Objašnjenje: A PWA kombinira web i izvorna iskustva aplikacija koristeći tehnologije poput servisnih radnika, manifesta i API-ja za predmemoriju.
An SPA učitava jednu HTML ljusku i dinamički ažurira sadržaj putem JavaSkripta (React, Angular).
Oba poboljšavaju performanse, ali PWA-ovi nude šire mogućnosti rada izvan mreže i instalacije.
29) Kako upravljate obrascima i validacijom u modernim korisničkim sučeljima?
Upravljanje obrascima osigurava ispravnost, upotrebljivost i integritet podataka.
Pristupi:
- Izvorna HTML5 validacija (
required,pattern,typeatributi). - Biblioteke temeljene na okvirima:
React Hook Form(Reagiraj)FormikAngular Reactive Forms
Vrste validacije:
| Tip | Primjer |
|---|---|
| Na strani klijenta | Provjere prije slanja |
| Na strani poslužitelja | Potvrđuje se na pozadini |
| asinhron | Potvrđuje putem API-ja (npr. dostupnost korisničkog imena) |
Primjer (React Hook obrazac):
<input {...register("email", { required: true, pattern: /^\S+@\S+$/i })} />
Biblioteke obrazaca poboljšavaju produktivnost programera uz održavanje pristupačnosti i performansi.
30) Što su web komponente i kako se razlikuju od tradicionalnih okvira?
Web komponente su elementi korisničkog sučelja za višekratnu upotrebu izgrađeni pomoću standardnih API-ja preglednika bez ovisnosti o okviru. Sastoje se od:
- Prilagođeni elementi (
<my-card>), - Sjena DOM za enkapsulaciju stila,
- HTML predloške za strukturu.
| svojstvo | Web komponente | Komponente okvira |
|---|---|---|
| Standardizacija | Izvorni API-ji preglednika | Ovisno o okviru |
| Opseg stila | Sjena DOM | Razlikuje se ovisno o okviru |
| Pokretnost | visok | ograničen |
| ovisnosti | nijedan | Potrebno je okruženje za izvođenje okvira |
Primjer:
<user-profile name="John"></user-profile>
Omogućavanje web komponenti kompatibilnost između različitih okvira — omogućujući UI bibliotekama besprijekornu integraciju s Angularom, Reactom ili jednostavnim JS-om.
🔍 Najčešća pitanja za intervju za UI developere sa stvarnim scenarijima i strateškim odgovorima
1) Kako pristupate izgradnji korisničkog sučelja koje uravnotežuje estetiku i upotrebljivost?
Očekivano od kandidata: Intervjuer želi razumjeti vaš proces dizajnerskog razmišljanja i kako dajete prioritet korisničkom iskustvu u odnosu na vizualni dizajn. Traže strukturirano razmišljanje i donošenje odluka usmjereno na korisnika.
Primjer odgovora: „U svojoj prethodnoj ulozi, dizajnu korisničkog sučelja pristupio sam počevši od korisničkih potreba i zahtjeva za pristupačnošću prije nego što sam se usredotočio na vizualni stil. Usko sam surađivao s UX dizajnerima kako bih osigurao intuitivan raspored, koristeći dosljedan razmak, sustave boja i tipografiju za stvaranje vizualno privlačnog sučelja koje nije ugrožavalo upotrebljivost.“
2) S kojim front-end tehnologijama i okvirima se najviše osjećate ugodno i zašto?
Očekivano od kandidata: Anketar procjenjuje vašu tehničku osnovu i koliko se vaše vještine podudaraju s tehnološkim paketom tima.
Primjer odgovora: „Najudobnije mi je s HTML-om, CSS-om, JavaSkripta i moderni okviri poput Reacta. Na prethodnoj poziciji sam preferirao React jer njegova arhitektura temeljena na komponentama poboljšava mogućnost ponovne upotrebe, održavanje i performanse pri izgradnji složenih korisničkih sučelja.
3) Kako osiguravate da je vaše korisničko sučelje responzivno na različitim uređajima i veličinama zaslona?
Očekivano od kandidata: Žele procijeniti vaše razumijevanje principa responzivnog dizajna i tehnika implementacije u stvarnom svijetu.
Primjer odgovora: „Osiguravam responzivnost korištenjem fleksibilnih izgleda kao što su CSS Grid i Flexbox, zajedno s medijskim upitima za točke prekida. Na prethodnom poslu redovito sam testirao sučelja na više uređaja i preglednika kako bih potvrdio dosljedno ponašanje i izgled.“
4) Opišite situaciju kada ste morali implementirati dizajn s kojim se osobno niste slagali.
Očekivano od kandidata: Anketar testira vašu profesionalnost, prilagodljivost i sposobnost suradnje sa zainteresiranim stranama.
Primjer odgovora: „U svojoj posljednjoj ulozi radio sam na dizajnu koji sam isprva smatrao vizualno preteškim. Međutim, implementirao sam ga kako je navedeno, prikupio povratne informacije korisnika nakon objavljivanja i podijelio prijedloge temeljene na podacima s dizajnerskim timom. Ovaj pristup doveo je do iterativnih poboljšanja bez narušavanja timske usklađenosti.“
5) Kako rješavate probleme s kompatibilnošću između preglednika?
Očekivano od kandidata: Traže vještine rješavanja problema i praktično iskustvo s nedosljednostima u preglednicima.
Primjer odgovora: „Kompatibilnost među preglednicima rješavam slijedeći web standarde, koristeći CSS resetiranja i testirajući u ranoj fazi razvoja. Također se oslanjam na alate poput konzola za razvojne programere preglednika i polyfillova kada je to potrebno kako bih osigurao dosljednu funkcionalnost.“
6) Možete li objasniti kako surađujete s UX dizajnerima i backend developerima?
Očekivano od kandidata: Anketar želi uvid u vaše komunikacijske vještine i sposobnost rada u međufunkcionalnim timovima.
Primjer odgovora: „Usko surađujem s UX dizajnerima pregledavajući wireframeove i dizajnerske sustave prije početka razvoja. S backend developerima koordiniram API con.“tracts i strukture podataka rano kako bi se osigurala glatka integracija između korisničkog sučelja i logike na strani poslužitelja.”
7) Kako optimizirati performanse korisničkog sučelja u velikoj web aplikaciji?
Očekivano od kandidata: Oni procjenjuju vaše razumijevanje aspekta performansi i skalabilnosti.
Primjer odgovora: „Optimiziram performanse korisničkog sučelja minimiziranjem ponovnog renderiranja, korištenjem lijenog učitavanja za komponente i resurse te smanjenjem nepotrebnih manipulacija DOM-om. Također pratim metrike performansi i rješavam uska grla kako aplikacija raste.“
8) Reci mi o situaciji kada si morao ispoštovati kratki rok za UI funkciju.
Očekivano od kandidata: Anketar želi procijeniti upravljanje vremenom, određivanje prioriteta i suočavanje sa stresom.
Primjer odgovora: „Snašao sam se s kratkim rokom tako što sam funkciju podijelio na manje zadatke i prvo dao prioritet osnovnim funkcionalnostima. Jasno sam komunicirao sa zainteresiranim stranama o kompromisima i usredotočio se na pravovremenu isporuku stabilnog i upotrebljivog sučelja.“
9) Kako uključujete pristupačnost u proces razvoja korisničkog sučelja?
Očekivano od kandidata: Žele osigurati da razumijete inkluzivni dizajn i zakonske ili etičke zahtjeve pristupačnosti.
Primjer odgovora: „Pristupačnost uključujem slijedeći WCAG smjernice, koristeći semantički HTML, osiguravajući odgovarajuće omjere kontrasta i podržavajući navigaciju tipkovnicom. Također testiram s čitačima zaslona kako bih potvrdio stvarna korisnička iskustva.“
10) Ako dionik zatraži promjenu korisničkog sučelja u zadnji čas koja utječe na izgled, kako biste odgovorili?
Očekivano od kandidata: Anketar testira vaše donošenje odluka, komunikaciju i fleksibilnost u stvarnim scenarijima.
Primjer odgovora: „Prvo bih procijenio utjecaj promjene na upotrebljivost i vremenske rokove, a zatim jasno objasnio implikacije dionicima. Ako je izvedivo, učinkovito bih implementirao promjenu ili predložio alternativu koja ispunjava njihov cilj bez uvođenja nepotrebnog rizika.“

