Da li Reactive programiranje opravdava kompleksnost koju donosi?

Da li Reactive programiranje opravdava kompleksnost koju donosi?

avatar
Igor
✶ pre 117 dana ✚ pre 148 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


1
avatar Vukašin pre 13 sati
avatar Bojan pre 13 sati
1
avatar Stefan pre 16 sati
2
1
avatar Aleksandar pre 3 dana
1
avatar Nevenka juče
1
avatar Ivana pre 2 dana
avatar Ana pre 2 dana
2
avatar Edin pre 3 dana
1
avatar Teodora pre 3 dana
3
1
avatar Nikola pre 4 dana