Closed GoogleCodeExporter closed 9 years ago
La partea de diagrame in exemplu sunt cele doua diagrame de clase care mi se
par nitel redundante..., diferenta e ca una dintre ele are si incadrarea in
pachet. Ma gandesc ca ar fi suficienta cea mai completa.
ServiciuSecuritate acea clasa, este clasa Facade?
Eu zic sa avem Facade+ servicii task(care implementeaza logica de business)
fara a separa eu stiu... servicii care fac persistenta de altele (ma gandesc la
rolul acelui repository care nu imi e clar de ce e marcat asa...)
Am mai avea o alta categorie de servicii sa le zicem Utility adica managerul de
persistenta, eventual un manager de validare logare sau mai stiu eu ce taskuri
comune per toate modulele; servicile utility sa poata fi injectate cumva in
serviciile task si sa fie impachetate intr-o zona (proiect comun ) per toate
modulele
Original comment by viorel.iacoban@gmail.com
on 22 May 2012 at 9:54
Registrul este "managerul de persistenta" al modulului.
Original comment by catalin....@gmail.com
on 22 May 2012 at 10:17
Prima diagrama de clase este o trecere simpla de la diagrama de secvente a unui
caz de utilizare - se circumscrie sctrict unui caz de utilizare.
A doua diagrama de clase pur si simplu se formeaza prin drag&drop a claselor
din prima (primile) diagrame de clase - se circumscrie global modulului.
Cu alte cuvint am gandit o "trecere" cat mai simpla si coerenta de la
realizarea cazurilor in particular la specificatiile modulului in general.
Original comment by catalin....@gmail.com
on 22 May 2012 at 10:24
Ok eu ma gandeam sa avem un serviciu(manager) general(pe toata aplicatia) de
persistenta(metode standard), iar tot ce inseamna logica inclusiv salvare,
extragere din baza de date sa fie in serviciile "normale" taskuri intermediate
de acel manager general de persistenta.
Original comment by viorel.iacoban@gmail.com
on 22 May 2012 at 10:24
Ok sa fie doua viziuni diferite de acord.
Original comment by viorel.iacoban@gmail.com
on 22 May 2012 at 10:25
In legatura cu registrul (sau managerul de persistenta).
Abordarea nu-mi apartine (am preluat-o din DDD - Domain Driven Design).
Nu am dorit sa merg pe ideea partajarii unui utilitar CRUD la nivelul intregii
aplicatii. M-am gandit ca "interogarile/cererile" pe baza de date pot fi si ele
organizate modular repartizandu-le registrelor specifice fiecarui modul.
Eu am mers pe o abordare "la mijloc": nici hiper-centralizata, dar nici
descentralizata la maxim gen clasa DAO pentru fiecare clasa entitate sau
agregat de clase entitate.
(In metodologia DDD un repository se adreseaza unei entitati sau agregat de
entitati ... deci foarte descentralizat. Un repository este oarecum similar
implementarii unui colectii de entitati persistente de acelasi tip. De ex:
intr-un List, cind adaugam un nou element, apelam add(newElement) - la fel - un
repository ar trebui sa fie un astfel de List, sau Map, dar metoda
add(newElement) sa rezolve si salvarea noului element in baza de date).
Original comment by catalin....@gmail.com
on 22 May 2012 at 10:31
Astept(am) si parerea Dianei ...
Original comment by catalin....@gmail.com
on 22 May 2012 at 10:34
Ok mergem pe ideea de repository
Original comment by viorel.iacoban@gmail.com
on 22 May 2012 at 12:54
Ca sa putem merge mai departe avem nevoie de diagramele realizate pana acum de
fete insa, nu vad proiectul postat.Mi-a scapat ceva?Multumesc
Original comment by stefy21s...@yahoo.com
on 22 May 2012 at 4:30
Este postat proiectul, dar ar trebui pus intr-un folder ca sa faceti checkout.
Original comment by viorel.iacoban@gmail.com
on 22 May 2012 at 6:41
Mi se pare ok ideea de repository (cu sau fara modul CRUD basic comun), dar
cred ca mai e nevoie de ceva clarificari pentru a face o separare clara intre
cele 2 categorii de clase (serviciu/registru) in cazul operatiunilor gen
salvare:
*procesarile aditionale, validari pre-persistare etc vor fi incluse in clasa Service (ServiciuSecuritate din ex) - caz in care registrul va contine doar metode elementare de persistare,stergere etc entitati-
*sau acesta va face doar o delegare spre Repository, care va contine intreaga logica?
Si daca tot veni vorba de delegare - intelesem ca vom avea o clasa Facade care
va delega apelurile spre diverse servicii specifice care implementeaza logica
de business, pentru a nu ajunge la o clasa mamut. Ramane valabil, da?
Pe de alta parte, un manager de persistenta comun per toate modulele care sa
fie injectat sau extins de repository ne-ar scuti de a avea cod duplicat in mai
multe module (nu ca ar fi multe). Cu atat mai mult cu cat pentru o mare parte
dintre entitati estimez ca vom avea operatii CRUD de baza. Dar e mai mult o
chestiune de preferinte - si conteaza intr-adevar si cat de descentralizate se
doresc a fi modulele
Original comment by neagu.diana
on 22 May 2012 at 8:13
1. Despre Facade
- In proiectul-model clasa-facade se numeste ServiciuSecurizare.
- Clasa Facade ar trebui sa implementeze sau sa delege (dupa preferinte) logica
de business.
- Ceea ce nu are la acest moment este clasa Facade o interfata asociata.
2. Despre repository
- scopul unui astfel de repository ar putea fi sa preia si o parte din logica
de validare datelor;
- logica de persistenta ar fi principalul rol al unui repository, insa nu as
vrea (la acest moment - tinand cont si de echipele pe care le aveam) sa
"imbracam" prea tare logica de persisenta simpla JPA - apelarea directa la un
EntityManager (injectat :)) mi s-ar parea de ajuns in prima faza.
3. Ideea ar fi ca modulele sa aiba si oarecare autonomie ...
Original comment by catalin....@gmail.com
on 23 May 2012 at 5:40
Ok suna bine, adaugam si interfata. Pai ii dam drumu?
Facem un proiect uml per modul in spiritul exemplului?
Eu am copiat proiectul mare din docs in ProiectUML-Base ca sa poata si tras.
Original comment by viorel.iacoban@gmail.com
on 23 May 2012 at 5:50
Dati drumul la treaba. Dupa parerea mea abia de acum incepe "greul" si s-ar
obtine ceva cat de cat "palpabil" ...
Original comment by catalin....@gmail.com
on 23 May 2012 at 12:46
Am adaugat in ADMITERE_AdminService suportul pentru JSF2-RichFaces4.
Vezi directorul WEB-INF/lib dupa Update.
Intotdeauna Update si apoi COMMIT daca e ceva de urcat pe svn din proiectele
locale !!!!!
Original comment by catalin....@gmail.com
on 25 May 2012 at 10:30
Original comment by catalin....@gmail.com
on 7 Mar 2013 at 1:26
Original issue reported on code.google.com by
catalin....@gmail.com
on 22 May 2012 at 7:18