SlideShare une entreprise Scribd logo
1  sur  20
Domain-Driven Design Programowanie przez modelowanie
O mnie Bloguję: Simon-Says-Architecture.com Twittuję: www.twitter.com/SzymonPobiega Koduję: DDDSample.Net, Ncqrs, NetMX Prezentuję Prowadzę szkolenia Pracuję
Założenia Mówimy o systemach informatycznych klasy enterprise Systemy te przechowują swoje dane w (jakiejś) bazie danych
Model
Rozwiązujemy problem Problem (wymagania) Rozwiązanie (kod)
Modelujemy problem Problem (dziedzina) Model (kod) Problem (wymagania) Rozwiązanie (kod)
Jaki powinien być model? Użyteczny Hermetyczny Podatny na modyfikacje Testowalny Zrozumiały dla wszystkich interesariuszy Wydajnie implementowalny
Jaki nie powinien być model? Uniwersalny Zależny od technologii Zamrożony
Bez modelu Krok 1 Krok 2 Krok 3 Aplikacja
Bez modelu Aplikacja Testy integracyjne
Model Krok 1 Krok 2 Krok 3 Aplikacja Model
Model Testy persystencji Testy jednostkowe Aplikacja Model
DEMO Umacnianie modelu
Meta-model Ponieważ każdy model ma swój model
Wzorzec Domain Model Zawiera wiele Entity Aggregate Posiada jeden Jest Zawiera ValueObject Aggregate Root
Prosty workflow Proces Składa się z wielu Generuje Zdarzenie Czynność Aktywuje
Meta-model Wprowadza uporządkowanie Model to kwestia projektowa, meta-model zaś – architektoniczna Istnieją gotowe meta-modele, takie jak wzorce z grupy Domain Model
DEMO Meta-model
Podsumowanie Lepsze zrozumienie Możliwość powtórnego użycia (koncepcji) Pozytywny wpływ testowalność Zwiększona wydajność Większy koszt początkowy Trudne 
Dziękuję za uwagę

Contenu connexe

Similaire à Domain Driven Design, czyli progamowanie przez modelowanie

Techniczna organizacja zespołu
Techniczna organizacja zespołuTechniczna organizacja zespołu
Techniczna organizacja zespołuintive
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testowWiktor Żołnowski
 
Modele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eaiModele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eaiJaroslaw Zelinski
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxKatarzyna Javaheri-Szpak
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Klasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimiKlasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimiJaroslaw Zelinski
 
Scrum i Open Source - Macopedia sp. z o.o.
Scrum i Open Source - Macopedia sp. z o.o.Scrum i Open Source - Macopedia sp. z o.o.
Scrum i Open Source - Macopedia sp. z o.o.Magdalena Far
 
Macopedia zaprasza do współpracy!
Macopedia zaprasza do współpracy! Macopedia zaprasza do współpracy!
Macopedia zaprasza do współpracy! Macopedia
 
PLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowe
PLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowePLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowe
PLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowePROIDEA
 
Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009daniel.plawgo
 
Spotkania organizacyjne
Spotkania organizacyjneSpotkania organizacyjne
Spotkania organizacyjnedaniel.plawgo
 
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13kraqa
 
Automatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacjiAutomatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacjiRadoslaw Smilgin
 
Poznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven DevelopmentPoznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven Developmentbartlomiej.szafko
 
J2EE. Podstawy programowania aplikacji korporacyjnych
J2EE. Podstawy programowania aplikacji korporacyjnychJ2EE. Podstawy programowania aplikacji korporacyjnych
J2EE. Podstawy programowania aplikacji korporacyjnychWydawnictwo Helion
 
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Wojciech Sznapka
 
Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe
Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektoweArchitektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe
Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektoweWydawnictwo Helion
 

Similaire à Domain Driven Design, czyli progamowanie przez modelowanie (20)

Techniczna organizacja zespołu
Techniczna organizacja zespołuTechniczna organizacja zespołu
Techniczna organizacja zespołu
 
Strategie automatyzacji testow
Strategie automatyzacji testowStrategie automatyzacji testow
Strategie automatyzacji testow
 
Modele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eaiModele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eai
 
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
[TestWarez 2017] Architektura testów automatycznych dla wielomodułowej aplika...
 
Podstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptxPodstawy testowania oprogramowania INCO 2023.pptx
Podstawy testowania oprogramowania INCO 2023.pptx
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
ERP jako system systemów
ERP jako system systemówERP jako system systemów
ERP jako system systemów
 
Klasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimiKlasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimi
 
Scrum i Open Source - Macopedia sp. z o.o.
Scrum i Open Source - Macopedia sp. z o.o.Scrum i Open Source - Macopedia sp. z o.o.
Scrum i Open Source - Macopedia sp. z o.o.
 
Macopedia zaprasza do współpracy!
Macopedia zaprasza do współpracy! Macopedia zaprasza do współpracy!
Macopedia zaprasza do współpracy!
 
PLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowe
PLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowePLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowe
PLNOG 9: Tomasz Kuźniar, Piotr Nowak - FileMedic - rozwiązania antywirusowe
 
Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009Inauguracyjne Spotkanie Grupy Eastgroup 2009
Inauguracyjne Spotkanie Grupy Eastgroup 2009
 
Spotkania organizacyjne
Spotkania organizacyjneSpotkania organizacyjne
Spotkania organizacyjne
 
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
 
Automatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacjiAutomatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacji
 
Poznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven DevelopmentPoznańska grupa .Net spotkanie VI - Test Driven Development
Poznańska grupa .Net spotkanie VI - Test Driven Development
 
J2EE. Podstawy programowania aplikacji korporacyjnych
J2EE. Podstawy programowania aplikacji korporacyjnychJ2EE. Podstawy programowania aplikacji korporacyjnych
J2EE. Podstawy programowania aplikacji korporacyjnych
 
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
 
Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe
Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektoweArchitektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe
Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe
 

Domain Driven Design, czyli progamowanie przez modelowanie