2015-05-15 7 views
5

Zacząłem uczyć się zasad DDD i obecnie próbuję zrozumieć pojęcie ograniczonego kontekstu. W szczególności, w jaki sposób decydujesz, jak duże (lub małe) ma być? Tak, wiem, tak małe, jak to możliwe i tak duże, jak to konieczne (według Vaughna Vernona).Rozmiar kontekstu ograniczonego

Załóżmy, że zamodelowałem bloga. Mógłbym wtedy powiedzieć, że istnieją 3 ograniczone konteksty: 1) Strona początkowa (zawierająca najnowsze artykuły, brak komentarzy) 2) Dyskusja (pojedynczy artykuł zawierający komentarze) 3) Kompozytor artykułu (gdzie komponuję artykuł).

Jednak to nie brzmi dobrze (wszechobecny język jest taki sam dla wszystkich z nich), wydaje się, że pochodzę z pierwszego punktu widzenia i nadal myślę w kategoriach modeli widoku lub coś.

Czy ktoś mógłby wskazać mi właściwy kierunek?

+1

Nie jestem ekspertem w tej dziedzinie, ale myślę, że masz rację. Słowa takie jak artykuł i komentarze mają zawsze to samo znaczenie, więc jest to pojedynczy ograniczony kontekst, który nie jest skomplikowany, a jedynie prosty CRUD. – inf3rno

+3

To może nie być tego warte w tym przypadku, ale BC wyłoni się z zachowania i koncepcji. Na przykład twój blog może mieć kontekst zarządzania, pozwalający superadministratorom na blokowanie kont i wykonywanie innych zadań administracyjnych. Nie są one częścią domeny głównej bloga i mogą uzasadniać nowy BC. – plalx

+0

@plalx Dobra uwaga, natychmiast przypomina mi przykład z książki Vernona. –

Odpowiedz

2

spróbować spojrzeć na całej swojej domeny z różnych perspektyw, jako redaktor artykule, Prawdopodobnie użyje się zdań, takich jak tworzenie szkicu artykułu, publikowanie artykułu, jako artykułu czytelnika, który na przykład przeczyta artykuł i skomentuje go. Oprócz budowania języka twojej domeny będziesz identyfikował byty i ich zachowania, niektóre z nich pojawią się tylko w jednej perspektywie, niektóre pojawią się w obu, ale będziesz je odróżniał według ich zachowania. Twój język domeny pokazuje granice każdej perspektywy, które implementujesz jako konteksty ograniczone.

+0

Tak, to był pomysł. Komentarz nie ma sensu podczas komponowania artykułu, a dodawanie obrazków w kompozycie jest podobne do tego, ponieważ nie ma sensu na pierwszej stronie. –

+0

Tak naprawdę wymyśliłem te działania dla kompozycji BC: UpdateTitle, UpdateContent, Publish i Retract. Natomiast dostałem AddComment dla Discussions BC. –

4

Blog nie jest dobrym przykładem użycia wielu ograniczonych kontekstów. Nie jest to naprawdę "wystarczająco duży" przykład oprogramowania uzasadniający ich definicje. DDD & BC są naprawdę skierowane na duże/skomplikowane oprogramowanie komputerowe.

Tak jak mówisz, agregaty zawsze mają to samo znaczenie w 3 przykładach.

dałem ten przykład ograniczony kontekst, w poprzedniej odpowiedzi, które mam nadzieję wyjaśnia BC i kiedy z nich korzystać: Bounded Contexts and Aggregate Roots

+0

Po prostu mam mokre stopy i gdy jestem w trakcie budowy strony internetowej, pomyślałem, dlaczego nie zastosować DDD tutaj, aby eksperymentować.Doskonale zdaję sobie sprawę z tego, że jest to przesada, ale nie mam nic przeciwko temu, że dzięki temu mogę zdobyć doświadczenie z DDD. –

0

Najlepszy przykład, jaki dotychczas przeczytałem do poddomen, jest następujący.

Wystarczy sprawdzić rzeczywistą firmę! Każdy dział biorący udział w procesie biznesowym może mieć własną poddomanę. W idealnym świecie każda poddomena ma swój własny ograniczony kontekst w twojej implementacji. Powinieneś zadać sobie pytanie, czy firma potrzebuje nowego działu, aby to zrobić? Czy to naprawdę takie duże?

BC musi być wystarczająco duży, aby opisać dział firmy. Typowym przykładem jest sklep internetowy, w którym masz domenę rdzenia zakupowego oraz poddomeny fakturowania, dostawy i magazynowania. Posiadanie wielostanowiskowości i tak wiele aspektów - jak poprzednio opisana odpowiedź - nie wystarcza. Blog z autorem i kilkoma czytelnikami nie wymaga wielu działów, więc możesz rozwiązać ten problem w jednym ograniczonym kontekście. Możesz mieć wiele modułów w ograniczonym kontekście, jeśli uważasz, że masz struktury o średniej wielkości w ograniczonym kontekście.

Powiązane problemy