Da li Reactive programiranje opravdava kompleksnost koju donosi?

avatar
Igor
✶ pre 897 dana ✚ pre 927 dana
Software engineer

Reactive programiranje (na pr. VerteX, WebFlux) donosi kompleksnost u pisanju koda. U nastojanju da se event loop ne zadržava, sve se praktično wrappuje (Mono,Flux,Futures), kako se thread ne bi blokirao.

Čak i samo ovo – da ne odemo dalje sa asinhronim porukama – je dovoljno da svakodnevni codebase bude prepun ne-funkcionalnog koda. Veća kompleksnost, jasno, umanjuje čitljivost, zahteva održavanje, razumevanje… Ponavljam, dobar deo resursa se troši samo na to _kako_ nešto radi, a ne na _šta_ treba da uradi. Lično, mislim da te stvari moraju da nestanu iz koda, zajedno sa volatile i sličnim ne-funkcionalnim igrarijama, te da se jezik/framework sam bavi time – na isti način kao što danas ne razmišljamo o dealokaciji, jer imamo GC.

Da se vratim na temu: da li benefiti reactivnog non-blocking pristupa zaista imaju smisla? Glavna okosnica prezentacija je uglavnom to da je kreiranje velikog broja threadova “loša stvar”, iako odavno i kućni procesori se lagano nose sa velikim brojem threadova. Da, siguran sam da su performanse bolje u prvom slučaju – ali koliko, i da li ta razlika zaista vredi danas, u vreme kada se svaki veći saobraćaj svakako horizontalno skalira?

Ovim pitanjem se bavilo jedno Gugl istraživanje od pre (čak) 10tak godina. Ne uspevam da ga pronađem i podelim, no premisa je bila upravo u tome da moderni procesori sasvim lepo podnose veći broj threadova. Tu su bila i merenja koja nisu mogla da potvrde da je jedan pristup zaista toliko bolji od drugog.

9

DISKUSIJA

Čim kažeš da ti je nešto kompleksno, to je već signal da nije za tebe. Kompletno iskustvo od 25+ godina mi to kaže.

Ne bavim se webom odavno ali u Swiftu već duže vreme postoji ista ta priča i od nedavno i Apple ima 1st-party reactive framework. Kao i za sve druge patterne, ako ti brzo klikne u glavi onda prihvati i koristi. Ako ne klikne posle par jednostavnijih primera, odustani i ne gubi vreme.

Iako to zvuči kao linija manjeg otpora, upravo je suprotno. IDE, patterns, frameworks – to su alati koje koristiš za resavanje problema. Moraš da ih dišeš i da ih maltene mehanički koristiš za resavanje stvarnog problema ili izazova. Ako ti je sam alat izazov, promeni alat.

3

Vidi još komentara u ovoj diskusiji i pridruži se

Neregistrovani korisnici mogu videti samo jedan komentar — registracija je besplatna i može da traje i samo 10s putem Linkedina. Na ovom postu su još učestvovali:

ULOGUJ SE I DODAJ KOMENTAR


Registruj ili prijavi.

VIDI POPULARNE POSTOVE


1
1
avatar Konstantin pre 12 dana
2
1
avatar Lazar pre 43 dana
2
avatar Vukašin pre 43 dana
6
1
avatar Tamara pre 43 dana
4
avatar Stefan pre 98 dana
99
7
avatar Nevenka pre 112 dana
10
2
avatar Ivan pre 130 dana
1
avatar Ivana pre 196 dana
1
avatar Marko pre 207 dana
4
avatar Daniela pre 252 dana