Documente Academic
Documente Profesional
Documente Cultură
Arhitecturi Web
# NT IE R #M VC #S PA # M IC R OS ER V IC ES # R E STA PI
Arhitectura “Multi tier”
IM PAR TI RE A U NE I A PLI CATI I PE NI VE LE
Arhitectura “Multi tier”
• Impartirea aplicatiei pe nivele fizice separate
• Fiecare nivel rezolva cate o problema
• Nivelele sunt strans cuplate
• Nivelele comunica intre ele liniar, de sus in jos
(nivelul k cu nivelul k+1 sau k-1)
Arhitectura “3-tier”
• Cea mai des intalnita
• Nivelul de prezentare – Frontend
• Nivelul de logica - Backend
• Nivelul de date – Sistemul de
stocare (baze de date, fisiere,
cache, etc…)
Intrebare:
Pot cele 3 nivele (prezentare, logic, date) sa
existe pe acelasi mediu fizic?
Model View Controller
DE SI G N PAT T ER N PE NT R U W EB
Ce este MVC?
• Design pattern folosit de obicei pentru interfetele
cu utilizatorul (UI)
• Compus din 3 nivele logice (Model, View,
Controller)
• Nivelele comunica intre ele triangular, fiecare cu
fiecare
• Poate fi folosit atat pe backend, cat si pe frontend
sau chiar pentru amandoua concomitent
Componente MVC
• Model – nivelul de date, business logic si reguli ale
aplicatiei. Considerat elementul critic in MVC
• View – nivelul de prezentare. Afiseaza informatiile
din model catre utilizator
• Controller – nivelul de legatura dintre model si
view. Acesta preia input din view si trimite mai
departe comenzi catre model.
• Flow:
• Utilizatorul interactioneaza cu view
• Interactiunea este preluata de controller si trimisa catre
model
• Modelul actualizeaza starea interna a aplicatiei si
modificarile se resimt in view
Intrebare:
• Deploymentul are de suferit deoarece toata • Mult mai greu de dezvoltat, deoarece este
aplicatia trebuie recompilata si rerulata de nevoie de analiza in ansamblu cu privire la:
fiecare data cand se face cate o modificare • Obiectivul fiecarui serviciu
• Comunicarea dintre servicii
Cum alegem?
Practici indicate pentru
dezvoltarea web
G E NT LE WE B ’ S C O DE
Etica de munca
• O aplicatie sau un proiect nu
inseamna numai cod scris
• Planificarea si analiza joaca
un rol crucial, chiar mai
important decat dezvoltarea
efectiva
• “Failing to plan is planning to
fail”
Modularizare optima
• Este bine ca fiecare proiect sa aiba functionalitatile
exprimate cat mai clar si concis
• Cu cat exista un grad de modularizare mai mare, cu
atat scade riscul de cod buggy & messy.
• Modularizarea optima atrage cu sine dezvoltarea semi-
decuplata a fiecarei functionalitati
• Modularizarea permite si lucrul in echipa mult mai usor
Testare proactiva
• Incercati sa testati cat
mai des codul scris
• Este bine sa folositi atat
unit testing cat si
manual testing
• Postman pt. backend
• In browser direct pt.
frontend
Folositi GIT si Docker
good