Predstavenie BUXUSu 7.0 - druhá časť: Laravel a nástroje pre vývojárov

V minulom článku o BUXUSe 7.0 sme predstavili novú modulovú architektúru a redizajn BUXUSu. Teraz sa zameriame na technické zmeny. Okrem nového frameworku sme pripravili viacero nástrojov a materiálov pre vývojárov.
Článok popisuje zmeny, ktoré sa dotýkajú najmä programátorov. Odporúčame ho prečítať aj eshoperom a správcom webov, pretože vám rozšíri obzory o tom, čo všetko je k vývoju webu potrebné.
Vďaka novinkám v BUXUSe je jednoduchšie než kedykoľvek predtým vpustiť “cudzích” programátorov do vášho BUXUSu. Takže si môžete najať vlastných programátorov a vyvíjať s nimi svoj web na BUXUSe.

Laravel

Hneď na úvod článku preberme najnáročnejšiu zmenu. Bola najťažšia na realizáciu a aj na vysvetlenie “normálnemu” človeku (tzn. takému, pre ktorého 214 znamená dvestoštrnásť a nie 11010110). BUXUS je naprogramovaný v jazyku PHP. To sú tie kódy, ktoré by ste videli, ak by ste našim programátorom pozerali ponad plece pri práci. V týchto PHP kódoch je napísaná veľká časť súčasných webových aplikácií (používa ho napríklad aj Facebook alebo Wikipedia). Postupom času sme okrem čistého PHP stále viac používali jeho nadstavbu Zend Framework. Frameworky sú akési balíčky (alebo celé ekosystémy) kódov a vďaka nim vedia programátori dosiahnuť ten istý výsledok pre klienta s menším množstvom písania kódu. Dlhé roky nám Zend dobre slúžil, ale vo svete IT sa všetko rýchlo mení. A tak aj Zend Framework 1 prestal stačiť a vývojári Zendu prišli s novšou verziou - Zend Framework 2.
Pre nás to znamenalo, že buď necháme BUXUS postavený na neaktuálnom Zend-e 1 alebo musíme refaktorovať, teda vymeniť tie súčiastky, z ktorých je BUXUS vytvorený. Samozrejme, že chceme držať krok s dobou, ale rozhodli sme namiesto novšieho Zend-u nasadiť úplne iný framework - Laravel.

Prečo Laravel?

Naši programátori mali s Laravelom dobré skúsenosti z dvoch náročných projektov a ukázalo sa, že práca s ním je pre potreby našich projektov efektívnejšia než so Zend-om. V tom období nebol Laravel neovereným programátorským výstrelkom, ale stabilným produktom (aj keď stále relatívne novým) s rastúcou podporou v komunite PHP vývojárov. A obľúbenosť u programátorov je pre nás dôležitá, keďže stále rozširujeme vývojársky tím a BUXUS sprístupňujeme aj externým vývojárom. Takže sme zvolili Laravel a pustili sa do prekopávania základov BUXUSu.
Vymeniť súčiastky existujúceho systému s množstvom klientov je obrovská úloha. Naši programátori ale mali dlhoročné skúsenosti s postupným refaktoringom, takže to perfektne zvládli. Základ BUXUSu 7 je už napísaný v Laraveli, ale stále vie spolupracovať aj so staršími webmi a funkciami spravenými v Zend-e.
S odstupom času sa potvrdilo, že rozhodnutie prejsť na Laravel bolo správne.
V dobe, keď sme sa rozhodli, bola aktuálna verzia 4.0..
Odvtedy vývojári Laravelu vydali ďalšie 4 verzie (takže framework nezaspal, práve naopak, stále “rastie do krásy”) a Laravel sa teraz umiestňuje na prvých miestach v rebríčku obľúbenosti medzi vývojármi (prvé miesto tu a druhé miesto tu). Raketovo rastie aj jeho zastúpenie medzi hornými 10 tisícmi webov svetového internetu:

Zdroj https://trends.builtwith.com/framework/Laravel

Potvrdilo sa, že rozhodnutie prejsť na Laravel bolo správne. Nový BUXUS 7.0 je už postavený na najnovšom Laraveli 5.4.


Nástroje pre vývojárov - našich, vašich aj tretie strany

Okrem samotného BUXUSu sme spravili veľké pokroky aj s podpornou infraštruktúrou a s nástrojmi, ktoré uľahčujú vývoj webu.

Pár slov o vendor locku

