
“Tata” Angulara o tome što bi danas napravio drugačije i kako instantno ubrzati web aplikacije
Nakon više od 15 godina u Googleu, gdje je inicijalizirao, osmislio i podigao temelje Angulara, jednog od najpoznatijih JavaScript frameworka, a potom usmjerio Googleovu kulturu prema test driven developmentu, Miško Hevery se otisnuo u samostalne vode...
Ove godine opet dolazi na Infobip Shift na kojem će predavati o “Resumable Applications” odnosno o pristupu koji može omogućiti iznimno brze web aplikacije čak i na sporijim uređajima i vezama. Ususret Shiftu uhvatila sam ga na razgovor o novim projektima, testiranju, Angularu i njegovim iskustvima od tranzistora do web frameworka!
Web koji radi brže tako što ne odrađuje što ne treba
Ako ste bili na prošlogodišnjem Infobip Shiftu vjerojatno ste imali priliku čuti njegovo predavanje koje se posvetilo brzini web stranica. Točnije, Hevery je prezentirao jedinstven pristup koji omogućuje renderiranje stranica na poslužitelju i odgađa preuzimanje koda sve dok korisnik ne stupi u interakciju s webom. Upravo time se trenutno bavi kao CTO u Builderu, platformi za vizualno dizajniranje CMS-ova.
Jedan od najvažnijih projekata koji je omogućio da Builder postane to što jest je Qwik – frontend framework koji olakšava razvoj iznimno brzih web aplikacija s odličnim TTI-jem (time-to-interactive), pojašnjava Hevery:
TTI je samo jedan od mnogih dobro poznatih pokazatelja. Fokus za Qwik je osigurati da krajnji korisnik dobije najbolje moguće korisničko iskustvo, koje se svodi na smanjenje količine posla koji preglednici moraju obaviti pri pokretanju. U praksi se to svodi na isporuku manje JavaScripta. Ali rješenje nije u tome da naše web stranice manje ovise o JavaScriptu, već u tome da imamo okvire koji su pametni da ne isporučuju sav JavaScript unaprijed.
Od tranzistora do web frameworka
Kako neki od vas znaju već, Miško Hevery ima prilično zavidno i šaroliko iskustvo IT stručnjaka koji je imao priliku raditi s električnim sklopovljem računala, potom s bazama, ali i u full-stack developmentu. Danas je primarno fokusiran na frontend web frameworke, a prijašnja iskustva dala su mu jedinstvenu perspektivu kad su u pitanju performanse web stranica.
JavaScript je jezik vrlo visoke razine i ponekad je teško razumjeti sve slojeve koji su zaduženi za podizanje naše web stranice. Poznavanje načina na koji te stvari funkcioniraju pomaže u dizajniranju sustava koji su “prijateljski nastrojeni” prema performansama. Dok je niska razina performansi važna, s Qwikom smo se usredotočili na postizanje performansi ne tako da budemo učinkovitiji (mikro-optimizacija), već preskačući velike dijelove posla (makro-optimizacija).
Još dok je radio aktivno na Angularu Miško se počeo dosta angažirati i oko test-driven developmenta. Ranih 2000-tih njegovo predavanje Psychology of Testing obišlo je nekoliko konferencija i kompanija poput Netflixa i eBayja. Danas je test-driven development prilično uvriježen u industriji (iako se svugdje ne prakticira u pravom smislu riječi), no u vrijeme kada je Hevery zagovarao takav pristup, tech zajednica nije bila toliko… otvorena.
Kad sam vodio to predavanje pokušao sam uvjeriti ljude u industriji da je testiranje korisno i da je to vještina kao i svaka druga. Ono što mi je bilo zanimljivo kod programera je to što bi se oni često hvalili nepoznavanjem određenog jezika, ali svi bi se pretvarali da znaju kako raditi testiranje, iako je to vještina koja se uči kao i svaka druga. Nadao sam se da ću pomoći ljudima da to shvate kako bi se više ljudi uključilo u testiranje.
Što bi zadržao, a što promijenio u vezi Angulara?
.@angular reunion. pic.twitter.com/a2KPhaXWNe
— Miško Hevery (Builder.io/Qwik) (@mhevery) September 1, 2022
Heveryju kao ocu Angulara – koji je jedan od najpoznatijih web frameworka danas, ali nad kojim React ipak preuzima primat – nezaobilazno mi je bilo postaviti i pitanje da može vratiti u vrijeme, što bi zadržao, a što promijenio.
Mislim da smo trebali napraviti bolji posao na poslužiteljskoj strani renderiranja. Smatram da su jaka strana Angulara uvijek bile web aplikacije s jednom stranicom, a ignorirale su se aplikacije s više stranica. Mislim da je fokusiranje na MPA-ove i SSR od samog starta moglo rezultirati boljom podrškom za iste.
“Ako imate samo čekić, sve izgleda kao čavao”
Hevery je iz Googla otišao 2021., a od tada je u potpunosti posvećen razvoju Builder platforme kojom su osmislili novi pristup headless CMS-u iliti sustavu za upravljanje sadržajem koji odvaja mjesto na kojem se sadržaj pohranjuje (“tijelo”) od mjesta na kojem se prikazuje (“glava”). Trenutno tim prostorom na tržištu dominiraju rješenja koja se fokusiraju na isporuku JSON-a, što programera zarobljava u beskrajnom ciklusu ažuriranja sheme i povezivanja podataka u aplikaciji kako bi se zadovoljile marketinške potrebe, objašnjava Hevery.
Osmislili smo Builder tako da programeru damo u potpunosti konstruirane komponente za njegov tehnološki stack (Angular, React, Qwick itd.), za što je uglavnom potrebna samo jedna integracija. Programer je onda slobodniji usredotočiti se na djelotvorniji rad, nego što je to ažuriranje JSON CMS poveznica.
S obzirom na to da i sam Builder kao vizualni “drag-and-drop” CMS olakšava programiranje, zanimalo me kakav je Heveryjev pogled na no-code/low code? Ističe kako ih vidi kao nadopunu programiranju.
Prilikom izrade aplikacije, neki dijelovi su više vizualizirani i bolje prilagođeni no-code/low code alatima, ali uvijek će postojati veoma zahtjevni tehnički dijelovi gdje će no-code/low code samo smetati. Dakle, s moje točke gledišta, ne radi se tu o promjeni načina na koji radimo stvari, već o povećanju broja alata koje imamo u kutiji s alatima. To omogućuje programeru da odabere pravi alat za posao. Uostalom, ako imate samo čekić, sve izgleda kao čavao.
Vidimo se 19. i 20. rujna na Shiftu!
Za kraj, upitala sam Heveryja da udijeli savjet svim web programerima i dizajnerima koji se trenutno bore s web performansama i korisničkim iskustvom (osim korištenja Buildera :))…
Usredotočite se na količinu JavaScripta! Čak i ako ne koristite Builder editor/CMS, možete integrirati naš besplatni partytown otvorenog koda (partytown.builder.io) na svoju stranicu. Partytown premješta skripte trećih strana – od analitike do web workera, oslobađajući glavni thread da bolje reagira na potrebe krajnjeg korisnika.
Želite li čuti još par programerskih savjeta i nekonvencionalnih stavova o razvoju softvera, svakako provjerite i intervjue s Charity Majors i Kitzeom. A ako vam to ne bude dovoljno, znate gdje će toga biti napretek – u Zadru, na Infobip Shiftu.
Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.
Pravila ponašanja
Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:
Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.
Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.
Komentari
Marko
07. 09. 2022. u 12:23 pm
Angular je prilično promašena tehnologija na zalazu koju je nadmašio React a obje tehnilogije je nadmašio Vue. Angular je za one koji jednostave stvari žele raditi na kompliciran način. To znači one kojima je ego važniji od efikasnosti tehnologije
Josip
10. 09. 2022. u 5:27 pm
Komentar sa glupom predrasudom bez ikakvog argumenta. I React i Angular su sasvim dobri razvojni alati, razlika je u tome što treba znati kad je dobro koristiti jedan, a kada drugi. React dozvoljava vrlo brz razvoj jednostavnijih aplikacija, dok za veće, kompleksne bi Angular bio vjerojatno bolji odabir s obzirom da sve potrebne stvari ima “in the box” bez potrebe dodavanja drugih librarya. Također Vue nikad nije nadmašio ni React ni Angular te je i dalje iza. https://gist.github.com/tkrotoff/b1caa4c3a185629299ec234d2314e190
Iz mojeg iskustva slični komentari kao tvoj su uvijek dolazili od ljudi kojima je Angular bio prekompliciran za shvatit i upotrebljavat.