[Javalist] Business logic scope Session beanben

András Csányi sayusi.ando at gmail.com
2017. Jún. 13., K, 10:45:11 UTC


Sziasztok,

Szeretnék egy kis segítséget kérni. Sajnos nem találtam egyértelmű
választ erre a kérdésre és szinte biztos is, hogy nincsen. Marad a
közösség kollektív tudata! :)

Szóval, van egy alkalmazásom, aminek a feladata, hogy egy adatbázisból
szolgáltasson adatot. Az adat maga, ami kiesik belőle több helyről -
több szervíztől származik. Itt az üzleti logika lépései a következőek:

- adatbázisból kinyerni az adatokat
- más forrásokból kinyerni az adatokat REST kliensen keresztül
- összeigazítani az adatokat
- meppelni őket DTO osztályokra
- kitolni egy végponton keresztül

A probléma ott van, hogy nem látom ebből a logikából mit tolhatok bele
egy session beanbe és mit nem. Gyanítom, hogy mindent bele lehet
passzírozni, de nem feltétlenül okos dolog. Nekem a fejemben a session
bean inkább egy repository, ami felelős az adatbázissal való
csevegésre, mint csinálni sokminden mást. A példákból is inkább ezt
látom, mint azt, hogy meppelgetnénk ide-oda.

Jelenleg azt csináltam, hogy van egy application, ami felelős azért,
hogy a fenti lépések a megfelelő sorrendben végrehajtásra kerüljenek.
Ez az app megkapja DI-től a session beant, a mappert és a rest
klienseket és csinálja a dolgát.

Ellenben ezt lehet úgy is csinálni, hogy minden fenti lépést egy
session bean fog össze. Ennek az az előnye, hogy egyszerűbb az
alkalmazás. Nincsen annyi jar és valószínűleg nem lesz benne nested
injection, míg az előző verzióban (application-ben van az üzleti
logika) van.

Mindkét esetben a tesztelhetőség még egy kérdés. Nincsen tapasztalatom
java cuccok tesztelésében, így ez még itt marad nekem, mint átnézendő
terület. De az biztos, hogy az itt lévő lehetőségek fogják
meghatározni, hogy mit fogok csinálni.

Szóval, a kérdés, hogy az üzleti logika mekkora részét érdemes
belerakni session beanekbe? Vagy kezeljem őket úgy, mint egy
repository és maga az üzleti logika legyen egy application által
megvalósítva? Ezen a területen nincsen nagy tapasztalatom és azt
látom, hogy ez a része nincsen is eléggé kifejtve gyakorlatilag sehol.
Ez inkább ilyen ki hogy szokta dolog.

Szóval, akik ebből élnek hogyan csinálják?

Egyébként ezt a kérdést felraktam az SO-ra is. Ha valaki szeretne
pontokat gyűjteni, akkor kérem, hogy oda is írjon és nyomok rá egy
upvoteot.

https://softwareengineering.stackexchange.com/questions/350761/what-is-the-scope-of-business-logic-which-should-be-placed-in-a-stateless-sessio


Köszönöm előre is a segítséget!

András

- -
--  Csanyi Andras (Sayusi Ando)  -- http://sayusi.hu --
http://facebook.com/andras.csanyi
--  ""Trust in God and keep your gunpowder dry!" - Cromwell


További információk a(z) Javalist levelezőlistáról