Já zase měl třeba tiket na zlepšení performance v komponentově řízené architektuře, Java platforma. Prý to všechno moc dlouho trvá. Spring 3.neco. Jeden český korporát, outsourcing pro banku.
Nejprve v kostce. Celý enviroment v korporaci se řídí v Indii. Musíš pracovat na Remote desktopu ve Windows 7. Všechno se tam buďto sere nebo dlouho načítá, semtam zamrzne kurzor. Volání RESTu některých komponent je na několik vteřin, protože... proč? Já nevím, prostě indická konfigurace a šetření na všem možném. Co vím je, že já, juniořík, jsem dostal za úkol zlepšit performance našich komponent, která volá RESTy a databázi. Normální odpověď na takovýto task je, že tady ku*a na intranetu trvá úplně všechno, nejen volání v naší komponentě. Jestli chcete performance, spravte si ku*va enviroment. Ale tak řekl jsem si dobře, zkusím to. Vždyť to bude hned.
Nejprve jsem chtěl tu aplikaci profilovat. Tuhle jsem zjistil, že komponentu nemůžu profilovat u sebe na remotu, protože potřebuje ke své funkci volat jisté "externí" systémy (nejsou nikterak externí, jsou v rámci toho samého korporátu) a ty jsou přístupné jen z testovacího serveru. Je to totální píčovina, protože by si někdo stejně mohl udělat Service v rámci komponenty, která by tam html zprávy přeposílala, a ta by se volala z lokálu. Takže opatření na hovno, které dělal nějaký kokot.
Takže profilovat je nutné na testovaím prostření. Ok no, tak to by neměl být s JVM problém, udělám to jako remote. Bohužel na tom testovacím serveru, po patáliích se zjišťováním, jak se vlastně připojím do weblogicu, jsem zjistil, že všechno blokuje firewall a já prostě remote neudělám. Tak jsem vytvořil tiket na support, aby mi na IP adrese toho test serveru otevřeli porty. (není na něj přímo přístup z ssh, omezeně se to dá ovládat jen přes takovou zasekanou webovou sračku)., Přišlá mi odpověď, že to otevřeno být nemůže kvůli security. Tak jsem do nich šil dál až nakonec mi řekli, že to prostě není možné, protože ta samá IP se používá pro produkci a pokud otevřou firewall pro testovací env, tak ho otevřou i pro produkci.
WTF!
Tak jsem na to šel metodou logování časů práce jednotlivých metod. No problema. Mám přece božský Spring, a ten má přesce Aspekty. Udělám 1 aspekt metodu, která bude logovat do souboru všechny metody volané v rámci package. Potom možná i nějakou tu agregaci, aby byl výstup podobný Profilleru - aspoň si zaprogramuju, takže nějaká normální práce, co mě baví. Problém. Všechno možné začalo házet exception. Proč? Protože ve Springu je posraný bug, kdy při volání metody přes proxy beanu, kde origo třída obsahuje nějaký Vararg, to poruší její signaturu a prostě se to posere. Googlil jsem a zjistil, že to opravili ve Spring verze 4.neco. Když se řekne Spring, někteří fandové si v ten moment začnou dráždit bradavky a jsou celí vrušení, protože Spring je The Best a Spring má Aspekty a Spring má to a ono. Tak jak mi ku*va vysvětlí, že přinejmenším od Springu 3.x do 4.x nefungovaly ty Aspekty s Varargy, které tam jsou už od verze Javy 1.5?
To jsem ku*va jediný, koho v průběhu X let napadlo, dát si aspekt na všechny metody v rámci celého package, kvůli logování, a ono se to posere?

