Iako “vani”, naziv radnog mesta Front-end web developer se već ustoličio, kod nas je još uvek relativno redak slučaj da neko u konkursu za posao napiše da traži osobu za baš to radno mesto. Uglavnom se konkursi raspisuju za radna mesta web dizajner i web programer (developer).
Nekada pre, kada Web kao skup tehnologija nije bio tako širok i kompleksan jedna osoba je mogla “sve” sama da obavi, sto bi značilo dizajn, programiranje/kodiranje i održavanje. A onda smo sa razvojem dinamičkih web sajtova dobili podelu na web dizajnere i programere.
Tadašnji web dizajneri su imali zadatak od osmišljavanja vizuelnog identiteta sajta (logo, boje i sl), preko projektovanja korisničkog interfejsa do samog kodiranja u HTML-u i CSS-u (a ponekad i JavaScript-u mada se to većinom svodilo na čisto kopiranje ili doradu gotovih skriptova).
Web 2.0, ma koliko izlizana ta reč bila, je uneo još više kompleksnosti u razvoj web sajtova a tu pre svega mislim na AJAX, manipulaciju DOM-om (tj samim elementima stranice), animacije pomoću JavaScript i slično.
Pored toga, validnost stranica sto se tiče samog XHTML i CSS koda, kao i njihova semantička ispravnost i cross-browser kompatibilnost su postajali sve bitniji.
Sve to zajedno je dovelo do cepanja prethodne definicije radnog mesta web dizajner na dva nova radna mesta: web dizajner i front-end web developer.
Iako i dizajneri imaju unutrašnje podele kao što je na primer UI dizajner, to nije tema ovog članka nego opis čime se bavi i šta sve treba da zna jedan front-end web developer.
Ovo je kratki pregled tehnologija i jezika koji jedan front-end developer mora da poznaje…
XHTML
Da počnemo sa osnovama: pre svega odlično poznavanje i veština pisanja semantički ispravnog XHTML koda, važno je da se za svaki element na web stranici upotrebi odgovarajući tag, kako bi se jasno odredio smisao tog elementa.
Takođe neophodno je poznavanje tipova elemenata (npr block, inline…), pravila po kojima se pišu i ugneždavaju.
XHTML je uveo stroga pravila pisanja prema XML standardima.
CSS
Tek kada je obezbeđena solidna osnova u pravilno formatiranom kodu, prelazimo na definisanje izgleda tj prezentaciju same web stranice. To postižemo sa CSS kodom.
Veoma je važno izvršiti razdvajanje sloja prezentacije od sloja podataka, tj ne mešati XHTML i CSS kod nego ga pisati u odvojenim fajlovima.
Više o podeli web stranice naslojeve možete pročitati u članku Tri sloja Web stanice.
CSS proizveden od strane front-end developera treba da bude validan, po mogućnosti bez hack-ova i filtera, da ispravno radi na bar dve poslednje verzije aktuelnih browsera (FireFox, Opera, Safari, Chrome, Internet Explorer).
JavaScript
JavaScript je skriptni jezik koji se izvršava na samom browser-u.
Između ostalog, omogućava dinamičko menjanje pojedinih delova stranice od njihove pozicije, izgleda do samog sadržaja.
Ostale mogućnosti se tiču uslovne logike i petlji, manipulacija i pretraživanje podaka (RegExp),
U kombinaciji sa DOM-om (koji predstavlja HTML stranicu u obliku stabla) moguće je pristupiti bilo kojem elementu stranice radi manipulacije njime.
A kada u pomoć pozovemo AJAX, dobijamo napredne web aplikacije koje mogu da povlače nove podatke sa servera bez potrebe za ponovnim učitavanjem cele stranice.
JavaScript je omogućio Web kakav danas poznajemo: dinamičan, animiran, prilagodljiv, susretljiv i sve ostale osobine koje krase Web 2.0 sajtove.
Ostalo
Pored navedenog poželjno je i barem osnovno poznavanje: XML i XSLT jezika.
Takođe, dobro poznavanje navedenih tehnologija nije dovoljno samo po sebi. Web se strahovito brzo razvija jer nove tehnologije, trendovi i tehnike se pojavljuju svaki dan.
CSS tehnike kao što su Sliding doors, CSS Sprites, Faux Columns, Image replacements i druge uveliko unapređuju mogućnosti i funkcionalnost web stranica.
Dok JavaScript biblioteke kao što su jQuery, MooTools, Scriptaculous i ostale, olakšavaju i ubrzavaju pisanje interaktivnijih web sajtova koji se dobro izvršavaju na svim browser-ima.
Samo kodiranje za različite vrste browser-a, njihovih verzija kao i operativne sisteme na kojima se oni pokreću je posebna priča koja izrazito otežava život web developerima.
U jednom od narednih članaka ću se osvrnuti na pakao cross-browser razvoja web sajtova.
Samo da napomenem da je situacija danas mnogo bolje što se tiče XHTML-a pa i CSS-a, dok je JavaScript podrška u nekim browserima (hint: M$) još uvek u debelom zaostatku.


