Ani nevím, kde tady se psaním začít, nějak vše objektivně posoudit a
nenechat prchlivost cloumat svým majestátem
. Začnu výletem do
historie. Když jsem na Karlově univerzitě
jako student začínal, o kolej se žádalo tak, že si člověk vyzvedl
formulář, vyplnil ho a odevzdal. Později bylo toto vylepšeno o to, že
tento formulář bylo možno stáhnout z webu, takže člověk ušetřil
jednu cestu. Asi před dvěma či třemi lety vznikla webová aplikace poeticky
nazvaná Mašinka, která od té doby správu žádostí o ubytování
převzala. Dohromady nešlo o nic světoborného – člověk se
přihlásil, vyplnil několik informací (především které koleje preferuje),
odeslal tento formulář a to bylo z jeho strany tak asi dohromady
všechno. Po zhodnocení všech všech žádostí systém nakonec vygeneroval
nějaká oznámení o přidělení či nepřidělení ubytování. Mašinka
nebyla žádným unikátním zázrakem webdesignu, vypadala úplně obyčejně,
ale byla taková, jaká měla být – jednoduchá, rychlá, funkční a
ovladatelná snad i připojením telnetem na port 80 (to je samozřejmě
nadsázka, běželo to přes https).
Asi před půl rokem se ke mně donesla zákulisní informace, že nejmenovaná firma (moudří vědí, šikovným nedá práci zjistit) dostala zakázku Mašinku přepsat. Toto rozhodnutí mi připadá absolutně nepochopitelné a ani nechci spekulovat, co všechno by se za ním mohlo skrývat. Zaprvé totiž jak jsem již zmiňoval aplikace byla relativně nová a z toho, co můžu soudit, splňovala svoji funkci. Ještě ovšem spíše jde o to, že celý systém není zrovna extra složitý (jistě, skrývá se v něm i nějaké administrační rozhraní, ke kterému já přístup nemám, stejně jako se to musí starat o databázi dat jednotlivých studentů, ale dohromady je to prostě systém s několika různými formuláři k vyplnění, které je potřeba uložit do databáze s hlavní tabulkou o velikosti řádově desetitisíců řádků) a kdyby s projektem podobného rozsahu přišli studenti Matematicko-fyzikální fakulty téže školy jako s tématem jejich povinného předmětu Softwarový projekt, měli by dost co dělat přesvědčit příslušnou komisi, aby jim toto téma bylo uznáno jako dostatečně na úrovni, a i tak by pravděpodobně museli do požadavků dát, že systém bude použitelný v každém obskurním prohlížeči v kdovíjakém mobilu a navíc bude při vyplňování žádosti uživateli umožňovat online objednávku pizzy. Proto nejsem schopen nahlédnout, proč ona úloha přepsání, muselo-li již k ní dojít, nebyla zadána například Katedře softwarového inženýrství, která by to zvládla přinejmenším stejně dobře jako jakýkoliv komerční subjekt, pouze podstatně levněji, protože firmy píšící software na zakázku nejsou zrovna z laciného kraje a ona zmiňovaná rozhodně není výjimkou, moc by mě zajímalo, co by celkové sumě za Mašinku zaplacené říkali studenti demonstrující proti zdražování kolejného.
Zároveň s finančními nároky jsem si ovšem okamžitě po získání této informace s hrůzou uvědomil další věc. Zmiňovaná firma neumí psát webaplikace, které by fungovaly v čemkoliv jiném než v Microsoft Internet Exploreru verze 5.5 nebo vyšší – a to prostě proto, že to po ní nikdy žádný zákazník nechtěl, poněvadž její aplikace takřka výhradně míří do vnitřních uzavřených sítí, ve kterých může jejich provozovatel svým uživatelům (rozuměj zaměstnancům) nařídit, co mají používat. Tento fakt navíc není zrovna jednoduché změnit ani pro jediný výjimečný projekt, protože samozřejmě všechny projekty jsou budované na společném programovém základu (pochopitelně, to přináší velkou úsporu času a peněz, větší konzistenci, lepší schopnost podpory, atd.), jehož prezentační vrstva má však tuto vlastnost výrazně omezené funkčnosti.
Nová Mašinka byla napsána poměrně rychle a žádosti o ubytování na příští akademický rok již probíhají jejím prostřednictvím. Kupodivu (protože aspoň tohle si univerzita vymohla) funguje i v Opeře a v prohlížečích postavených na jádře Mozilly (za samozřejmost se považuje zapnutý Javascript). To mě trochu překvapilo a začal jsem pátrat po tom, jak k tomu došlo. Moje prvotní naděje, že byl přece jenom vnější kabát přepsán do kódu odpovídajícího standardům, vzala rychle zasvé – skriptování se jenom hemží používáním document.all a podobných konstrukcí, moje podezření je takové, že se to celé prostě jenom v Opeře a Mozille vyzkoušelo a tam, kde to nějak nefungovalo, se to zbastlilo tak, aby to fungovat začalo. Důsledkem toho je mimo jiné to, že Mašinka nefunguje v Safari nebo Konqueroru, přestože to jsou oba prohlížeče s podstatně lepší podporou prostředků potřebných při psaní podobných aplikací, než jakou kdy měla jakákoliv verze Internet Exploreru. Připomínám znovu, že celou dobu hovoříme o systému, který nechá uživatele vyplnit jeden až několik jednoduchých formulářů, které odešle, tedy systému natolik primitivním, že neexistuje dobrý důvod, proč by neměl fungovat třeba v textovém prohlížeči typu links.
Nicméně přejděme k zajímavým detailům realizace nové Mašinky. Zdá se
vám, že se ta úvodní stránká nahrává nějak dlouho? Kdepak, nezdá, má
kolem 170kB. Přitom prosím pěkně obsahuje asi tak dva nadpisy, menu
o pěti odkazech, přihlašovací formulář a čtyři krátké odstavce
textu. Písmo textu není zrovna největší, má-li někdo slabší zrak (ano,
takoví studenti se kupodivu najdou), leč používá-li student doporučovaný
Internet Explorer, tak si písmo nezvětší, kdyby se na hlavu stavěl,
protože velikost písma je zadaná v pixelech. Skriptování je použito
opravdu všude, především ovšem pro samotné odeslání jakéhokoliv
formuláře (což je hlavním, a dokonce bych se ani nedivil, kdyby jediným,
důvodem, proč to funguje jenom v těch prohlížečích, ve kterých to
funguje). Ovšem to nejlepší teprve přijde. Řekněme, že jste nešťastník
používající nepodporovaný prohlížeč (což zatím nevíte, protože
neočekáváte, že by pro žádání o kolej mohly existovat
i nepodporované prohlížeče). Chcete se přihlásit, ono to nejde. Tak
tedy asi zkusíte nápovědu. Tato nápověda je ovšem otevírána Javascriptem
do nového okna, takže pokud ho máte vypnutý, či jím váš prohlížeč
nedisponuje, nápovědu si nepřečtete. Mimochodem o nic nepřicházíte,
protože z celé nápovědy jsou relevantní pouze dvě následující
věty: Pro práci s aplikací je nutné použít prohlížeč, který
podporuje JavaScript. Také zkontrolujte, zda Váš prohlížeč má JavaScript
zapnutý (v nastavení Vašeho prohlížeče).
Takže jsou dvě
možnosti – buďto používáte prohlížeč se zapnutým Javascriptem a
přečetl(a) jste si nápovědu, ze které vyplývá, že by vše mělo
fungovat, nebo máte prohlížeč bez podpory Javascriptu, a pak ani nemáte tu
informaci z nápovědy, že vám to nefunguje správně. V obou
případech pak asi zkusíte odkaz Problémy s registrací a
přihlášením. Zde je ovšem dílo dokonáno, neboť formulář, do
kterého můžete popsat své problémy, je odesílán pomocí Javascriptu
úplně jako každý jiný formulář Mašinky, pročež když vám Mašinka
nefunguje, nemůžete si postěžovat, že vám nefunguje. Řekl bych, že tento
geniální aspekt celé aplikace musel vymýšlet někdo opravdu hodně
dlouho.
Celá řada dalších nedostatků se dá vypozorovat i po přihlášení při samotné práci s aplikací, ale oproti výše uvedeným skutečnostem jsou to už spíše drobnosti, krom toho dovnitř do systému nemůže nahlédnout každý, takže se špatně popisuje, co na člověka čeká, navíc by to nebylo dostatečně důvěryhodné. Mimochodem je to první webová aplikace (z těch, co jsem potkal), u které vám může vypršet session, i když nejste přihlášen(a), v důsledku čehož kliknutí na libovolný odkaz vede poté znovu na úvodní stránku.
Sečteno a podtrženo: Mašinka je prachmizerná (mám potíže najít dostatečně expresivní adjektivum, nechci-li sklouznout k vulgaritám) aplikace porušující i ta nejjednodušší a nejznámější pravidla přístupného webu. Přijde mi obzvláště smutné, že takový systém jsou nuceni používat studenti naší nejprestižnější univerzity, univerzity, která se pyšní (mimo jiné samozřejmě) úspěchy svých studentů informatiky. Snad ani ten nejposlednější z nich by nenapsal něco takovéhleho.

Sleduj všetky zápisy pomocou RSS
Sleduj všetky komentáre pomocou RSS