Pri výbere dodávateľa pre web alebo eshop sa klienti často obávajú takzvaného vendor-locku, teda že ich nový web bude vedieť/môcť spravovať len firma, ktorá ho vytvorila, pretože nikto iný nebude mať prístup ku zdrojovému kódu, alebo s ním nebude vedieť pracovať.
Táto obava má svoje opodstatnenie, pretože ak investujete tisíce až desaťtisíce do nového webu, potom si nesadnete s dodávateľom, tak kvôli vendor locku nemôžete dať web programovať nikomu inému, aj keď ste nespokojní s kvalitou, rýchlosťou alebo cenami. Jediné, čo vám zostáva, je zaťať zuby alebo “vysoliť” ďalšie peniaze na nový web od iného dodávateľa.
Vendor lock si najčastejšie spájame s tým, že dodávateľ na základe svojej licencie a autorských práv nedá klientovi plný prístup ku kódu a tým pádom on jediný môže k svojmu dielu poskytovať support. Klienti, ktorí už sa takto popálili, potom preferujú open-source systémy, pretože veria, že tak sa pred závislosťou od jedného dodávateľa ochránia.
Open-source síce znamená, že zdrojový kód je otvorený, takže akýkoľvek programátor si vie kódy prečítať. Ale nezaručuje to, že sa v nich bude vedieť vyznať tak, aby mohol váš web efektívne spravovať a prebrať od pôvodného dodávateľa. Záleží od komplexnosti a od toho, či si pôvodný dodávateľ dal extra námahu s tým, aby bol kód čistý, prehľadný a dobre zdokumentovaný. A, povedzme si otvorene, ak ste narazili na nekvalitného dodávateľa, ktorého chcete vymeniť, tak práve pri takom je veľké riziko, že jeho kód bude bordel, nebude nápomocný pri zaučení niekoho cudzieho a budete mať problém nájsť programátorov, ktorí sa v tom za týchto okolností budú chcieť vŕtať.
Aby ste sa tomu vyhli, máme jedno odporúčanie, ktoré sa ľahko povie a ťažko realizuje - vybrať si dobrého dodávateľa. Open-source dáva vo všeobecnosti väčšie šance na zmenu dodávateľa, ale nie je toho zárukou. A naopak, proprietárne systémy (ako napr. BUXUS) neznamenajú automaticky, že musíte robiť len s jedným dodávateľom.
V ui42 sme licenčné podmienky BUXUSu mali odjakživa nastavené tak, že klient si mohol programovanie webu zobrať kompletne k sebe. S BUXUSom 7 sme vyvinuli aj ďalšie nástroje, ktoré uľahčujú zaučenie a prácu našich aj externých vývojárov.

Nástroje pre efektívnejšiu prácu s BUXUSom pre programátorov

Composer a Packagist

V minulom článku sme vysvetlili, že BUXUS už nie je jedna veľká aplikácia, ale mnoho samostatných modulov. V programátorskom svete sa im hovorí balíčky alebo packages (sú skoro to isté ako moduly) a žijú v našom Packagiste. Tam si programátor vie ľahko dohľadať, aké balíčky má k dispozícii, v Readme si pozrie, ako fungujú, v Changelogu zistí posledné zmeny a potom ich vďaka Composeru vie jedným príkazom nainštalovať aj na svoj web (a ďalej upraviť podľa potrieb).

Changelog

Každý balíček má svoj zoznam zmien. Tie všetky ťahá k sebe spoločný nástroj Changelog, kde si ich môžete pozrieť pekne pokope aj s možnosťou filtrácie.

Registrátor a mesačný report zmien

Aby programátor nemusel stále kontrolovať, aké nové verzie balíčkov pribudli, máme nový nástroj - registrátor. Vďaka nemu vidíme, aké balíčky a v akých verziách má každý klient na webe nasadené a programátorovi (prípadne aj projektovému manažérovi) registrátor pošle e-mail vždy, keď vyjde nová verzia jedného z týchto balíčkov. Projektový tím sa rozhodne, kedy ktoré zmeny nasadí na web a raz za mesiac pošleme všetkým našim klientom report s novinkami v BUXUSe a zoznamom zmien, ktoré boli nasadené na klientov web.

Programátorská Wiki

Ku každému novému modulu píšeme dokumentáciu a návod pre programátorov (návody k existujúcim modulom postupne revidujeme a vylepšujeme). Návody žijú v nástroji Phabricator, ku ktorému dávame prístup našim aj externým vývojárom. Jedna sekcia wiki je venovaná vysvetleniu konkrétnych balíčkov a naviac píšeme komplexné návody, ktoré programátora prevedú úlohou od A do Z. Napríklad, pre import katalógu produktov musí vývojár nakonfigurovať typy produktov, vlastnosti, navrhnúť hierarchiu katalógu, potom podľa toho napríklad nakonfigurovať modul číselníky a nakoniec modul import.


Zaujal vás BUXUS 7?

Všetky nové weby a eshopy robíme teraz už štandardne v BUXUSe 7.0. Pri starších weboch postupne oslovujeme klientov, aby sme spoločne dohodli a pripravili upgrade na najnovšiu verziu. Zároveň popri tom vylepšujeme celú infraštruktúru okolo BUXUSu a pripravujeme nové moduly podľa potrieb našich klientov.

Chcete na BUXUSe vyvíjať svoj projekt s vlastnými (alebo externými) programátormi?

Kontaktujte nás a porozprávame sa o vašich potrebách a našich možnostiach, ako vám v tom vieme pomôcť. Okrem samotného systému a dokumentácie vás, samozrejme, vieme zaškoliť a v prípade záujmu poskytovať aj dlhodobobé konzultácie, support a aj programátorské služby. Týmto spôsobom už spolupracujeme s trnavskou firmou E-go, s vlastným tímom Dedoles-u, vývojármi Slovenskej Technickej Univerzity a radi rozšírime rodinu BUXUS vývojárov o ďalšie firmy.

Podrobnejšie informácie vám veľmi rád poskytnem ja - Peter Jakuš, produktový manažér BUXUSu email: peter.jakus@ui42.com, alebo Katarína Tallová, obchodná manažérka ui42 email: katarina.tallova@ui42.com.