Jekyll2024-01-12T22:12:08+00:00https://mrdev.pl/feed.xmlMrDev - blog programisty.Blog programisty.Krzysztof OwsianyJak utrzymywać ADL w GITcie?2023-02-01T00:00:00+00:002023-02-01T00:00:00+00:00https://mrdev.pl/jak-utrzymywac-adl-w-gitcie<p>Używam komputerów od wielu lat. Jestem dinozaurem, zaczynałem w latach 90.</p>
<p>Dla wielu osób to już nie senior developer tylko grandfather developer.</p>
<p>Pomijając etykiety prędzej czy później na tym PC zawsze robił się błaga.</p>
<p>Sprostuję. Ja robiłem bałagan. Najprościej było wrzucić stary dysk do katalogu w nowym i po problemie.</p>
<p>Do dzisiaj mam takie zasoby…</p>
<p>Teraz wyobraź sobie bajzel w dokumentacji architektury… Nie możesz do tego dopuścić.</p>
<p>Dlatego pomimo wymienienia kilku sposobów na utrzymanie ADLa w moim poście <a href="https://mrdev.pl/jak-uzywac-adl-i-adr-w-projekcie">tutaj</a>.</p>
<p>Najlepiej jak użyjesz systemu kontroli wersji i automatyzacji, jaką daje np. adr-tools → <a href="https://mrdev.pl/jak-utrzymywac-adl-z-wykorzystaniem-vscode">więcej o narzędziu tutaj</a>.</p>
<h2 id="git">GIT</h2>
<p>Dla mnie nie ma innego wyboru. Odkąd nauczyłem się używać w konsoli + VIM xD. To unikam innych narzędzi. Polecam i Tobie konsole GITa. Działa w niej wiele poleceń z linuxa. Jeżeli masz Windowsa, to może być dodatkowy atut ;).</p>
<p>No tu już pewnie się domyślasz, że polecam repo GITa jako narzędzie do utrzymania ADLa.</p>
<p>Jako że przeważnie mamy więcej możliwości w danej chwili. To pomimo wyboru systemu kontroli wersji nadal otwierają się dylematy.</p>
<p>A to osobne repo dla dokumentacji i kodu?</p>
<p>A może wszystko razem?</p>
<p>Odpowiedź jak dla mnie — to zależy — od Ciebie i teamu.</p>
<p>Dla mnie naturalnym wyborem jest utrzymanie dokumentacji architektury przy projekcie. W tym samym repozytorium.</p>
<h2 id="konwencja">Konwencja.</h2>
<p>Zanim jednak przejdę do konkretów. Może trochę o konwencji, jaką możesz przyjąć.</p>
<p>To ponownie tylko moja sugestia, ale zainteresuj się Conventional Commits. Jest to pewna konwencja pisania commit message.
Taki commit, ma pewne oznaczenie. Sugeruje ono, co tam się znajduje. Czy to jest fix, feature, refactor, test itd.
Jeżeli się tego będziesz trzymał. To będzie to też pomocne przy ograniczeniu rodzaju zmian w jednym commicie.
By nie pchać wszystkiego na raz tylko testy osobno, kodzik osobno itd.</p>
<p>Ja proponuje wzbogacenie CC o nowe oznaczenia:</p>
<ul>
<li>devops — wiadomo jakieś pipeliny, templatki itd.</li>
<li>adl lub adr - opis architektury
* arch — zmiana architektury np. aktualizacja modelu C4 → <a href="https://mrdev.pl/10-powodow-dla-ktorych-warto-znac-model-c4">więcej o C4</a>.</li>
</ul>
<p>Takie oznaczenia ciekawie wyglądają podczas wyświetlenia listy commitów.</p>
<p>O tak…
<img src="/assets/images/2023/02/jak-utrzymywac-adl-w-gitcie/git_log.png" alt="Polecenie wyświetlenia logów" class="center-image" />
Po instalacji powinieneś mieć dostęp do polecenia adr-tools w <strong>Command Palette</strong>.</p>
<p>I tak…
<img src="/assets/images/2023/02/jak-utrzymywac-adl-w-gitcie/gitlogs.png" alt="Wygląd logów GITa z Conventional Commits" class="center-image" /></p>
<h2 id="przykładzik">Przykładzik.</h2>
<p>Teraz pozostaje już tylko utworzyć folder (doc/adl) na dokumentację architektury i utrzymywać tam ADRki.</p>
<p>Możesz skorzystać z templatki i VSCode. Nawet jak używasz innego narzędzia, które nie wspiera templatek ADL. To możesz dla samej architektury użyć VSCode do ich utrzymania.</p>
<p><img src="/assets/images/2023/02/jak-utrzymywac-adl-w-gitcie/doc_adl.png" alt="Katalog doc zawierający ADL" class="center-image" /></p>
<p>Więcej o templatkach w moim poprzednim wpisie.</p>
<p>Same polecenia GITa to już banały:</p>
<ul>
<li>git add -p /doc/adl - dodanie nowych ADRów wraz z przeglądem zmian (parametr -p)</li>
<li>potwierdzanie zmian (dla polecenia wyżej) odpowiednio y - yes, n - no</li>
<li>git commit -m”adr: add new adr entry for CQRS”</li>
<li>na koniec git push…</li>
</ul>
<p>I tak oto łączysz GITa, Conventional Commits i ADL.</p>
<p>Jeszcze tylko Diagram as Code i wszystko jest w jednym miejscu.</p>
<p>PS: Co sądzisz o używaniu GITa do utrzymywania logów decyzji architektonicznych?</p>
<p>PS: Więcej o ADL i ADR znajdziesz w moim poście: <a href="https://mrdev.pl/jak-uzywac-adl-i-adr-w-projekcie">Jak używać ADL i ADR w projekcie?</a></p>
<p>PS: Zainteresował cię temat? Zajrzyj do mojego newslettera: <a href="https://modelc4.pl">Model C4</a>.</p>
<p>PS: Jak używać VSCode do tworzenia ADRów? Dowiesz się z mojego posta -> <a href="https://mrdev.pl/jak-utrzymywac-adl-z-wykorzystaniem-vscode">Jak utrzymywać ADL z wykorzystaniem VSCode?</a></p>
<hr />Krzysztof OwsianyUżywam komputerów od wielu lat. Jestem dinozaurem, zaczynałem w latach 90.Podsumowanie roku 20222022-12-29T00:00:00+00:002022-12-29T00:00:00+00:00https://mrdev.pl/podsumowanie-2022<p><img src="/assets/images/2022/12/podsumowanie-roku-2022/post-big.jpg" alt="Podsumowanie roku 2022" class="post-center-image" /></p>
<p>Przez cały rok próbowałem stosować kalendarz. Rozpisując w nim zadania i realizować dzień po dniu. Były w tym przebłyski mojego geniuszu, ale także całkowita ignorancja. Cenię sobie ten prosty sposób na planowanie roku, miesięcy tygodni i samych dni. Bez niego wiele, by się nie wydarzyło. A pewnych sprawach w ogóle bym nie pamiętał.</p>
<h2 id="nagrywanie-kursu">Nagrywanie kursu</h2>
<p>Wystartowałem pełen energii i nadziei po przedsprzedaży mojego kursu o BigPicture EventStorming -> <a href="https://SzkolaEventStormingu.pl">SzkolaEventStormingu.pl</a>. Niestety nie poszło to tak sprawnie, jak rok wcześniej, gdy tworzyłem <a href="https://ModelC4.pl">ModelC4.pl</a>. Tym razem postanowiłem nie montować samodzielnie, lecz skorzystać z pomocy Mikołaja.</p>
<p>Niestety wybuchła wolna co mnie całkowicie zablokowało.
Nawet powstałą moja inicjatywa nadania dostępu do kursu w zamian za wsparcie Ukrainy kwotą min 500 zł. I udało się. Trzy osoby skorzystały i wsparły na łączną sumę 2000 zł jedną z wybranych form wsparcia. Więcej znajdziesz na ten temat tutaj: (https://mrdev.pl/pomoc-ukrainie).</p>
<p>Pozbierałem się i wznowiłem nagrywanie, ale nie szło już to tak dobrze. Obecnie brakuje mi kilka godzin, by dokończyć. Mam plan, by zrobić to do końca 2022 roku… Lwia część tego 14 modułowego kursu jest już dostępna. Jednak nie wznawiałem sprzedaży zarówno ModeluC4, jak i EvnetStorming BigPicture.
Tym samym nie zarobiłem kokosów i nadal pracuję na kontrakcie B2B.</p>
<h2 id="zmiana-pracy">Zmiana pracy</h2>
<p>W tym roku zakończyłem moją lekko ponad 3-letnią karierę w Billennium. Była to ciekawa i fascynująca przygoda. Jednak trzeba ponownie wyjść ze strefy komfortu i ruszyć dalej.</p>
<p>Te trzy lata mocno wpłynęły na moją karierę. Rozwijałem wiele umiejętności. Jednak, by dalej się rozwijać. Trzeba coś zmienić i tak właśnie się stało na jesieni. Nie była to łatwa decyzja. Przed podobną stanąłem rok wcześniej i nie zdecydowałem się na zmianę. Jednak tym razem postanowiłem to zmienić.</p>
<h2 id="wystąpienia-publiczne">Wystąpienia publiczne</h2>
<p>Udało się także przeprowadzić warsztat na ES na konferencji TestWarez 2022 w Łodzi i tym samym jako młody tatuś zabrałem mojego synka na pierwszą konferencję ze świata IT.</p>
<p>Rok 2022 przez ojcowanie nie był obfity w wystąpienia publiczne. Kilka prezentacji odbyło się online. Udało się też opowiedzieć o introwertyzmie na konferencji (PyrCaster.pl) w Poznaniu.
Oczywiście udałem się z całą rodziną.</p>
<h2 id="rodzina">Rodzina</h2>
<p>Za to od początku lata dość regularnie zabieram synka na basen. Gdzie pod okiem instruktora uczy się kontaktu z wodą. Nie jest to trywialny proceder, zważywszy na to, że mieszkam na tak zwanym zadupiu i na basen mam ok. 80 minut dojazdu. Zabiera mi to sporo czasu. Jednak radość dziecka jest w tej sytuacji wystarczającym motywatorem do kontynuowania.</p>
<p>Uświadomiłem sobie, że wolę spędzać czas z synkiem, zamiast palić godziny przed komputerem…</p>
<h2 id="azure">Azure</h2>
<p>Ten rok to też większy kontakt z Azurem i tworzenie komercyjnych rozwiązań z C#. Nadal będę kontynuował pracę oraz próby wykorzystania DDD właśnie w tej chmurowej architekturze przy wsparciu czystej architektury.</p>
<h2 id="sprzedaż-kursów">Sprzedaż kursów</h2>
<p>Co więcej, nie było dużego celu z wyjątkiem kursu w tym roku i planów związanych ze sprzedażą dwóch kursów.
Nie udało się, ale wiele przez ten rok się nauczyłem. Inaczej, uświadomiłem sobie jaki kiepski ze mnie handlarz…</p>
<h2 id="codzienne-czytanie">Codzienne czytanie</h2>
<p>Zawaliłem mój codzienny rytuał czytania książek i wróciłem do niego.</p>
<h2 id="książka-o-c4-i-eventstormingu">Książka o C4 i EventStormingu</h2>
<p>Nie napisałem książki o C4 i EventStormingu jak planowałem. Powstał spis treści i na tym praca autora się zakończyła.</p>
<h2 id="książki">Książki</h2>
<p>Zdecydowanie więcej czytam po angielsku i kilka pozycji jest w trakcie, a także sporo ukończyłem.</p>
<p>Więcej książek kupiłem aniżeli przeczytałem…</p>
<p>Nowe książki pojawiły się też w mojej <a href="https://mrdev.pl/biblioteczka">biblioteczce</a>.</p>
<h2 id="własne-projekty">Własne projekty</h2>
<p>Nieregularnie rozwijam też moje dwa projekty. Pierwszy to platforma kursowa Courser, jaką możesz zobaczyć na <a href="https://courses.mrdev.pl">courses.mrdev.pl</a> druga to Toko moduł sprzedaży produktów online (moich) z wykorzystaniem Table Storage, ServiceBus, Azure Functions w .NET Core. Uczę się przy tym łączenia EventStormingu, EventModelingu oraz EventSourcingu. Oczywiście szlifuje też DDD.</p>
<h2 id="na-koniec">Na koniec</h2>
<p>Spoglądając na ten rok 2022 z perspektywy BigPicture. Można zauważyć, że wszystko jest źle i bardzo negatywnie. Jednak staram się patrzeć na to, jak na lekcję i wyciągać wnioski na przyszłość.</p>
<p>Jest też kilka dowodów na mój rozwój biznesowy i zawodowy.</p>Krzysztof OwsianyJak utrzymywać ADL z wykorzystaniem VSCode?2022-11-21T00:00:00+00:002022-11-21T00:00:00+00:00https://mrdev.pl/jak-utrzymywac-adl-z-wykorzystaniem-vscode<p>Jako programista często wykorzystuję różne narzędzia. Tak było tym razem, gdy MS wypuścił swoje nowe LEKKIE narzędzie <strong>Visual Studio Code</strong>. Nie czekałem zbyt długo by skosztować.</p>
<p>I wiesz co? Nie żałuję. <strong>VSCode</strong> wpadło do mojego kanonu narzędzi. I bardzo sobie go cenie.</p>
<p>Zwłaszcza że można bardzo mocno rozszerzać jego możliwości.</p>
<p>Takim ciekawym rozszerzeniem jest <strong>adr-tools</strong>.</p>
<p>O ADRach pisałem więcej w moim poście tutaj -> <a href="https://mrdev.pl/jak-uzywac-adl-i-adr-w-projekcie">Jak używać ADL i ADR w projekcie?</a>.</p>
<p>To rozszerzenie pozwala na utrzymywanie ADL z wykorzystaniem VSCode.</p>
<p>Trochę automatyzacji nie zaszkodzi…</p>
<h2 id="jak-przygotować-vscode">Jak przygotować VSCode?</h2>
<p>Oczywiście trzeba zainstalować dodatek.</p>
<p>Jest to bardzo proste. Wystarczy użyć ikonki extensions i następnie wyszukać adr-tools.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/adr-tools-installation.png" alt="Instalacja dodatku adr-tools w VSCode" class="center-image" />
Po instalacji powinieneś mieć dostęp do polecenia adr-tools w <strong>Command Palette</strong>.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/command-palette.png" alt="Command Palette po instalacji adr-tools" class="center-image" /></p>
<h2 id="utworzenie-adl-z-wykorzystaniem-adr-tools">Utworzenie ADL z wykorzystaniem adr-tools.</h2>
<p>Pierwsze użycie będzie wiązało się z użyciem polecenia ADR Init.</p>
<p>Po wyborze otrzymasz pytanie gdzie składować Twoja dokumentację?</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/set-folder.png" alt="Ustawianie katalogu dla ADLa" class="center-image" /></p>
<p>Ustawiasz wedle uznania. Ja wybrałem katalog doc\adl</p>
<p>Następnie trzeba wskazać domyślną templatkę dla wpisów ADR.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/set-template.png" alt="Ustawianie templatki dla ADRów" class="center-image" /></p>
<p>Ja użyję tej sugerowanej. Twój wybór może być oczywiście inny. Możesz przygotować własną templatke zgodnie z własnymi upodobaniami.</p>
<p>Ostatni krok to wskazanie katalogu, w którym znajdzie się templatka. Ja tutaj też zatwierdzam enterem i przechodzę dalej.</p>
<p>To był ostatni krok i moim oczom ukazały się dwa katalogi jak na zrzucie.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/after-init-adl.png" alt="Po utworzeniu ADLa" class="center-image" /></p>
<p>Jest templatka i poniżej pierwszy wpis z numerem 0000…</p>
<h2 id="tworzenie-adrów">Tworzenie ADRów.</h2>
<p>Dodawanie kolejnego wpisu to już użycie ADR New.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/new-adr-1.png" alt="Dodawanie nowego ADRa" class="center-image" /></p>
<p>Po wyborze polecenia dodawania ADRa.</p>
<p>Należy wprowadzić jego nazwę, jaka będzie znajdować się po kolejnym numerze identyfikacyjnym.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/new-adr-2.png" alt="Ustawianie nazwy nowego ADRa" class="center-image" /></p>
<p>Następnie określić status.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/new-adr-3.png" alt="Ustawienie statusu ADRa" class="center-image" /></p>
<p>Możemy wskazać relację do jakiegoś innego wpisu. Ja tutaj wybieram None.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/new-adr-4.png" alt="Ustawienie relacji z innym ADRem" class="center-image" /></p>
<p>Natomiast jeżeli wybierzesz inną opcję. To będziesz musiał wskazać powiązanego ADRa.</p>
<p>I tak oto dodałem kolejny wpis.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/new-adr-5.png" alt="Nowy wpis dodany" class="center-image" /></p>
<h2 id="pozostałe-polecenia">Pozostałe polecenia</h2>
<p>Oczywiście pozostałe polecenia także są pomocne. Możesz na przykład powiązać istniejące ADRy przy pomocy polecenia ADR Link. Wskazujesz wówczas: ADR źródłowy, relację i ADR docelowy.</p>
<p>Możliwa jest też zmiana statusu przy pomocy ADR Status. Wówczas wskazujesz ADRa do zmiany i ustawiasz status, jaki chcesz.</p>
<p>Możesz też wygenerować dokumentację z wykorzystaniem Adr Generate documentations. To jednak już pozostawiam Twoim własnym eksperymentom.</p>
<h2 id="o-konfiguracji">O konfiguracji</h2>
<p>Konfiguracja, jaką ustawiłeś podczas użycia ADR Init. Znajduje się w .vscode/settings.json.</p>
<p><img src="/assets/images/2022/11/jak-utrzymywac-adl-z-wykorzystaniem-vscode/configuration.png" alt="Konfigurowanie adr-tools" class="center-image" /></p>
<p>Możesz ją zmienić jeżeli, jest taka potrzeba.</p>
<p>PS: Co sądzisz o ADLach w VSCode i samym narzędziu adr-tools?</p>
<p>PS: Więcej o ADL i ADR znajdziesz w moim poście: <a href="https://mrdev.pl/jak-uzywac-adl-i-adr-w-projekcie">Jak używać ADL i ADR w projekcie?</a></p>
<p>PS: Zainteresował cię temat? Zajrzyj do mojego newslettera: <a href="https://modelc4.pl">Model C4</a>.</p>
<p>PS: Chcesz wykorzystywać GITa jako twój ADL? Piszę o tym w poście: <a href="https://mrdev.pl/jak-utrzymywac-adl-w-gitcie">Jak utrzymywać ADL w GITcie?</a></p>
<hr />Krzysztof OwsianyJako programista często wykorzystuję różne narzędzia. Tak było tym razem, gdy MS wypuścił swoje nowe LEKKIE narzędzie Visual Studio Code. Nie czekałem zbyt długo by skosztować.Jak używać ADL i ADR w projekcie?2022-10-04T00:00:00+00:002022-10-04T00:00:00+00:00https://mrdev.pl/jak-uzywac-adl-i-adr-w-projekcie<p>Architektura systemów IT często ulega zmianie. Wynika to z różnych przyczyn. Jednak najczęściej (w moim przypadku) zmiana była wynikiem próby nadążenia za zmieniającym się biznesem. Dla biznesu to nie jest wielki problem. Ot, tak dodaj tu buttona. Tam checkboxa a najlepiej to jak byś przyśpieszył generowanie raportów, bo teraz to jest bardzo czasochłonne i klienci się niecierpliwią.</p>
<p>Zapewne słyszałeś takie lub podobne pomysły. Niczym jeden krzyk wywołujący lawinę śniegu. Biznes prędzej czy później się zmieni w pogoni za światem. Także będzie ulegała zmianie architektura systemów. Będzie ewoluować.</p>
<p>Utrzymanie systemów informatycznych to duża odpowiedzialność. Wiedzę dotycząca ich budowy jest tutaj kluczowa. Dlatego dobrze by było wiedzieć, dlaczego akurat w tym module używamy CosmosDB a w innym PostgreSql?</p>
<p>Po miesiącach czy latach rozwoju softu możemy zapomnieć, jakie były powody wyboru tych technologii.</p>
<p>Może też nastąpić rotacja pracowników i możemy pozostawić następcy mały prezent w postaci historii zmian architektury.</p>
<p>I najlepiej kto pozwolił na wykorzystanie tych technologii? → Kto to tak spier….</p>
<p>Dobrym miejscem przechowania takich informacji są system kontroli wersji. To nie tylko miejsce przechowywania kodu źródłowego. To też przestrzeń dla dokumentacji. Także architektury całego systemu. Blisko kodu, pod ręką.</p>
<h2 id="jak-to-robić">Jak to robić?</h2>
<p>Zapewne już ktoś to wymyślił? Tak to prawda. Istnieją do tego metody.</p>
<p>Jednak na początek trochę teorii.</p>
<p>Mianem historii zmian architektonicznych określamy <strong>ADL</strong>, czyli <strong>Architecture Decision Log</strong>.</p>
<p>Log zawierający wszelkie istotne z punktu widzenia architektury wpisy (zmiany).</p>
<p>Początkowy wybór technologii to także pewna decyzja do zanotowania.</p>
<p>Każdy taki pojedynczy wpis jest określany jako <strong>ADR</strong>, czyli <strong>Architecture Decision Record</strong>.</p>
<p>Tym samym ADL ma rolę organizacyjną i można określać jego mianem np. arkusz Excela zawierający wpisy ADR.</p>
<p>Jednak kto by chciał to robić w Excelu… Mamy przecież GITa….</p>
<p>Najlepiej to jeszcze by łatwo to było formatowane i proste w edycji.</p>
<p>Tym sposobem wchodzimy w świat Markdowna.</p>
<h2 id="wzór-adru">Wzór ADRu.</h2>
<p>W internecie można spotkać wiele wzorów decyzji architektonicznych.</p>
<p>Tutaj jest jeden ze zbiorów: <a href="https://github.com/joelparkerhenderson/architecture-decision-record">https://github.com/joelparkerhenderson/architecture-decision-record</a></p>
<p>Przykładowy ADL znajdziesz tutaj: <a href="https://docs.devland.is/technical-overview/adr">https://docs.devland.is/technical-overview/adr</a></p>
<p>Bardziej lub mniej skomplikowane. Wybór należy do zespołu. Ludzi, którzy podejmują pierwsze decyzje co do wyglądu architektury i samego ADRa.</p>
<p>Polecam na początek użyć prostego wzorca zaproponowanego przez Michaela Nygard. Przedstawia go w swoim wpisie: <a href="https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions">https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions</a></p>
<p>Taki wpis zawiera w sobie serie nagłówków i opis.</p>
<p><strong>Title</strong></p>
<p>Taka decyzja powinna mieć tytuł. Dla łatwej identyfikacji przeznaczenia wpisu.</p>
<p><strong>Context</strong></p>
<p>Kontekst to opis zawierający informację na temat powodów zmiany architektury.</p>
<p>Dlaczego taka zmiana była konieczna?</p>
<p>Jakie motywy kierowały ówczesnym zespołem.</p>
<p><strong>Decision</strong></p>
<p>Opis podjętej decyzji. Czyli co zamierzamy zmienić. Jak chcemy rozwiązać zaistniały problem.</p>
<p><strong>Status</strong></p>
<p>Taki wpis może mieć swój status. Warto by było to też gdzieś opisane.</p>
<p>Decyzja może być np. zaakceptowana, odrzucona, cofnięta, zaproponowana.</p>
<p><strong>Consequences</strong></p>
<p>Konsekwencje wprowadzonej decyzji. Jakie będą skutki dla systemu po wprowadzonych zmianach.</p>
<h2 id="jak-nazywać-pliki-z-adrami">Jak nazywać pliki z ADRami?</h2>
<p>Dorze, by było mieć też pewien dokument zawierający opis używanego wzorca ADRu. Tak by każdy, kto wprowadza takie wpisy. Wiedział, jak używać. Jakie statusy ma do dyspozycji. Tym samym nie wymyślać nowych a jak takowe wejdą do użycia zaktualizować dokument.</p>
<p>To może być prosty dokument readme.txt znajdujący się wewnątrz ADLa.</p>
<p>Takie wpisy bez jednego ważnego elementu będą chaotyczne i prawie bezwartościowe.</p>
<p>Jest nim oczywiście odpowiednie oznaczanie wpisów. Wedle ich wprowadzania np. sekwencją 0001, 0002, 0003….000n. Można też w nazwie pliku, wskazać czego dotyczy ADR.</p>
<p>np. <strong>0003_use_cqrs.md</strong></p>
<p>Numeracja wprowadzi hierarchię do loga. Przedstawi prawdziwy bieg wydarzeń.</p>
<p>Jeżeli przykładowy wzorzec nie jest dla Ciebie satysfakcjonujący. To dodaj, co potrzebujesz:</p>
<p>Autora zmiany, datę zmiany, odniesienia do diagramów architektonicznych.</p>
<p>PS: Warto, także w repozytorium utrzymywać diagramy zgodnie z ADLem. Czyli tak zwane <strong>Diagram as Code</strong>. Czy to będzie kod C#, Java, PlantUML to już twoja decyzja. Jednak ważne by ADL szedł zgodnie z diagramami.</p>
<p>PS: Zainteresował cię temat? Zajrzyj do mojego newslettera: <a href="https://modelc4.pl">Model C4</a>.</p>
<p>PS: Przeczytaj też mój post o używaniu ADLi z wykorzystaniem adr-tools w VSCode -> <a href="https://mrdev.pl/jak-utrzymywac-adl-z-wykorzystaniem-vscode">Jak utrzymywać ADL z wykorzystaniem VSCode?</a></p>
<p>PS: Chcesz wykorzystywać GITa jako twój ADL? Piszę o tym w poście: <a href="https://mrdev.pl/jak-utrzymywac-adl-w-gitcie">Jak utrzymywać ADL w GITcie?</a></p>
<hr />Krzysztof OwsianyArchitektura systemów IT często ulega zmianie. Wynika to z różnych przyczyn. Jednak najczęściej (w moim przypadku) zmiana była wynikiem próby nadążenia za zmieniającym się biznesem. Dla biznesu to nie jest wielki problem. Ot, tak dodaj tu buttona. Tam checkboxa a najlepiej to jak byś przyśpieszył generowanie raportów, bo teraz to jest bardzo czasochłonne i klienci się niecierpliwią.Pomoc Ukrainie2022-02-26T00:00:00+00:002022-02-26T00:00:00+00:00https://mrdev.pl/pomoc-ukrainie<p><img src="/assets/images/2022/02/pomoc-ukrainie/post-big.png" alt="Pomoc Ukrainie" class="post-center-image" /></p>
<h2 id="jak-możesz-pomóc">Jak możesz pomóc?</h2>
<p>Wpłać minimum 500 PLN na wybraną akcję wspierającą Ukrainę w obecnej sytuacji.
np.:</p>
<ul>
<li><a href="https://www.siepomaga.pl/ukraina?fbclid=IwAR0WHHNOBuC-jnW-vniBE1vmEh-mgS31dsj2cpO2VMGkl0yAg5SMjvB6IvY">Siepomaga - Ukraina</a></li>
<li><a href="https://www.siepomaga.pl/pah-ukraina">Siepomaga - Polska Akcja Humanitarna - Ukraina</a></li>
<li><a href="https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi">NBU - wsparcie wojska</a></li>
<li><a href="https://zrzutka.pl/pomoc-dla-obroncow-lwowa-i-sambora">Pomoc dla obrońców Lwowa i Sambora!</a></li>
<li>znasz inne, daj znać w komentarzu.</li>
</ul>
<p>Ja nadam Ci dostęp do wybranego kursu.</p>
<h2 id="jak-to-zrobić">Jak to zrobić?</h2>
<ol>
<li>Wybierz kurs.</li>
<li>Przelej 500 PLN na wybraną formę wsparcia Ukrainy.</li>
<li>Prześlij mi e-maila na <a href="mailto:krzysztof@mrdev.pl?subject=Pomoc Ukrainie">krzysztof@mrdev.pl</a> zawierającego potwierdzenie takiej transakcji. Czy to z banku, czy z platformy.</li>
<li>E-email powinien zawierać informację jaki kurs chcesz otrzymać.</li>
<li>Nadam Ci dostęp do kursu.</li>
</ol>
<p>PS:</p>
<ul>
<li>Zapewne w przeciągu 24h od maila.</li>
<li>Nie wystawiam FV.</li>
<li>Nie mam możliwości zwrotu wpłaconych pieniędzy.</li>
<li>Możesz zakupić kurs dla kogoś.</li>
<li>Jeżeli chcesz większą ilość - dla zespołu. To proszę o kontakt: <a href="mailto:krzysztof@mrdev.pl?subject=Pomoc Ukrainie">krzysztof@mrdev.pl</a>. Coś ogarniemy.</li>
<li>Na chwilę obecną nie określam końca wsparcia. Pewnie to kiedyś nastąpi.</li>
</ul>
<h2 id="kursy">Kursy</h2>
<ol>
<li>Model C4 dla .NETu.
<ul>
<li>Model C4 od Simona Browna.</li>
<li>Wykorzystanie EventStormingu do tworzenia diagramów architektonicznych.</li>
<li>Implementacja Diagram as Code w .NET Core.</li>
<li>Wykorzystanie UMLa do warstwy jednej z warstw modelu C4.</li>
<li>Inne narzędzia: Miro, PlantUML.</li>
<li>ADL i ADRy.</li>
<li>Nagrania warsztatów i webinarów.</li>
<li>13 modułów w programie.</li>
</ul>
</li>
<li>Pora na BigPicture.
<ul>
<li>Wybór celu.</li>
<li>Dobór ludzi.</li>
<li>Prowadzenie warsztatu.</li>
<li>Narzędzia dla prowadzących online i offline.</li>
<li>Rozszerzenia do BigPicture.</li>
<li>14 modułów w programie.</li>
<li>Obecnie kurs jest w trakcie nagrywania - nie jest jeszcze ukończony.</li>
</ul>
</li>
</ol>Krzysztof OwsianyAfter.conf - S02E07 - Własny meetup - Maciej Gajdzica2022-02-06T00:00:00+00:002022-02-06T00:00:00+00:00https://mrdev.pl/S02E07<p><img src="/assets/images/podcast/season2/episode7/post-big.png" alt="After.conf - S02E07 - Własny meetup - Maciej Gajdzica" class="post-center-image" /></p>
<p>Oto kolejny odcinek podcastu. Tym razem rozmawiam z Maciejem, który założył w Gdańsku swój meetup o tematyce embedded. Jest świeży w tej branży.</p>
<p>Niestety obecna sytuacja pokrzyżowała jego plany.</p>
<h4 id="tematy">Tematy</h4>
<ul>
<li>Jak uruchomić własny meetup?</li>
<li>Pozyskiwanie sponsorów.</li>
<li>Miejsce na meetup.</li>
<li>Czy warto wystartować meetup?</li>
<li>Porady dla innych.</li>
</ul>
<div style="padding: 10px;">
<iframe src="https://anchor.fm/after-conf/embed/episodes/S02E07---Wasny-meetup---Maciej-Gajdzica-e1cpimu" frameborder="0" scrolling="no" style="width:100%;height:100%;">
</iframe>
</div>
<h2 id="podcast-dostępny-jest-też-na-platformach">Podcast dostępny jest też na platformach:</h2>
<ul>
<li><strong><a href="https://itunes.apple.com/us/podcast/after-conf/id1415737871">Apple Podcasts</a></strong></li>
<li><strong><a href="https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy8zYjk3Y2Y4L3BvZGNhc3QvcnNz">Google Podcasts</a></strong></li>
<li><strong><a href="https://anchor.fm/after-conf">Anchor</a></strong></li>
<li><strong><a href="https://www.podbean.com/podcast-detail/dik6s-98847/After.conf-Podcast">PodBean</a></strong></li>
<li><strong><a href="https://open.spotify.com/show/0AknGfwYw5up7JJa02k1mv">Spotify</a></strong></li>
<li><strong><a href="https://anchor.fm/s/3b97cf8/podcast/rss">RSS</a></strong></li>
</ul>
<p><strong class="h-after-conf-itunes">Mam do Ciebie bardzo wielką prośbę. Oceń ten podcast na <a href="https://podcasts.apple.com/us/podcast/after-conf/id1415737871?mt=2">iTunes</a>. Przyczynisz się tym samym do jego rozwoju. :)</strong></p>
<h2 id="maciej-gajdzica">Maciej Gajdzica</h2>
<ul>
<li><strong><a href="https://twitter.com/maciekgajdzica">Twitter</a></strong></li>
<li><strong><a href="https://www.facebook.com/ucgosupl">Facebook</a></strong></li>
<li><strong><a href="https://www.linkedin.com/in/maciej-gajdzica-156370a8">LinkedIn</a></strong></li>
<li><strong><a href="https://ucgosu.pl">Blog</a></strong></li>
<li><strong><a href="https://ucgosu.pl">Kurs C Dla Zaawansowanych</a></strong></li>
<li><strong><a href="https://tddembedded.pl">Kurs TDD Embedded</a></strong></li>
</ul>
<h3 id="gdańsk-embedded-meetup">Gdańsk Embedded Meetup</h3>
<ul>
<li><strong><a href="https://www.meetup.com/pl-PL/Gda%C5%84sk-Embedded-Meetup/">Gdańsk Embedded Meetup</a></strong></li>
<li><strong><a href="https://www.facebook.com/Gda%C5%84sk-Embedded-Meetup-104488460979904">Meetup na Facebooku</a></strong></li>
</ul>
<h2 id="zjutubiona-wersja-afterconf">Zjutubiona wersja <strong><a href="https://mrdev.pl/after-conf">After.conf</a></strong>:</h2>
<div width="100%" height="360" style="margin-left:auto; margin-right:auto;">
<embed width="100%" height="360" src="https://www.youtube.com/embed/ekb92WsdteE" />
</div>
<hr />
<p>Zapisz się na newsletter o EventStormingu, EventModelingu i innych technikach - <strong><a href="https://szkolaeventstormingu.pl?utm_source=mrdev&utm_medium=article&utm_campaign=szkolaeventstormingu&utm_content=af_s02e07">Szkoła EventStormingu</a></strong></p>Krzysztof Owsiany10 powodów, dla których warto znać Model C4.2020-12-22T00:00:00+00:002020-12-22T00:00:00+00:00https://mrdev.pl/10-powodow-dla-ktorych-warto-znac-model-c4<p>Chcesz wiedzieć, dlaczego <strong>Model C4</strong> jest Ci potrzebny? Myślę, że jesteś w dobrym miejscu.</p>
<p>Pracowałem kiedyś w pewnej firmie nad dużym projektem. Oczywiście nie mogę zdradzić konkretów.
System miał obsługiwać sporą bazę pracowników oraz klientów w całej Polsce.</p>
<p>Pomyślisz sobie. Pewnie był skomplikowany. I słusznie był…
W takiej sytuacji dobrze by było posiadać skondensowaną wiedzę w postaci narysowanego diagramu. Komponentów systemu było wiele.</p>
<p><a href="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c4draw-big.jpg"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c4draw.jpg" alt="Odręcznie rysowana warstwa modelu Model C4." class="post-center-image" /></a></p>
<p>Jak się okazało, taki model architektury istniał. Jednak to, w jaki sposób został sporządzony i jakie informacje zawierał - pozostawiało wiele do życzenia. Powiem inaczej. Więcej to wprowadzało niezrozumienia, zamieszania niż wartości.
Diagram był narysowany jak przez dziecko w przedszkolu. Zapewne o średnich zdolnościach artystycznych.
Kompletnie go nie rozumiałem. Chaotyczne linie łączące różno-kształtne elementy. Skróty, które w zasadzie nic nie mówiły.
Tylko usiąść i płakać. Jednak jako bohater tej historii. Tego nie uczyniłem. Kilka miesięcy potem zmieniłem pracę :). Diagram nie był głównym powodem.</p>
<p>Jeżeli podobna sytuacja nie jest Ci obca. To już masz jeden powód, by skierować swoje zainteresowanie do <strong>Modelu C4</strong>.</p>
<p>Dam Ci ich znacznie więcej. Tylko czytaj dalej.</p>
<h2 id="1-podział-na-4-warstwy">1. Podział na 4 warstwy.</h2>
<p><strong>Model C4</strong> opiera się o rozdzielenie opisu architektury na cztery warstwy abstrakcji.
Każda z nich odgrywa inną rolę. Posiada zróżnicowane cechy i odmienne zawiera odmienne szczegóły.
Dzięki temu może być kierowana do programistów, architektów, PO itd. Czyli osób o odmiennych rolach w zespole czy firmie.</p>
<p>Wyróżniamy. Jak nazwa wskazuje 4 warstwy:</p>
<ul>
<li><strong>C1 - Context System</strong></li>
<li><strong>C2 - Containers</strong></li>
<li><strong>C3 - Components</strong></li>
<li><strong>C4 - Code</strong>.</li>
</ul>
<p>W pewnym sensie można zauważyć tutaj podejście od ogółu do szczegółu.</p>
<h2 id="2-rozproszenie-informacji-na-różne-diagramy-architektoniczne">2. Rozproszenie informacji na różne diagramy architektoniczne.</h2>
<p>Jak pisałem wyżej. Spotkałem na swojej drodze diagramy opisu architektury. Przeważnie były to coś, co przypominało bigos lub spaghetti. Wszystkie informacje wymieszane razem. Elementy systemu na jednym rysunku połączone strzałkami. Brak podkreślenia znaczenia lub przeznaczenia konkretnych bloków na diagramie. Krzywo rysowane (koślawe) elementy.</p>
<p><a href="https://modelc4.pl"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c2_containers.jpg" alt="ModelC4 - warstwa C2 - kontenery." class="post-center-image" /></a></p>
<p>Model C4 wprowadza organizację do wizualizacji architektury. Poszczególne warstwy wymienione w pkt. 1 Nie tylko dzielą system. Stanowią także zlepek odrębnych informacji. Razem to całość schowana pod płaszczykami warstw. Osobno to wystarczający opis fragmentu z całego systemu. Mniej szczegółów oznacza mniej trudności ze zrozumieniem.</p>
<h2 id="3-możliwość-programowania-wizualizacji-architektury-w-wielu-językach">3. Możliwość programowania wizualizacji architektury w wielu językach.</h2>
<p>Do tworzenia wizualizacji w modelu C4. Możesz wykorzystać jeden z popularnych języków programowania.
Oczywiście <strong>C#</strong> jest jednym z nich. Kilka innych, z jakich możesz skorzystać to: <strong>JAVA</strong>, <strong>TypeScript</strong>, <strong>PHP</strong>, <strong>GO</strong>, <strong>Python</strong>, <strong>DSL</strong>, <strong>YAML</strong>. Jest tego sporo. I jak się okazuje nie wszystkie to jednak języki.</p>
<p><a href="https://modelc4.pl"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c4_code.jpg" alt="ModelC4 - warstwa C4 - kod." class="post-center-image" /></a></p>
<p>Dzięki wykorzystaniu programowania nie trzeba używać GUI. Zapewne wiele osób będzie zadowolona z takiego stanu rzeczy. Dzięki wykorzystaniu narzędzia <strong><a href="https://structurizr.com/">Structurizer</a></strong>. Możesz wygenerować wizualizację na bazie kodziku lub np. YAMLa.</p>
<p>Jak dla mnie całkiem przydatna sprawa. Także za sprawą kolejnych pkt. z listy. Czytaj dalej.</p>
<h2 id="4-historia-zmian-w-systemie-kontroli-wersji">4. Historia zmian w systemie kontroli wersji.</h2>
<p>Skoro można programować. To grzechem byłoby nie korzystać z narzędzi kontroli wersji.</p>
<p>Będzie to najlepsza historia rozwoju systemu architektury systemu.</p>
<p>Zapewne znasz architekturę ewolucyjną? Jeżeli nie to zapraszam do mojej <a href="https://mrdev.pl/biblioteczka#Architektura">biblioteczki</a>. Znajduje się tam w kategorii architektura książka na ten temat.</p>
<p>Chodzi przede wszystkim o to, że tak jak biznes oraz kod zmianie ulega architektura. W trakcie rozwoju zapewnić musimy odmienne drivery architektoniczne. System zmienia się i stawia przed nami odmienne wymagania.
Dzięki wykorzystaniu programowania do opisu architektury.</p>
<p>Utrzymywaniu tego wszystkiego w repozytorium takim jak <strong>GIT</strong>. Możemy śmiało dokonywać poprawek. Poddawać potem to pod <strong>CodeReview</strong>. I rozwijać wraz z projektem.</p>
<p>Można wpleść to do swojego flow agileowego lub innego. Jako stały element.</p>
<h2 id="5-wykorzystanie-adl-i-adr">5. Wykorzystanie ADL i ADR</h2>
<p>Wygląda na to, że punkty się ze sobą łączą. Nie planowałem tego, samo wyszło.</p>
<p>Programowanie architektury w modelu C4 można połączyć z <strong>ADL (Architecture Decision Log)</strong> oraz <strong>ADR (Architecture Decision Record)</strong>.</p>
<p>Wówczas to właśnie w <strong>ADLu</strong> możesz umieszczać kodzik odpowiedzialny za wizualizację architektury.
Następnie wraz z nanoszeniem istotnych zmian w modelu. Dokonywać odpowiednich wpisów z wykorzystaniem <strong>ADRów</strong>.
To propozycja na zbudowanie <strong>ADL</strong> z wykorzystaniem repozytorium. Myślę, że jest to ciekawe podejście.</p>
<p><strong class="h-4">Czy już zainteresowałem cię tematem? Chcesz więcej? Zapraszam na mój newsletter <a href="https://modelc4.pl">ModelC4.pl</a>.</strong></p>
<p><a href="https://modelc4.pl"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c4.gif" alt="ModelC4.pl - newsletter" class="post-center-image" /></a></p>
<p><strong class="h-4">Po zapisie i potwierdzeniu. Dostaniesz serię e-maili dotyczących C4. Będę tam też zamieszczał najlepsze oferty dołączenia do klanu <a href="https://modelc4.pl">Modelu C4</a>.</strong></p>
<h2 id="6-prosty-w-zrozumieniu">6. Prosty w zrozumieniu.</h2>
<p>Mniej szczegółów w jednym miejscu to większa przejrzystość. To często wpływa na czytelność i zrozumienie. Podział na warstwy pełniące różne role pozwala na selekcję informacji. Jeżeli trafimy do osoby nietechnicznej z odpowiednią warstwą. To zapewne zrozumie więcej. Niż jak by dostała cały diagram naszkicowany na kartce A1.</p>
<p>Zapewne przesadzam. Jednak często nie zdajemy sobie sprawy. Jak nie zrozumiałe są nasze opisy. I bez głębszego posiedzenia i analizy odbiorca może nie zrozumieć.</p>
<p>Może też błędnie zrozumieć. Niezrozumienie siebie nawzajem to bardzo duży problem w IT. Zwłaszcza na linii programiści — biznes.</p>
<p><a href="https://modelc4.pl"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c1_context.jpg" alt="ModelC4 - warstwa C1 - kontekst systemu." class="post-center-image" /></a></p>
<p>Widziałem to często podczas prowadzenia warsztatów z <strong><a href="https://mrdev.pl/eventstorming-co-to-takiego">EventStormingu</a></strong> jak z czasem złoto skryte w rudzie. Szlifowane, obrabiane ukazywało swoje piękno coraz to większej grupie uczestników. Z czasem dochodziło do zrozumienia, złożonych problemów.</p>
<p>Czy tak samo musi być z architekturą? Czy nie lepiej opierać się o proste elementy i stosować wyklarowany mechanizm i podstawowe komponenty?</p>
<p>Mam wrażenie, że prostota jest istota. I powinna być także dla Ciebie. Model C4 pozwala uprościć nasze wymysły, jakie tworzymy w trakcie projektowania architektur systemów.</p>
<h2 id="7-czytelna-wersja-elektroniczna">7. Czytelna wersja elektroniczna.</h2>
<p>Lubię rysować. Bloczki, walce. Łączyć je w całość. Niech stanowią odwzorowanie części rzeczywistości.
Niestety pismo mam tragiczne. Staram się, ale w trakcie, gdy chwytam flow. Forma przesłaniana jest treścią XD.</p>
<p>Niestety jest to bardzo nieczytelne. Nawet dla mnie. Wręcz łapię się na tym, że czasem nie rozumiem, co napisałem. Całe szczęście jest jeszcze komputer i można po normalnemu coś napisać…</p>
<p>I jak tu rozrysować czytelny schemat architektoniczny…</p>
<p><a href="https://modelc4.pl"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c3_components.jpg" alt="ModelC4 - warstwa C3 - komponenty." class="post-center-image" /></a></p>
<p>Ano tak. Przecież jest Model C4. Pozwala zrzucić ze mnie i Ciebie ten balast. Nie trzeba się już tak bardzo przejmować rysowaniem. Zrobić to może za nas <strong><a href="https://structurizr.com/">Structurizer</a></strong>.</p>
<p>Oczywiście trzeba nauczyć się użytkowania. Także nie jest to całkowicie darmowe narzędzie (jeden diagramik możesz utrzymywać za free).</p>
<p>Natomiast robi robotę. Dostarcza ładny diagram. Wystarczy odpowiednio oprogramować elementy.</p>
<p><strong>Czytelność w mojej opinii nieporównywalna.</strong></p>
<h2 id="8-relacje-pomiędzy-elementami">8. Relacje pomiędzy elementami.</h2>
<p>Tak jak wyżej wspominałem. Model C4 podzielony jest na cztery warstwy. Każda z niższych warstw, rozszerza pewien fragment wyższej. Takie przybliżenie lupą.</p>
<p>Do tego, jeżeli jest to z wizualizowane za pomocą <strong>Structurizera</strong>. Masz możliwość nawigowania. Klikasz w bloczek i rozwija ci się niższa warstwa. Powiązane ze sobą elementy na różnych warstwach pozwalają na rozwijanie szczegółów.</p>
<p>Dlatego jest to takie czytelne. Nie widzimy od razu całej złożoności tylko pewien wycinek rzeczywistości.</p>
<p><a href="https://modelc4.pl"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/c4_model.jpg" alt="ModelC4 - relacje między warstwami." class="post-center-image" /></a></p>
<p>Ze szczegółami systemu, zapoznajesz się poprzez zagłębianie krok po koku w elementy i warstwy architektury modelu.</p>
<p>Można go porównać do drzewa. Zaczynając od pnia. Przechodzimy w górę do grubszych odnóg, gałęzi i liści.</p>
<p>Z tą różnicą, że w C4 nie podziwiamy całego drzewa od razu. Tylko ukrywane są przed nami poszczególne jego fragmenty.</p>
<h2 id="9--możliwość-dostosowania-do-siebie">9. Możliwość dostosowania do siebie.</h2>
<p>Model C4 lansuje pewien wzorzec. Konkretne elementy, jakie można wykorzystywać na poszczególnych warstwach. Do tego pewne kolory.</p>
<p>Oczywiście możesz to wszystko adoptować do siebie, zespołu czy firmy. Jednak stosowanie pewnej wypracowanej formy niesie ze sobą także wartość. Jest szansa, że ktoś po drugiej stronie. Zrozumie w lot, gdyż zna C4 i podstawowe elementy.</p>
<h2 id="10-możliwe-użycie-w-procesie-continuous-integration">10. Możliwe użycie w procesie Continuous Integration.</h2>
<p>Ciągła integracja to obecnie często mus w projektach. Niesie ze sobą wirtualnego niewolnika. Pracującego w pocie czoła nad projektem.</p>
<p>Możesz w cały proces wpleść budowanie wizualizacji. Jeżeli masz opis architektury w kodziku i repozytorium.
Wystarczy wrzucić w cykl budowania aplikacji. Oczywiście dowolnie wedle własnego uznania.
Generować nową wizualizację. Jak się coś zmieni w repo. To niech zajmie się tym <strong>DevOps</strong>, <strong>Jenkins</strong>, <strong>TeamCity</strong>, <strong>Travis</strong> czy inne narzędzie. A ty ciesz się z automatyzacji.</p>
<p>I tak dotarłeś do końca. Jeżeli masz jakieś wątpliwości, pytania to postaram się na nie odpowiedzieć.
Wystarczy, że napiszesz komentarz, do czego zachęcam Lub bardziej intymnie, czyli na mojego e-maila: <a href="mailto:krzysztof@mrdev.pl">krzysztof@mrdev.pl</a>.</p>
<p><strong class="h-2">Zachęcam także do zapisania się na <a href="moją listę mailową">https://modelc4.pl</a>. E-maile na temat Modelu C4 czekają na Ciebie.</strong></p>
<p><a href="https://modelc4.pl"><img src="/assets/images/2020/12/10-powodow-dla-ktorych-warto-znac-model-c4/model_c4_181x64.png" alt="ModelC4.pl - newsletter" class="post-center-image" /></a></p>
<hr />Krzysztof OwsianyChcesz wiedzieć, dlaczego Model C4 jest Ci potrzebny? Myślę, że jesteś w dobrym miejscu.Moje 5 Minut 31h2020-11-02T00:00:00+00:002020-11-02T00:00:00+00:00https://mrdev.pl/moje-5-minut-31h<p>Ostanie 30 minut do realizacji celu 366 dni ciągłego vlogowania.
To będzie prawie 31 godzin pracy. Kilka razy przeciągnąłem.
W tej ostatniej godzinie zamierzam dokończyć projekt. Wersję z modelu.</p>
<p>Kod dokumentuję w repozytorium Git’a. Korzystam też z <a href="https://www.conventionalcommits.org/en/v1.0.0/">Conventional Commits</a>.</p>
<p>Więcej o EventStorming’u można przeczytać na <a href="https://www.eventstorming.com">eventstorming.com</a>.
Więcej o EventModeling’u można przeczytać na <a href="https://eventmodeling.org">eventmodeling.org</a>.</p>Krzysztof OwsianyOstanie 30 minut do realizacji celu 366 dni ciągłego vlogowania. To będzie prawie 31 godzin pracy. Kilka razy przeciągnąłem. W tej ostatniej godzinie zamierzam dokończyć projekt. Wersję z modelu.Moje 5 Minut 30h2020-10-21T00:00:00+00:002020-10-21T00:00:00+00:00https://mrdev.pl/moje-5-minut-30h<p>Ostatni normalny slice do zaimplementowania został.
Poprawki działania GUI tak by wszystko już się razem spinało.
Testowanie działania aplikacji.</p>
<p>Kod dokumentuję w repozytorium Git’a. Korzystam też z <a href="https://www.conventionalcommits.org/en/v1.0.0/">Conventional Commits</a>.</p>
<p>Więcej o EventStorming’u można przeczytać na <a href="https://www.eventstorming.com">eventstorming.com</a>.
Więcej o EventModeling’u można przeczytać na <a href="https://eventmodeling.org">eventmodeling.org</a>.</p>Krzysztof OwsianyOstatni normalny slice do zaimplementowania został. Poprawki działania GUI tak by wszystko już się razem spinało. Testowanie działania aplikacji.Moje 5 Minut 29h2020-10-09T00:00:00+00:002020-10-09T00:00:00+00:00https://mrdev.pl/moje-5-minut-29h<p>Do zaimplementowania zostało kilka elementów.
Głównie UI i powiązanie wszystkiego ze sobą poprzez ikonkę w pasku.
Będzie też modelowanie, gdyż znalazłem taki obszar niedoprecyzowany.</p>
<p>Kod dokumentuję w repozytorium Git’a. Korzystam też z <a href="https://www.conventionalcommits.org/en/v1.0.0/">Conventional Commits</a>.</p>
<p>Więcej o EventStorming’u można przeczytać na <a href="https://www.eventstorming.com">eventstorming.com</a>.
Więcej o EventModeling’u można przeczytać na <a href="https://eventmodeling.org">eventmodeling.org</a>.</p>Krzysztof OwsianyDo zaimplementowania zostało kilka elementów. Głównie UI i powiązanie wszystkiego ze sobą poprzez ikonkę w pasku. Będzie też modelowanie, gdyż znalazłem taki obszar niedoprecyzowany.