Zašto Marko mrzi Spring?

Spring? Odgovor na ovo pitanje svi već znate duboko u sebi.

Svako ko je bar jednom koristio Spring osetio je isto. Nažalost, prva reakcija obično bude poricanje. Goni vas misao da nešto nije u redu sa vama, jer zaboga, svi danas koriste Spring i deluju srećno. Postavljate sebi pitanja –

Šta nije u redu sa mnom? Zasto sam baš ja drugačiji? Zasto ja ne mogu da prihvatim Spring sa osmehom i ovladam anotacijama i XML tagovima?

Ako je to slučaj, mogu vam odmah reći, vi ste savršeno normalni.

Međutim, ako vas korišćenje Springa ispunjava zadovoljstvom i često ponavljate sebi – Baš je sjajno sto Spring postoji, učinio mi je život mnogo lakšim – onda vam je moj savet da se posavetujete sa lekarom. Dobra je šansa da će u vašoj glavi, sem vas, pronaći bar još dve ili tri ličnosti.

A sada, zašto Marko mrzi spring?

Jer XML

Da, samo to i mislim da je prilično samoobjašnjavajuće. Da, od verzije 3, možeš kreirati Beanove i pomoću Java konfiguracije, reći će nevernici. Recite vi meni, zar je trebalo da izadju 3 verzije biblioteke da bi neko shvatio da za Java programiranje treba koristiti Javu?

Jer sa XML konfiguracijama, compile time safety menjamo za runtime. Umesto padobrana, dali nam kišobran da skačemo iz aviona. Čik dokaži da ova sitna izmena u XML fajlu neće da obori produkciju.

Jer brzina startovanja

Kao, sa XML konfiguracijom ne morate da radite recompile, uštedećete vreme u vašem razvoju. A šta sa tim što u većini slučajeva startovanje Spring aplikacije traje bar 3 puta duže nego sam compile? Ko je ovde lud?

Jer je sve idealno u njihovom “Hello World” svetu

Međutim, čim poželite da uradite nešto više od toga, ili ne daj bože nešto nestandardno, kreće pakao. Želite da inicijalizujete više od jednog DataSource-a u istom kontekstu? Pa ne može to baš tako. Nismo mi to tako zamislili u svim Spring modulima. Naravno, nevernici ce reći da postoji anotacija koja rešava i to, ali šta je sa satima koje smo protraćili pokušavajući da shvatimo zašto tako jednostavna i očigledna stvar ne može da radi?

Jer su programeri inače lenji, a sa Springom postaju i glupi

Kada kandidatu postavite pitanje – Kako biste ovu metodu učinili asinhronom? – dobijete odgovor – Stavio bih @Async anotaciju. Zašto trošiti vreme da naučite neke osnovne paradigme, kada verovatno postoji anotacija za njih?

Jer niko zaista ne zna kako radi Spring

Magija, neobjašnjiva i totalno nelogična. Lakše je razumeti kako smo zemlja sa najvećim rastom BDP-a u Evropi, nego kako radi @Transactional anotacija. Mrzim magiju…

I još –

Jer su @Autowired polja genocid nad Dependency Injectionom i dobrim praksama u programiranju, a @PostConstruct čista ironija i dokaz jadne odluke. Evo vam anotacija da izbacite konstruktor, a sada evo vam anotacija da vratite konstruktor ali na totalno nestandardni način. Zašto? Zar je korišćenje konstruktora toliko teško i loše?

Zašto Marko mrzi Spring?

Jer, kad vidite exception i stack trace u logu, poželite da ubijete svakog Spring developera. Gde je poziv mojoj metodi u ovih 121329 linija stack trace-a?

Jer, svaki put kada debagujete Spring aplikaciju, poželite da se ubijete.

Jer, kada vam pukne aplikacija tokom inicijalizacije Bean-ova, skoro sigurno je problem u delu koda koji nema veze sa exceptionom.

Jer je Spring sjajan!

Jer me šef mobingovao da napišem rečenicu iznad.

Naravno, za kraj ne bi bilo fer, ako ne bismo skrenuli pažnju na bar jednu dobru stvar kod Springa.

Jer zahvaljući Springu, poslovi tehničke podrške su u procvatu.

 

Nastaviće se…

razvijamo software

Programiramo, debug-ujemo, nerviramo se, borimo se i najčešće pokidamo.

Radimo za iGame, Unibet i Relax Gaming. Sve tri kompanije među najvećim su igračima u industriji igara na sreću! Ako si iskusan programer ili super-talentovan klinac i u fazonu da radiš sa nama - klik ovde.

2017-11-06T11:22:55+00:00