No já si taky postěžuju k tématu:
V rámci pracovní náplně se starám o údržbu, opravu chyb a rozvoj několika různých webových aplikací psaných v ASP .NET.
Jde o různé druhy - některé jsou napsané jako Website ještě ve Visual Basicu, něco jsou takové klasické MVC aplikace v c#, zbytek pak "moderně" pojaté MVC aplikace se spoustou frameworků, továren, fasád, s podporou NodeJS.
Autoři aplikací jsou také různí, něco pochází od vývojáře u zákazníka, který se o to už nechtěl starat, něco je osiřelá aplikace napsaná a následně opuštěná konkurenční firmou, zbytek pochází od kolegů programátorů, kteří na jejich údržku a rozvoj nemají čas, protože píšou zase jiné nové aplikace.
Vče jsou to aplikace podobného rozsahu a složitosti. Žádnou z těch aplikací jsem od začátku nepsal, přicházím vždu k cizímu hotovému.
A já mám největší problémy s údržbou a opravami aplikací pocházejících od vlastních kolegů (některých).
Jejich aplikace jsou na můj vkus totiž "příliš programátorské, příliš příručkoidní, příliš OOP" - vše je skryté pod několika vrstvami abstrakce, všude jsou implementované interfejsy, automatické mappery, časté je dědění tříd a přepis metod, JS kód je obvykle někde dynamicky generovaný jako součást něčeho a jednoduše nedebugovatelný.
Můj pocit z jejich kódu je, že se snaží vždy všechno napsat co nejvíc "elegantně", aby se velká část činnosti nevykonávala ve viditelném kódu vlastních tříd, ale někde skrytě na pozadí. Taková trošku programátorská onanie, čím menší vrabec, tím větší kanón.
A když mám v takové aplikaci něco opravit nebo vylepšit, tak tím často strávím několik dní než se skrz ten balast prokoušu k podstatě, často jen odhadem a zkusmo. Většinou také proto, že přijde nějaký požadavek na funkčnost mimo rámec toho jejich "elegantního" řešení a já to musím nějak násilně ohýbat, pokud to nechci celé přepsat po svém.
Přitom se paralelně starám i o ostatní aplikace od jiných autorů a tam takové problémy nepociťuju - vše je skoro vždy tam, kde to čekám, když něco změním, reaguje to dle očekávání, změny jsou hotové za hodinu nebo dvě. Jsou prostě napsané přímočařeji a jednodušeji, složitější konstrukce si šetří jen tam, kde to opravdu dává smysl (= skoro nikde, neřešíme teorii relativity, ale třeba logistiku, správu vozového parku, apod).
Takže teď nevím, zda mám hledat nedostatky u sebe nebo u kolegů - z mého hlediska je jejich "dokonalý" kód hodně neefektivní na občasné změny a opravy. Místo aby vše šlo snadněji a rychleji, tak je to naopak časově náročnější - minimálně pro mně.
Kdo to dočetl až sem, má u mě velké bezvýznamné plus.