Domain-Driven Design - „Nadejszła wiekopomna chłiła”.

13.11.2017


Artykuł ten jest częścią serii artykułów na temat Domain-Driven Design.

Agenda

1. Wstęp.
2. Język Wszechobecny.
3. Izolacja przy pomocy warstw.
4. Podstawowe części składowe.
5. DDD i jego życie.
6. Nadejszła wiekopomna chwiła.


Wstęp

Domain-Driven Design

Długo tutaj mnie nie było, wiele się działo, zmiana pracy, konferencje, wyjazdy. Blog-abstynencja.

Liznąwszy nieco wiedzy na temat Domain-Driven Design, pora wrzucić jakiegoś kota do wora:

O projekcie

Chwilami rozmyślałem na temat projektu, jaki chciałbym zmaltretować. Wyszło przy tym kilka ciekawych pomysłów. Jednak do realizacji podejmę się projektu prostego, rozwiązującego mój mały problemik.

Nie lubię np. tracić czasu na takie działanie jak:

  • odpalanie gita w konkretnej lokalizacji,
  • otwieranie folderu projektu,
  • otwieranie konkretnych plików, np. z dokumentacją,
  • wchodzenie na konkretne strony internetowe,
  • otwieranie terminala w oknie (także z uprawnieniami admina).

Dodatkowo fajnie by było jak bym jednym kliknięciem miał od razu uruchomione wszystko co potrzebuję do pracy. Przykładowo:

  1. Otwarty edytor Visual Studio Code z projektem.
  2. Otwarta konsola GIT dla tego projektu.
  3. Folder projektu.
  4. Przeglądarki (Firefox, Chrome, Edge, Opera do testowania frontendu).

pka siedziałaby sobie cicho w Tray-u, aż ją wyciągnę za oszywę do roboty.

Chciałbym oczywiście mieć możliwość definiowania w prosty sposób profili uruchomienia oraz samych wyzwalaczy.

Fajno by też było jak by konfiguracja była archiwizowana (najlepiej gdzieś hen daleko). Tak by nie stracić w razie awarii systemu. Domain Expert Cele dla stworzenia MVP aplikacji:

  1. Jak najszybciej dodać wyzwalacz.
  2. Wiele typów wyzwalaczy.
  3. Jak najszybciej wywołać wyzwalacz.
  4. Łatwy dostęp do: wyzwalaczy, konfiguracji i profili.
  5. Prostota i szybkość tutaj jest najważniejsza.
  6. Automatyczne kopie bezpieczeństwa.
  7. Przywracanie z kopii.
  8. Kopie w chmurze: dropbox, google drive, onedrive.

Pomyślałem, że w ramach projektu DDD, stworzę sobie właśnie taki sofcik.

Tym samym stałem się Ekspertem Domenowym (ang. Domain Expert).

Technologia

Co do technologii, jako że apka ma działać na Windozie, to skorzystam z języka C# + WPF. Oprócz tego zapewne znajdzie się wiele przydatnych bibliotek do logowania, konteneryzacji, MVVM. Aplikacja zbudowana zostanie z wykorzystaniem Onion Architecturę, tak by wyodrębnić warstwę biznesową

Jako młody adept szkolenia przeprowadzonego przez Macieja Aniserowicza dotyczącego Testowania Automatycznego. Nie omieszkam ich tutaj zastosować.

Kod wrzuci się na GitHub-a, może ktoś wykona Code Review.

Polecane książki

Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software

Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software

Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy

Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy

Domain-Driven Design. Zapanuj nad złożonym systemem informatycznym

Domain-Driven Design. Zapanuj nad złożonym systemem informatycznym

DDD dla architektów oprogramowania

DDD dla architektów oprogramowania

Hands-On Domain-Driven Design with .NET Core - Tackling complexity in the heart of software by putting DDD principles into practice

Hands-On Domain-Driven Design with .NET Core - Tackling complexity in the heart of software by putting DDD principles into practice

EventStorming - An act of deliberate collective learning

EventStorming - An act of deliberate collective learning

DDD: Kompendium wiedzy

DDD: Kompendium wiedzy


Wcześniejszy artykuł: Domain-Driven Design - DDD i jego życie.


Zapisz się na listę :)