Posuňme Definici “Front-End Developera”

Jak se kód přesouvá ze serveru do prohlížeče, role vývojářů se mění. Platí stále, že veškerý kód běžící v prohlížeči je front-end? Nad tím se zamýšlel Matthew Gertner. Překlad jeho článku vám dnes přinášíme.

V anglickém originále zveřejněno na blog.salsitasoft.com.

Jak se kód přesouvá ze serveru do prohlížeče, role vývojářů se mění. Před nástupem webu nebyl vývoj rozdělen na front-end a back-end. Byli zde C programátoři, Pascal programátoři a FORTRAN programátoři, ale jazyk, který používali, byl spíše detail než podstata jejich kariéry.

Pak přišel web a s ním nová komunita vývojářů, kteří již nepsali tradiční imperativní kód. Zpočátku to byly šablony v jazycích jako PHP a ColdFusion (a poté JSP a ASP.net) pro generování HTML, které bylo následně renderováno prohlížečem. Přestože web developeři technicky vzato kódovali na serveru, rozdělení front-endu a back-endu bylo na obzoru.

V dalším století, dvě významné inovace zrychlily tento trend: Ajax a CSS. Ajax umožnil přesunout velkou část logiky do prohlížeče, zatímco server se stará o předávání a updatování dat skrz SOAP nebo REST. Toto nové paradigma dalo vzniknout jQuery, což je v podstatě nový jazyk nahrazující vanilla JavaScript, vytvořený zejména pro potřeby frontendistů. Nekompatibilita prohlížečů už nebyla takovým problémem, mizerné DOM API (včetně prapodivného XMLHttpRequest) bylo nahrazeno něčím rozumným a built-in funkce umožnovali lehce vytvářet poutavé animace a přechody.

Následující verze CSS zase umožnily vytvářet ješte více sofistikované layouty, ale také zvýšily laťku pro frontendisty. To vedlo k ještě větší specializaci a najednou formální vzdělání v informatice a přehled v algoritmech, system designu a imperativních jazycích už nebylo potřeba k tomu být profesionální vývojář. Pro tyto pozice bylo naopak důležité znát základy user experience a dobře ovládat HTML a CSS. Schizma mezi front-endem a back-endem bylo kompletní.

V posledních letech je situace ještě více nepřehledná. Již neplatí, že veškerá práce s tězkými břemeny se děje na serveru. Trend single-page aplikací dal vzniknout knihovnám jako Angular a Ember, jejichž rozsah a ambice se spíše podobají back-end frameworkům. Společnosti, které nezaměstnávají kvalifikované frontendisty, najednou zjišťují, že nejsou sto zvládnout veškeré spletitosti nejnovějších front-end frameworků. Tito vývojáři mezitím z frustace prskají, že Angular má „problém“, protože byl navrhnut lidmi od back-endu, kteří prostě „nechápou“, jak se dělá front-end.

Tím nechci říct, že hackování Angularu je mimo schopnosti každého frontendisty. Vývojářské schopnosti nejsou diskrétní, ale dali by se zhruba načrtnout na následující kontinuum. (Toto není workflow diagram – v takovém případě by například UX předcházelo graphic design – ale spíše diagram zobrazující blízkost dvou schopností. Čím jsou blíže, tím spíše jednotlivec ovládá oba dva.)

Software-Development-Continuum-2

(Jen z téhle ilustrace asi dokážete odvodit, kde se na spektru nacházím já.) Z mojí zkušenosti téměr všichni vývojáři zabírají nějaký spojitý segment tohoto spektra. Samozřejmě existují vývojáři, ktěří ovládají široké pásy. A já je naprosto obdivuji. Taky jsem si jistý, že někdo vytváří světovou grafiku a zároveň kóduje ovladače pro Unix. Nicméně většina frontendistů, které jsem potkal, ovládá zhruba rozpětí mezi UX a jQuery, možná s kapkou designu nebo (non-jQuery) JavaScriptu. Vzestup webu výrazně zvetšil množinu potencionálních develperů tím, že otevřel dveře lidem s tímto profilem.

Front-End-Developers-3

Spousta práce, která se dříve děla na backendu, je nyní tlačena do single-page aplikací v prohlížeči. Najednou se od UX-až-jQuery vývojářú očekává hardcore programování. Mezitím to, co se děje na serveru, se stalo povětšinou nudné: autorizace API volání a poskytování dat z databáze skrz REST. Přístupy jako CouchApps se dokonce snaží zbavit serveru úplně a není nepravděpodobné, že se něco takového stane mainstreamem v příštích pár letech.

Takže problém není Angular. Samozřejmě, v rychle se měnícím světě JavaScriptu je trochu staromódní, ale myšlenka single-page aplikací s většinou logiky v prohlížeči je v zásadě zdravá. A problémem nejsou ani frontendtisti. Svět stále potřebuje vývojáře, kteří zvládnou uchopit požadavky zákazníka, pracovat s grafikou a orientovat se ve spletitých CSS standardech k vytvoření nádherných, responsivních a funkčních uživatelských rozhraní.

Opravdový problém je dojem, že veškerý kód běžící v prohlížeči je front-end. To již zřejmě neplatí. Buď najdeme jiný výraz pro UX₋až-jQuery, nebo předefinujme to, čemu říkáme „front-end“.

Nǎse společnost si vybrala to druhé. Rozdělujeme vývojáře do dvou skupin: front-end a full-stack. Front-end zahrnuje stejné dovednosti jako kdy předtím: UX, HTML, CSS a jQuery se špetkou Angular direktiv. Mistrovství v CSS je obzvláště důležité, jelikož modulární responsivní stylesheety se stali životně důležitými v moderních aplikacích. Full-stack inženýři pracují na všem ostatním, což často znamená vybudování komplexních architektur využívajících Angular nebo jiný „front-end“ framework s Node.js backendem, který nedělá o mnoho více než prosté poskytování dat.

Angular a další velké frameworky nejsou nepřátelé frontendistů. Jsou pouze posledním projevem dlouhotrvajícího trendu: kód se stěhuje ze serveru do prohlížeče. Definujme tedy „front-end“ jako části aplikace vztahující se k uživatelskému rozhraní místo prostého „kód, který běží v JavaScript VM“. Pokud našim developerům přidělíme úkoly takto, uvidíme, že nový svět sigle-page aplikací je velmi podobný tomu starému. Nic nového pod sluncem.

Salsita Software

Salsita Software je softwarová společnost, která se specializuje na vývoj komplexních moderních webových a mobilních aplikací. Sponzorujeme JavaScripting.com, komunitní portál, který pomáhá vývojářům hledat knihovny a frameworky pro JavaScript.

Autor: Matthew Gertner
Překlad: Luboš Turek

Komentáře: 16

Přehled komentářů

pp
standakaluza
standakaluza Re:
Matthew Gertner
Aleš Roubíček
vire Re:
EdaCZ Pěkný článek, ale bacha na hrubky :-)
EdaCZ Re: Pěkný článek, ale bacha na hrubky :-)
Pavel Tlustý vs. tenký klient
karel Re: Tlustý vs. tenký klient
Pavel Re: Tlustý vs. tenký klient
Dor
Marek Sirkovský Re:
Jerry7x
Mar Není pravda
Robert Nesouhlas
Zdroj: https://www.zdrojak.cz/?p=14894