Vrtal jsem se v kódu od jedné nejmenované konzultační společnosti (abych nezakládal hate, nebudu jmenovat firmu ani národnost, ale byla to velká firma z velké země, která je proslulá low cost vývojem). Architektura stála na dvou vrstvách. JSP stránky a PL/SQL procedury v oracle databázi.
Kde začít? .jsp byly opravdu velké. Copy-paste by šlo, ale tohle bylo rafinovanější. Tady se konzistentně uplatňovalo x krát rewrite téhož, s různými implementacemi (a chybami). V JSP se samozřejmě řešily takové ty typicky front endové věci, například nějaké query nebo reporty nad strukturami, které se před tím celé stáhly z databáze do paměti.
Databáze (PL/SQL) zase často skládala HTML výstup (!), přes SOAP někam posílala data (!!) a posílala i třeba e-mailové notifikace. PL/SQL procedury byly také obrovské ("mít jich víc by bylo škoda, stačí nám jedna"), a v podstatě šlo o propletenec milionu IFů. Když se to člověk snažil formátovat a rozparsovat, tak zjistil, že některé podmínky si i v zájemně odporují (tj v IFu byl zanořený IF s "mrtvým kódem" se stovkami řádků, které se neprovedly,). Někdy to bylo vidět až okatě (IF fieldX = 3 a uvnitř zanořený IF fieldX = 5). Prostě bylo vidět, že už v základu zkoněná implementace byla mockrát dolepena quick fixy stylu ("když je na vstupu jednička, má to vrátit dvojku -- ok, přidám tam IF a jdu na další ticket").
Nejlepší na celé věci (a to podle mne hází vidle do sena i těm největším masochistům, co by se chtěli vrhnout na "ozdravování" tohoto výtvoru) bylo, že nikdo vlastně (už) nevěděl, jak to má přesně fungovat. K čemu slouží funkcionalita A, proč na výstup B mám dostat C atd, . Nevěděl to business, nevěděl to analytik. Dokumentace a business analýza měla podobnou strukturu a kvalitu jako kód. Původní implementátoři (spolu s analytiky apod.) už z firmy, co to implementovala, samo sebou odešli (protože tahle firma drží jen low cost lidi a kdo je schopnější, přesunuje se jinam, často do jiného světadílu). Pokud už někoho chytíte, bude problém se domluvit na komunikačním protokolu, protože evidentně používá jinou angličtinu, než je ta vaše.
Protože v té Bance rotují lidé v manažerských postech podobně rychle, jako low cost pracovníci v těchto consultancy companies, a celé se to řídí principem "čím víc teď ušetřím, tím víc bonusů a po mě potopa", evidentně to nemůže a nebude vypadat jinak. Může to znít jako offtopic, jen jsem chtěl říct, že jen o refaktoringu kódu (což je samo sebou v tomto případě ultra challenge) to není, jsou tam ještě daleko vyšší výzvy.
Stále chápu, že ozdravit tuhle mizérii pro někoho to může být opravdu výzva. Lidé dělají různé věci, třeba běhají ultramaratony do kopce, chodí po horkém uhlí nebo v největší zimě plavou ve Vltavě, tak co já vím...