Da li Reactive programiranje opravdava kompleksnost koju donosi?
Prijavi se za program Challenge Labs 2021 👉

Da li Reactive programiranje opravdava kompleksnost koju donosi?

avatar
Igor
✶ pre 17 sati ✚ pre 25 dana
Maker | 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 učestvovali:

ULOGUJ SE I DODAJ KOMENTAR


Registruj ili prijavi.

VIDI POPULARNE POSTOVE


2
0
avatar Nikola pre 7 dana
2
2
avatar Aleksandar pre 10 dana
3
7
avatar Aleksandar pre 6 dana
4
1
avatar Anonimno pre 8 sati
2
0
avatar Stefan pre 5 dana
0
0
avatar Nikola pre 4 dana