Úvahy

Zamyšlení nad procesy

Poslední CzPodcast a následná diskuse na Twitteru mě vedla k nápadu popsat, jak fungujeme u nás ve Forrestu. Twitter je na hlubší myšlenky prostě moc omezený. Jsem si vědom toho, že to je risk, protože tohle je oblast citlivá a každý na ní má svůj názor. Nemám(e) patent na rozum a klidně si rád na Twitteru vyslechnu vaše komentáře. V článku spíš chci zmínit body / praktiky, které nám dávají smysl a považujeme je za funkční. Přes to všechno - chyby se stávají, a nic z toho, co tu budu psát nám nezaručuje bezchybné, bezproblémové a jedině ziskové projekty.

K čemu je nám užitečný komponentový web framework?

Nedávno jsem jedním svým twítem vyvolal menší diskusi ohledně toho, co nám dovoluje komponentový framework oproti tomu, čeho bychom byli schopni dosáhnout s jednoduchým MVC rámcem. Bohužel twitter mi nedává takovou možnost vyjádřit se a tak jsem chtěl důvody a výhody, které vidím v komponentách na frontendu, popsat trošku obšírněji v tomto článku.

Komponentový model na webové vrstvě přináší oproti MVC se "standardním" šablonovým systémem možnost elegantní znovupoužitelnosti částí, které se znovu použít dají. Pro mě jako vyznavače DRY je toto jedna z VELKÝCH výhod. Namítnete, že znovupoužitelnosti se přeci dá dosáhnout i v běžném šablonovacím systému - co třeba JSP tagy nebo Freemarkerová makra? Touhle cestou jsem si prošel a výsledek byl vždycky kostrbatý - obvykle se vám podaří znovupoužít buď vykreslovací šablonu nebo aplikační logiku, ale nikdy ne rozumně obojí.

Nastartování samospádu

Tento článek bude krapet filozofického ražení a nese zvláštní ale snad výstižný název, jak se pokusím vysvětlit dále. Nelehko se popisuje, co myslím tím výrazem „spád“ –  v češtině bych mohl použít i podobně zabarvená slova jako třeba bzukot, mravenčení nebo vzruch, z cizích jazyků bych si vypůjčil výrazy jako je trakce nebo momentum. Určitě pochopíte, co mám na mysli, když poukážu na živé a prosperující komunity, které známe z našeho okolí. Spádem myslím stav, kdy se okolo vás děje pořád něco nového, něco co vás obohacuje, nabíjí vás energií a vnitřně vás nutí se do víru také přidat.

Bonusy do každé rodiny

O radosti z releasů jsem tady na blogu psal už dříve a teď budu psát znovu, ale z jiného úhlu pohledu. Téměř po roce od začátku analytických prací jde do produkce jeden z mých největších dosavadních projektů - Ok Bonus portál pro slovenskou společnost DOXX. Podstatou projektu je poskytnout technické řešení maloobchodům a jednotlivcům pro tvorbu věrnostních (bonusových) programů, které si dokáží ušít samy sobě na míru.

Řešení je složeno z několika částí: desktopové aplikace postavené nad NetBeans RCP - tzv. terminálu, který bude provozován vedle pokladního systému a bude umožňovat zápis informací o nákupech a také čerpání odměn. Nákupy a bonusy se evidují na libovolnou NFC kartu, kterých v současné době po světě běhá více než dost (samozřejmě bude možné získat u provozovatelů systému i brandované Ok Bonus NFC karty). Druhou část představuje tzv. "platební brána", která zpracovává transakce ze všech desktopových klientů a spravuje zákaznické účty. Třetí část je potom webový portál Ok Bonus, který představuje prostředníka mezi zákazníky, obchodníky a platební branou. Na portále jsou k dispozici výpisy z účtů (tj. evidence nákupů, přidělování bonusů atd.), pro obchodníky potom rozhraní pro tvorbu bonusových programů, správu autorizovaných karet a terminálů, statistiky, e-shop a vyúčtování.

Úvaha nad horizontálním škálováním databází a těžkostmi s tím spojenými

Škálování databází je velké téma a já rozhodně nejsem takový odborník, abych tady rozebíral kdovíjaké detaily. Zcela jistě znáte termíny jako je sharding, o kterém psal Dagi už před 5 lety, popřípadě znáte termín partitioning, který nám nabízejí některé DB stroje "zadarmo" a jiné "za peníze". Alternativním způsobem horizontálního škálování je škálování pomocí sady replik pro čtení, o kterém lze uvažovat v případě, že máte aplikaci, které řádově méně zapisuje do databáze než z ní čte. Konkrétně se jedná o to, že máte několik databázových strojů v režimu MASTER-SLAVE(S), který se často nasazuje už jen z důvodu hot-backupu (tj. v případě výpadku master databáze je možné velmi rychle z repliky učinit nový master a pokračovat v běhu aplikace).

Partyzánskou stezkou

 Termín "partyzánština" znáte určitě taky. Je to přístup, kdy u věcí, které považujete za správné nebo prospěšné do budoucna, nečekáte na nějaké schválení "shora" nebo na to až získáte konsenzus okolí, ale prostě sednete a zkusíte je zrealizovat. Nevím jaké zkušenosti s tím máte vy, ale mě se takto podařilo docílit poměrně podstatných změn ve způsobu práce mojí i mého okolí. Myslím si, že partizánština z vás může udělat spokojenější vývojáře v úspěšnějších firmách.