Domain-Driven Development – „nadejszła wiekopomna chłiła”

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

Domain ExpertLiznąwszy nieco wiedzy na temat Domain-Driven Developmentpora 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).

 

Apka 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.

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.

Ponownie polecam poniższe książki.

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

DDD dla architektów oprogramowania, Vaughn Vernon. DDD dla architektów oprogramowania, Vaughn Vernon.

Są to linki afiliacyjne.