Čajíček a Fishbush k tomu, aneb jak ŠpechFish vznikl

Vojtěch TmejVojtěch Tmej
3 min read

V rámci soutěže Tour de App se nám blíží docela rychle uzávěrka Nominačního kola, a to 17. ledna. Během tohoto kola měli soutěžící ve 2–3členných týmech napsat jednoduchou piškvorkovou platformu, která nabízí lokální hraní piškvorek a možnost řešit logické úlohy. Na celé zpracování měli necelé 3 měsíce.

Skrz toto kolo je doprovázely naše automatické testy, které spouštěli přes testovací systém. No jo, ale testy testují jen backend a frontend pouze po stránce toho, jestli samotné stránky v aplikaci existují, protože napsat obecné FE testy je strašně zdlouhavé a často i nemožné kvůli různým id elementů (zdali je tam mají, je otázka jiná). Takže poslední část, kterou nazýváme Fullstack, je část, kdy se sejde banda lidí a přichází na řadu manuální testování.

Dříve to bylo přes tabulky, ve kterých se dost lidí (jak organizátoři, tak i soutěžící) nevyznalo. Na to právě přišla myšlenka napsat na to samostatný systém. Jak obtížné to může být? To byla moje první otázka, na kterou jsem měl jednoduchou odpověď: „Není to komplikované, dokud si to nezkomplikuju sám!“ Přeci napíšu aplikaci, kde člověk bude klikat na tlačítka Ano, Ne, Nevím – to nebude na dlouho. Nakonec jsem si to zkomplikoval, jen trošku. Rozhodl jsem se zaimplementovat Redis pro cache momentálně hodnocených týmů a pro týmy jako celek.

Ano, tohle je celá logika toho, jak probíhá klikání otázek v tom systému. Člověk si možná řekne, proč? Ale logika je jednoduchá – potřebujeme solidní systém, který jen tak nespadne, když do něj někdo „šťouchne“.

Ve výsledku jsou v tomto systému věci, které dost lidí překvapí, ale podle mého dávají smysl, když se na to člověk podívá z nadhledu a usoudí, že když bude naráz hodnotit 10–20 lidí, zasloužilo by si to nějaké optimální řešení. Zasloužilo by si to ochranu proti tomu, aby člověk nemohl hodnotit tým, který je již hodnocen, nebo byl kompletně zhodnocen. Určitě by si to zasloužilo ochranu proti pádu čehokoliv a kdykoliv. Do Redis tedy ukládám vyhodnocené otázky, které při jakémkoliv ukončení ukládám do databáze, a do seznamu ukládám ID týmů, které se právě hodnotí.

A jak dlouho mi to trvalo? Kdybych řekl, že mi to trvalo jen víkend, abych napsal plně funkční hodnoticí systém, tak mi to nikdo neuvěří, že? Ale je to pravda (nebyl to víkend, ale pondělí a úterý). Taky se divím, že jsem byl schopen napsat něco takového tak rychle. Nevím, čím to je. Možná tím posunem a těmi zkušenostmi, které jsem nabral za těch pár let? Možná. Tady sám nevím a nechci si na tuto otázku odpovídat sám. Chci, aby mi na ni odpověděl někdo jiný – někdo, kdo bude ten systém používat, hledat v něm chyby a pomáhat mi jej zlepšovat.

Abych to shrnul, celý systém je připraven k hodnocení a já se na ten hodnoticí event těším. Až budeme hodnotit ty aplikace, klikat ty otázky, objevovat nedostatky a já se budu modlit, že je opravím co nejrychleji, jak to jen dokážu.

0
Subscribe to my newsletter

Read articles from Vojtěch Tmej directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vojtěch Tmej
Vojtěch Tmej

Content designer for Tour de App | Fullstack developer | Application design