Posterous theme by Cory Watilo

Špatný kód

Poslední dva týdny jsou docela hektické po pracovní stránce. Některé projekty jsou zajímavé, ale dva případy jsou, bohužel, odstrašující.

U prvního jde o nekonečný web - dávno vymyšlený, zadaný, napsaný a od té doby hnijící na testovací doméně, na jehož vývoji jsem se přímo nepodílel, takže často jen zírám a snažím se pochopit, kudy se ubírala mysl autora kódu.

Některé obraty jsou zbytečné (explicitní vytváření labelů u všech elementů, i když CakePHP to udělá automaticky), některé duplicitní (dvojí výpis inputu na základě toho, zda existuje již nějaká hodnota a její případné vložení, opět to Cake vyřeší sám).

Často se vyskytuje plýtvání prostředky, zvlášť u zpracování dat závislých modelů. Zbytečná rekurze při dotazech dokonce dokázala způsobit překročení paměťového limitu vyhrazeného pro PHP skript. Mnoho míst přímo volá po abstrahování do jednoduché funkce.

Šablony také trpí opakovaným kódem, který se strašně špatně udržuje. Při každém zásahu se bojím, že něco rozbiju (samozřejmě git pomůže, ale...) na jiném místě webu. Id a class jsou použité mimo svůj kontext (.article je nejen u článků, ale i u partnerů apod.) nebo na tolika místech, že je v podstatě nemožné dohledat, co změna způsobí.

Skoro vše se dá ovšem omluvit nezkušeností autora a omezeným časem.

Hlavní problém tkví v nových požadavcích zadavatele, mezi kterými vévodí nahrazení odstavců <p> souvislým textem s dvojitým <br>. Zákazník je bohužel pán a nedá si vymluvit svoje rozhodnutí, i když překážky, které tak klade budoucím úpravám jsou tak velké.

Díky takovémuto uspořádání zůstane mezi "odstavci" volný řádek konstantní velikosti. Nepochybuji o tom, že jednou přijde požadavek tuto mezeru zvětšit/zmenšit. Nepůjde, není to odstavec. Použití adekvátních předdefinovaných stylů je přitom při zadávání textů díky TinyMCE naprosto totožné. "To se rozhodně nikdy měnit nebude."

Z vlastní zkušenosti vím, že se změní vše a v první řadě to, o čem klient tvrdil, že se to nikdy měnit nebude.