V minulém článku o BUXUSe 7.0 jsme představili novou modulovou architekturu a redesign BUXUSu. Teď se zaměříme na technické změny. Kromě nového frameworku jsme připravili více nástrojů a materiálů pro vývojáře.
Článek popisuje změny, které se dotýkají zejména programátorů. Doporučujeme ho přečíst i eshoperům a správcům webů, protože vám rozšíří obzory o tom, co všechno je k vývoji webu potřebné.
Díky novinkám v BUXUSe je jednodušší než kdykoliv předtím vpustit “cizí” programátory do vašeho BUXUSu. Takže si můžete najmout vlastní programátory a vyvíjet s nimi svůj web na BUXUSe.
Laravel
Hned na úvod článku proberme nejnáročnější změnu. Byla nejtěžší na realizaci a i na vysvětlení “normálnímu” člověku (tzn. takovému, pro kterého 214 znamená dvěstěčtrnáct a ne 11010110). BUXUS je naprogramovaný v jazyku PHP. To jsou ty kódy, které byste viděli, kdybyste našim programátorům koukali přes rameno při práci. V těchto PHP kódech je napsaná velká část současných webových aplikací (používá ho například i Facebook nebo Wikipedia). Postupem času jsme kromě čistého PHP stále více používali jeho nadstavbu Zend Framework. Frameworky jsou jakési balíčky (nebo celé ekosystémy) kódů a díky nim vědí programátoři dosáhnout stejného výsledku pro klienta s menším množstvím psaní kódu. Dlouhá léta nám Zend dobře sloužil, ale ve světě IT se všechno rychle mění. A tak i Zend Framework 1 přestal stačit a vývojáři Zendu přišli s novější verzí - Zend Framework 2.
Pro nás to znamenalo, že buď necháme BUXUS postavený na neaktuálním Zend-e 1 nebo musíme refaktorovat, tedy vyměnit ty součástky, z kterých je BUXUS vytvořen. Samozřejmě, že chceme držet krok s dobou, ale rozhodli jsme místo novějšího Zend-u nasadit úplně jiný framework - Laravel.
Proč Laravel?
Naši programátoři měli s Laravelom dobré zkušenosti ze dvou náročných projektů a ukázalo se, že práce s ním je pro potřeby našich projektů efektivnější než se Zend-em. V tom období nebyl Laravel neověřeným programátorským výstřelkem, ale stabilním produktem (i když stále relativně novým) s rostoucí podporou v komunitě PHP vývojářů. A oblíbenost u programátorů je pro nás důležitá, když stále rozšiřujeme vývojářský tým a BUXUS zpřístupňujeme i externím vývojářům. Takže jsme zvolili Laravel a pustili se do překopávání základů BUXUSu.
Vyměnit součástky existujícího systému s množstvím klientů je obrovská úloha. Naši programátoři ale měli dlouholeté zkušenosti s postupným refaktoringem, takže to perfektně zvládli. Základ BUXUSu 7 je už napsaný v Laraveli, ale stále ví spolupracovat i se staršími weby a funkcemi udělanými v Zend-e.
S odstupem času se potvrdilo, že rozhodnutí přejít na Laravel bylo správné.
V době, kdy jsme se rozhodli, byla aktuální verze 4.0..
Od té doby vývojáři Laravelu vydali další 4 verze (takže framework nespí, právě naopak, stále “rostou do krásy”) a Laravel se teď umisťuje na prvních místech v žebříčku oblíbenosti mezi vývojáři (první místo tu a druhé místo tu). Raketově roste i jeho zastoupení mezi horními 10 tisíci weby světového internetu:
Zdroj https://trends.builtwith.com/framework/Laravel
Potvrdilo se, že rozhodnutí přejít na Laravel bylo správné. Nový BUXUS 7.0 je už postavený na nejnovějším Laraveli 5.4.
Nástroje pro vývojáře - naše, vaše i třetí strany
Kromě samotného BUXUSu jsme udělali velké pokroky i s podpůrnou infrastrukturou a s nástroji, které usnadňují vývoj webu.
Pár slov o vendor locku
Při výběru dodavatele pro web nebo eshop se klienti často obávají takzvaného vendor-locku, tedy že jejich nový web bude vědět/moci spravovat jen firma, která ho vytvořila, protože nikdo jiný nebude mít přístup ke zdrojovému kódu, nebo s ním nebude vědět pracovat.
Tato obava má své opodstatnění, protože když investujete tisíce až desetitisíce do nového webu, pak si nesednete s dodavatelem, tak kvůli vendor locku nemůžete dát web programovat nikomu jinému, i když jste nespokojeni s kvalitou, rychlostí nebo cenami. Jediné, co vám zbývá, je zatnout zuby nebo “vysolit” další peníze na nový web od jiného dodavatele.
Vendor lock si nejčastěji spojujeme s tím, že dodavatel na základě své licence a autorských práv nedá klientovi plný přístup ke kódu a tím pádem on jediný může k svému dílu poskytovat support. Klienti, kteří už se takto popálili, pak preferují open-source systémy, protože věří, že tak se před závislostí na jednom dodavateli ochrání.
Open-source sice znamená, že zdrojový kód je otevřený, takže jakýkoliv programátor si kódy může přečíst. Ale nezaručuje to, že se v nich bude vědět vyznat tak, aby mohl váš web efektivně spravovat a převzít od původního dodavatele. Záleží na komplexnosti a od toho, jestli si původní dodavatel dal extra námahu s tím, aby byl kód čistý, přehledný a dobře zdokumentovaný. A, řekněme si otevřeně, když jste narazili na nekvalitního dodavatele, kterého chcete vyměnit, tak právě u takového je velké riziko, že jeho kód bude bordel, nebude nápomocný při zaškolování někoho cizího a budete mít problém najít programátory, kteří se v tom za těchto okolností budou chtít vrtat.
Aby jste se tomu vyhnuli, máme jedno doporučení, které se lehce řekne a těžko realizuje - vybrat si dobrého dodavatele. Open-source dává obecně větší šance na změnu dodavatele, ale není toho zárukou. A naopak, proprietární systémy (jako např. BUXUS) neznamenají automaticky, že musíte dělat jen s jedním dodavatelem.
V ui42 jsme licenční podmínky BUXUSu měli odjakživa nastavené tak, že klient si mohl programování webu vzít kompletně k sobě. S BUXUSem 7 jsme vyvinuli i další nástroje, které usnadňují zaškolování a práci našich i externích vývojářů.
Nástroje pro efektivnější práci s BUXUSem pro programátory
Composer a Packagist
V minulém článku jsme vysvětlili, že BUXUS už není jedna velká aplikace, ale mnoho samostatných modulů. V programátorském světě se jim říká balíčky nebo packages (jsou skoro to samé jako moduly) a žijí v našem Packagistu. Tam si programátor může snadno dohledat, jaké balíčky má k dispozici, v Readme si prohlédne, jak fungují, v Changelogu zjistí poslední změny a pak je díky Composeru může jedním příkazem nainstalovat i na svůj web (a dále upravit podle potřeb).
Changelog
Každý balíček má svůj seznam změn. Ty všechny táhne k sobě společný nástroj Changelog, kde si je můžete prohlédnout pěkně pohromadě i s možností filtrování.
Registrátor a měsíční report změn
Aby programátor nemusel stále kontrolovat, jaké nové verze balíčků přibyly, máme nový nástroj - registrátor. Díky němu vidíme, jaké balíčky a v jakých verzích má každý klient na webu nasazené a programátorovi (případně i projektovému manažerovi) registrátor pošle e-mail vždy, když vyjde nová verze jednoho z těchto balíčků. Projektový tým se rozhodne, kdy které změny nasadí na web a jednou za měsíc pošleme všem našim klientům report s novinkami v BUXUSe a seznamem změn, které byly nasazeny na klientův web.
Programátorská Wiki
K každému novému modulu píšeme dokumentaci a návod pro programátory (návody k existujícím modulům postupně revidujeme a vylepšujeme). Návody žijí v nástroji Phabricator, ke kterému dáváme přístup našim i externím vývojářům. Jedna sekce wiki je věnovaná vysvětlení konkrétních balíčků a navíc píšeme komplexní návody, které programátora provedou úkolem od A do Z. Například, pro import katalogu produktů musí vývojář nakonfigurovat typy produktů, vlastnosti, navrhnout hierarchii katalogu, potom podle toho například nakonfigurovat modul číselníky a nakonec modul import.
Zaujal vás BUXUS 7?
Všechny nové weby a eshopy děláme teď už standardně v BUXUSe 7.0. U starších webů postupně oslovujeme klienty, abychom společně dohodli a připravili upgrade na nejnovější verzi. Zároveň vedle toho vylepšujeme celou infrastrukturu kolem BUXUSu a připravujeme nové moduly podle potřeb našich klientů.
Chcete na BUXUSe vyvíjet svůj projekt s vlastními (nebo externími) programátory?
Kontaktujte nás a probereme se o vašich potřebách a našich možnostech, jak vám v tom můžeme pomoci. Kromě samotného systému a dokumentace vás, samozřejmě, můžeme zaškolit a v případě zájmu poskytovat i dlouhodobé konzultace, support a i programátorské služby. Tímto způsobem už spolupracujeme s trnavskou firmou E-go, s vlastním týmem Dedoles-u, vývojáři Slovenské Technické Univerzity a rádi rozšíříme rodinu BUXUS vývojářů o další firmy.