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
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:
- Otwarty edytor Visual Studio Code z projektem.
- Otwarta konsola GIT dla tego projektu.
- Folder projektu.
- 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. Cele dla stworzenia MVP aplikacji:
- Jak najszybciej dodać wyzwalacz.
- Wiele typów wyzwalaczy.
- Jak najszybciej wywołać wyzwalacz.
- Łatwy dostęp do: wyzwalaczy, konfiguracji i profili.
- Prostota i szybkość tutaj jest najważniejsza.
- Automatyczne kopie bezpieczeństwa.
- Przywracanie z kopii.
- 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
Wcześniejszy artykuł: Domain-Driven Design - DDD i jego życie.