?? Dělal jsem už s hodně frameworky a nic se mi ještě nesralo tolik, jako Spring. Statisticky a objektivně vzato, Spring je s přehledem ta úplně největší sračka, se kterou jsem kdy pracoval, a já si říkám, co za nýmandy v tom dělá, když tam X let existuje takovýto bug. Nikdo ho celou tu dobu nenahlásil nebo neopravil.
Víte, co jsem teda musel dělat? Tipněte si. Že ten task byl uzavřen jako "ku*va nejde to, spravte si enviroment a neotravujte, protože tohle je na palici a my nejsme čuráci"? Ne, musel jsem pokračovat. Musel jsem kurva logovat každou jednu metodu ručně, na jejím začátku a na jejím konci. A co jsem zjistil? To, co kurva každý musel vědět už na začátku. Že tam některé cally na jiné komponenty trvají i 2 vteřiny, že když se to sečte tak nějaká REST metoda, než proběhne, tak to trvá i 15 vteřin a to jen na tom, že to volá ext systémy. Tak co ku*va? Jak v tomhle mám vidět nějaké problémy v kódu??? I kdyby tam byly, tak je v těch časech nikdy neuvidím. Měsíc bych optimalizoval, abych to zlepšil o půl vteřiny, pokud vůbec, a co z toho, když celkem to trvá 15?
Möhl bych ještě mluvit o Indech, kteří dělají support. Jaký horor třeba je, vytáhnout z nich logy z produkce, když nastane incident. Oni zásadně všechno odbydou, nic neudělají pořádně. Když posílají logy, ty se ukládají jen 7 dní. Než nějaké pošlou, je to kolikrát i s prodlevou několik dní. Chtějí na to mít udělaný tiket. Když jím vypíšu X log souborů, které potřebuju, za X dní, tak vždycky nějaké nepošlou. VŽDYCKY jich pár chybí a musím jim zase psát jak kokot. Běda, jestli těm žlutým špindírům napíšeš něco nevrlého. To pak bude ještě horší a oni se zaměří na to, aby to odbyli ještě víc. Práce několika píčusů, kterou by nahradilo pár posraných skriptů a oni by zase valili zpátky na rýžové pole. Jenže to by nesměly existovat tyhle sračkoidní korporáty, které jim a různým dalším pičusům dávají práci.
Firmy si stěžujou, že nejsou v IT lidi, že nemůžou sehnat. A že nemůžou přidat money, protože nebudou zakázky. Já vám něco řeknu kurva. V IT je až moc lidí, a to je ten problém. Je jich tam tolik, že tam pracuje kdejaký čůrák, který práci akorát mrví. Je třeba tlačit peníze nahoru a na krev, ať klidně zakázky nejsou, zůstanou jen ty pořádné. Kdo kurva, kromě totálních nýmandů, chce v ČR pracovat na takových věcech? Ať si je ti kravaťáci posraní korporátní strčí do zadeke. To, co je vidět v tom korpátu, to je holé plýtvání lidskými zdroji a je to neuctivé k čemukoliv, co jen zavání pojmem lidskost. A proč? Protože jsme kurva levní! Proto.
Říkám managerovi, kolik chci přidat, že takový platový progres je nepřijatelný, protože jsem junior a průměrnou mzdu bych s takovou, po započtení inflace, dosáhl tak za 8 let. Když přišlo na nový projekt, byl jsem vystaven kritice, jestli se mnou vůbec můžou počítat, že potřebujou loajální zaměstnance. Kur*a, co to vůbec je, loajální zaměstnanec? To nedáváš dost peněz ale máš být loajální zaměstnanec? Loajální píča, tak leda. A ten manager to moc dobře ví, že to tak je, ale dělá ze mě blbce a myslí si, že se to nevím.
ROZUZLENÍDlouho jsem přemýšlel, proč tam někteří lidi vlastně pracujou a dělají ty sračky. A s postupem času, jak jsem se rozkoukal, mi došlo, že mají dost peněz. V Praze na OSVČ i hodně přes 100 tyček. Junior tam dělá za 35000,- v podstatě to, co senior. A to je moje odpověď zakladateli vlákna.
Já už bych tam nepracoval, jenže nevím, kde se nedělají takovéto sračky
