Cod: ARC-003
Durata: 24 ore
Durata: 24 ore
Descriere
Cu cat relatia dintre software development si strategia de business este mai stransa, cu atat mai usor o sa ne fie sa dezvoltam si sa mentinem un sistem software care sa respecte nevoile organizatiei pe viitor. Si acest lucru va duce la proiecte software mai bune. Domain-oriented design (DDD) ne ajuta sa reducem riscurile de esec in proiectele IT, prin incurajarea unei mai bune comunicari intre client si echipa de dezvoltare. Practicile DDD sunt impartite in doua grupuri - strategice si tactice.Instrumentele DDD strategice sunt folosite pentru decizii high-level de arhitectura software. Cum ar fi descompunerea sistemelor in componente si stabilirea modului in care vor fi integrate – pe baza unei intelegeri comune legate de modul in care sistemul va trebui sa indeplineasca nevoile clientului.
DDD tactical patterns ne ajuta sa scriem cod care sa reflecte specificul business-ului, sa indeplineasca obiectivele si foloseste acelasi limbaj pe care il foloseste organizatia client. In cadrul training-ului o mare parte din timp este alocata practicii pentru ca tu sa ai ocazia sa aplici abilitatile de design strategic si modelare tactica pe diferite situatii si exercitii.
Subiecte curs
Modulul 1 – Prezentare generală a DDD.Modulul 2 – Cerințe preliminare DDD. Include:
1. Principii OOP, OOD
2. Modele arhitecturale logice de afaceri
Modulul 3 – Design strategic DDD. Acoperă:
1. Domenii, Subdomenii
2. Contexte delimitate
3. Hărți de context
4. Evenimente Storming
Sesiunea de practică #1.1 – Design strategic. Storming Events.
Sesiunea de practică #1.2 – Design strategic. Cartografierea contextelor delimitate.
Modulul 4 – DDD Architectural View. Prezentare generală a:
1. DDD și sistemele moștenite
2. Integrarea Contextelor Delimitate
3. Arhitectură stratificată
4. Arhitectură hexagonală (porturi și adaptoare).
5. REST
6. Arhitectură condusă de evenimente
7. CQRS
8. Event Sourcing
9. Arhitectura microserviciilor
Sesiunea de practică #2 – DDD Architectural View
Modulul 5 – DDD Tactical Design. Partea 1. Acopera:
1. Entități
2. Obiecte de valoare
3. Agregate
4. Fabrici
Modulul 6 – DDD Tactical Design. Partea 2. Acopera:
1. Servicii
2. Evenimente de domeniu
3. Module
4. Depozite
Sesiunea de practică #3 – Aplicarea designului tactic DDD. Constă din două părți.
Practică comună pentru modulul 5 și 6
Modulul 7 – Testare. Acoperă:
1. Testul piramidei
2. Testarea contractelor determinate de consumatori
Obiective
- Modul in care DDD ajuta la dezvoltarea sistemelor software complexe
- Cum sa aplici Strategic patterns pentru descompunere
- Cum sa aplici Tactical patterns in cadrul unui Bounded Context
- Cum sa proiectezi eficient Aggregates
- Cum pot sa fie folosite Domain Events pentru a integra Bounded Contexts
Public tinta
Software developeri (de la Junior la Senior) care au o buna intelegere a principiilor OOP si OOD dar si cunostinte de baza despre software architecture patterns.Cerinte curs
- Principii de programare orientată pe obiecte (OOP).
- Principii de proiectare orientată pe obiecte (OOD).
- Modele de proiectare software (GoF)
- Modele de arhitectură software