Není to jen počasím

Publikováno 19.12.2014 23:03, autor Vojtěch Sysel

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ář

Nový komentář
(nebude zobrazen)

Ověření člověka nemohu přečíst kód
Opište prosím kód z tohoto obrázku
Text komentáře

Jméno a text komentáře jsou povinné položky. Bez jejich vyplnění nebude komentář přidán!
Komentáře bez správně opsaného ověřovacího kódu nebudou přidány.
Při psaní komentáře můžete využívat značkovací jazyk Texy!.
Ke všem odkazům v komentáři bude přidán atribut nofollow.