Není to jen počasím
Posledních pár týdnů jsem byl v práci dost mrzutý. Měl jsem za úkol upravit tool napsaný v Nette, což samo o sobě znělo jako poměrně jednoduchý úkol, jelikož Nette používám asi 3 a půl roku. Byl tu ale jeden háček. Autorem toho toolu je člověk, který rozumí problematice, kterou daný tool řeší, ale vůbec neumí programovat. A co víc, bohužel se ani nesnažil pochopit, k čemu Nette, potažmo MVC framework vlastně slouží.
Jak jsem se postupně dostával do již napsaného kódu, bylo mi jasné, že se tento jednoduchý úkol postupně mění v peklo. Všechny třídy použité v projektu jsou statické a navzájem natolik provázané, že je nelze rozumně použít, aniž by bylo nutné je celé znovu přepsat. Tento fakt stěžuje, či úplně znemožňuje jakékoliv testování, které je v případě rozšiřování neznámé aplikace kritické.
Další věc, která mě velmi překvapila, byla organizace jednotlivých pod-aplikací, čili částí aplikace, které mělo být možné používat samostatně. Tyto aplikace nevyužívaly Single entry point (index.php) a nebyly navrženy jako moduly, ale byly to nové instance Nette aplikace. I když v tomto případě lze těžko mluvit o Nette aplikacích, protože jejich struktura je typický špagety kód, kde je v jednom souboru smíchaný funkční kód se šablonou.
Jako třešnička na dortu jsou zde komponenty. Ano, přesně ty komponenty, kvůli kterým mám Nette rád. Původní autor totiž vůbec nepochopil, k čemu jsou určeny a znovu vše spatlal do jednoho souboru. Ba co víc, jednotlivé komponenty od sebe dědí, ale základní třída obsahuje statické metody s definicemi použitými ve svých následnících (například filterText a filterImage, které jsou použity v třídách TextComponent a ImageComponent).
A teď se dostáváme k AJAXu. Ten lze v Nette také řešit naprosto elegantně pomocí handlerů přímo definovaných v komponentě. Ne však pro našeho programátora. Ten vytvořil další pod-aplikaci nazvanou ajax, ve které jsou skripty pro jednotlivé ajaxové požadavky. Bohužel tyto skripty nevyužívají Nette a ani již vytvořené komponenty a vše si znovu dělají samy po svém.
V neposlední řadě mohu zmínit cachování, tvorbu odkazů, práci s vstupními proměnnými, práci se session. Prostě vše je použito naprosto nevhodně, přímo proti proudu a všem doporučeným praktikám. A co původní autor? Dostal ocenění za výbornou práci a šel pracovat do jiného oddělení.
A teď už asi chápete důvody mé frustrace.
přidat komentář zobrazit komentáře (5) (no)comment přečteno 3672×