Architektura i Model C4

Wprowadzenie

Wpis na LinkedIn:

GUI czy DSL, klikanie czy tekst? Co wybierzesz do modelowania?

Structurizr ma swój DSL, za pomocą którego opisywana jest architektura a następnie generowane są odpowiednie widoki C4. Text to Model.

Z drugiej strony możemy zamodelować strukturę bazy danych w LucidChart albo Miro klikając w GUI. Click to Model.

Jeśli mógłbyś wybrać, to którą z tych opcji preferowałbyś do modelowania i dlaczego?

Jako devsi jesteśmy przyzwyczajeni do kodowania, stąd DLS structurizra jest dla nas czymś naturalnym. Jedynym problemem jest to, że trzeba się go nauczyć. Tego problemu nie ma w przypadku GUI. Ale znowu GUI cierpi z UX gdy dodawane są kontrolki manipulujące elementami (dodaj, usuń, zmień nazwę).

Ja osobiście wolę DSL nawet jeśli potrzebuje czasu by się go nauczyć, ze względu na prostotę podglądu wygenerowanego na podstawie tekstu.

(link do źródła)

Deweloperzy często deklarują: “my wszystko dokumentujemy w modelach C4 a nie w UML, którego deweloper nie używa!” Problem? Modele C4 nie są dokumentacją działania aplikacji, są jedynie opisem jej instalacji. Sam autor (Simon Brown) w swoich publikacjach zaleca dodatkowo UML i ER by udokumentować realizowaną logikę (diagramy sekwencji i aktywności, maszyny stanowe).

(więcej…)

Czytaj dalejArchitektura i Model C4

6:2(1+2) to jeden czy dziewięć?

Wprowadzenie Do dzisiaj nie wiedziałem, że świat od wielu lat jest podzielony na zwolenników tych dwóch różnych wyników. Dowiedziałem się o tym, gdy zupełnie niechcący, po opublikowaniu poniższego mema: rozpętałem burzliwą dyskusje ale tylko z kilkoma osobami. Na końcu artykułu wyjaśnienie dlaczego warto czasem rzucić się w wir takich problemów. Kalkulatory naukowe pokazują "1" i warto sie zastanowić dlaczego. Równania i podstawianie jako metoda Podstawianie to jedna kluczowych zasad w logice i matematyce. Służy to rozwiązywania równań ale także do testowania definicji. Prosty przykład: jeżeli y=2x oraz x=5 to wstawiać…

Czytaj dalej6:2(1+2) to jeden czy dziewięć?

Low-code i no-code w praktyce – BPM & RPA

(streszczenie referatu na konferencji zorganizowanej 30 stycznia 2025 przez pureconferences.pl). Wprowadzenie Narzędzia zwane low-code oraz no-code (LCNC) znane są od czasów komputerów zwanych biurkowymi (np. narzędzie Clarion, 1986 rok), takim narzędziem był także arkusz kalkulacyjny VisiCalk a potem Lotus 123 (1979). Czy pomagają? Szybo się okazało, że tak zwany biznes po prostu przenosi do tych narzędzi to co i jak robi "na papierze" bez zastanawiania się czy to ma sens. Dzisiaj to zjawisko nazywamy "eksceloza" i nie przypadkiem ma to słowo charakter pejoratywny. Czy zlecanie dedykowanego oprogramowania jest lepsze czy…

Czytaj dalejLow-code i no-code w praktyce – BPM & RPA

Profil UML vs model i czym są stereotypy

Wprowadzenie Z zamiarem napisania osobnej publikacji o profilowaniu w UML noszę się od kilku lat. Mamy koniec grudnia, czyli więcej czasu dla siebie, więc nadszedł ten moment. Notacja UML to prosty graficzny system notacyjny, co niestety powoduje, że modelowanie wielu ludziom wydaje się proste bo "to tylko prostokąciki i strzałki, każdy tak może i potrafi". Niestety to jest jak pisanie: mamy nieco ponad 20 znaków alfabetu łacińskiego, język i gramatykę, a jednak napisanie czegoś wartościowego nadal jest jednak nie małym wyzwaniem. Nie zmienia to jednak faktu, że przeczytanie cudzego tekstu…

Czytaj dalejProfil UML vs model i czym są stereotypy

Odpowiedzialność cywilna za szkody spowodowane funkcjonowaniem sztucznej inteligencji – uwagi de lege lata i de lege ferenda – Polemika

Wprowadzenie Ukazał się ciekawy tekst: Odpowiedzialność cywilna za szkody spowodowane funkcjonowaniem sztucznej inteligencji – uwagi de lege lata i de lege ferenda - Wydanie - 11/2024 | Palestra . Szczególnie zainteresował mnie zwrot: "szkody spowodowane funkcjonowaniem sztucznej inteligencji". Czym jest "sztuczna inteligencja" (AI, ag. Artificial Intelligence)? Jest to "zdolność komputera cyfrowego lub robota sterowanego komputerowo do wykonywania zadań powszechnie kojarzonych z istotami inteligentnymi.". Prof. Kisielewicz pisze wprost (polecam cały artykuł): ChatGPT nie myśli, nie wnioskuje, niczego nie rozumie i nie jest żadną „sztuczną inteligencją”, o ile termin ten rozumiemy zgodnie…

Czytaj dalejOdpowiedzialność cywilna za szkody spowodowane funkcjonowaniem sztucznej inteligencji – uwagi de lege lata i de lege ferenda – Polemika

Prawo w IT. Praktycznie i po ludzku – Krótka recenzja książki i o tym czym są dane a czym informacje

Wprowadzenie Ukazała się książka Prawo w IT. Praktycznie i po ludzku . Jako, że profesjonalnie zajmuję się tak zwanym IT, a z prawem dotyczącym IT mam ogromne doświadczenia jako biegły (ale prawnikiem nie jestem), ta książka od razu po wydaniu wylądowała się na moim biurku. Jak tylko zacząłem czytać zapadła decyzja: napisze recenzję. Czytam bardzo dużo, ale recenzuję (tu na blogu) książki bardzo dobre lub bardzo szkodliwe. Autor książki, Szymon Ciach (profil LinkedIn: "Attorney-at-law | Counsel @Osborne Clarke Poland | IT & Data".), profil na Cybergov.pl: Patron medialny książki ITwiz.…

Czytaj dalejPrawo w IT. Praktycznie i po ludzku – Krótka recenzja książki i o tym czym są dane a czym informacje

Sprzęt, środowisko, aplikacja, mechanizm i jego opis

Wprowadzenie Bardzo często można w książkach i na blogach spotkać opisy wzorców architektonicznych, wzorców projektowych, dobrych praktyk. Jednak bardzo rzadko autorzy piszą o tym kiedy je stosować. Sam fakt, że jakiś wzorzec "rozwiązuje jakiś problem", co jest celem tworzenia i stosowania danego wzorca, nie mówi nic o tym jak często i kiedy dany problem się pojawia. Komputer może być częścią firmy, samochodu, lodówki, telewizora, może być platformą dla oprogramowania użytkowego albo dla gier komputerowych, ale te - użyte - staja sie częścią tego komputera (gramy na komputerze a nie na…

Czytaj dalejSprzęt, środowisko, aplikacja, mechanizm i jego opis

Wprowadzenie do modelowania w języku UML czyli dramat Polskiej Nauki

Wprowadzenie Stale śledzę to co świat nazywa "publikacje naukowe". Niestety notuje powolny upadek nauki, w już w branży informatyki postęp tego upadku jest chyba najszybszy. Regularnie czytam, że w Internecie jest łatwy dostęp do dobrej darmowej wiedzy i publikacji naukowych. Popatrzmy co znalazłem: Szynalski, K., & Różański, D. (2022). Wprowadzenie do modelowania w języku UML. Biuletyn Naukowy Wrocławskiej Wyższej Szkoły Informatyki Stosowanej. Informatyka, 9(1), 31–37. https://bibliotekanauki.pl/articles/2146699.pdf To nie tylko "Darmowa wiedza w Internecie" to "publikacje naukowe", a Panowie autorzy pewnie się (mam nadzieję, że nie) doktoryzują (pozakładali sobie numery ORCID).…

Czytaj dalejWprowadzenie do modelowania w języku UML czyli dramat Polskiej Nauki

Diagramy klas UML wg. p-programowanie.pl

Wprowadzenie Od czasu do czasu dostaję emaile rozpoczynające się od słów: "A tu programista i pisze inaczej". Tym razem dostałem od czytelnika link do tekstu Diagramy klas UML https://web.archive.org/web/20240428033730/https://www.p-programowanie.pl/uml/diagramy-klas-uml). Artykuł ten w zasadzie w całości jest lawiną nieprawdy o UML. Odniosę się do części dotyczącej notacji UML i powiązanych z nią fałszywych treści. Wszystkie cytaty pochodzą z ww. artykułu (inne oznaczono, źródłami). Recenzja Artykuł jest datowany na 30 września 2022. Aktualna wersja notacji UML 2.5.1 pochodzi z Grudnia 2017 roku, kluczowe zmiany: rezygnacja z podziału na Superstructure i Infrastructure, usunięcie…

Czytaj dalejDiagramy klas UML wg. p-programowanie.pl

Aby transformacja cyfrowa mogła zakończyć się sukcesem

Wprowadzenie

24 Października 2024 Miała miejsce konferencja Kongres Cyfrowa Transformacja w Biznesie 2024. Zaproszono mnie do wygłoszenia referatu merytorycznego na temat:

Różne podejście do transformacji cyfrowej w obliczu długu technologicznego i systemów legacy. Jak przygotować organizację i jakie zmiany kultury organizacyjnej są niezbędne, aby transformacja cyfrowa mogła zakończyć się sukcesem.

  1. pojęcie długu technologicznego,
  2. czym jest dług informacyjny,
  3. migracja “do nowego” i jak sie do niej przygotować,
  4. zmiany kultury organizacyjnej czyli co to jest “deployment be design” jako metoda wdrażania,
  5. czym tu jest sukces czyli jak go zdefiniować.

Poniżej slajdy z prezentacji i krótkie komentarze do kluczowych omówionych tez. Zapraszam na kolejne moje wystąpienia.

(więcej…)

Czytaj dalejAby transformacja cyfrowa mogła zakończyć się sukcesem
Read more about the article Projektowanie czyli architektura kodu aplikacji c.d.
architektura systemu workflow

Projektowanie czyli architektura kodu aplikacji c.d.

Wprowadzenie

Najbardziej wartościową umiejętnością architekta nie jest pisanie kodu, lecz umiejętność projektowania systemów, w których kod można łatwo usuwać i podmieniać. […] Kluczem do sukcesu jest projektowanie jeszcze przed napisaniem pierwszej linii kodu, ze szczególnym naciskiem na możliwość łatwego usuwania i podmieniania komponentów. Wyznaczenie granic między modułami, określenie interfejsów i interakcji, a także przewidzenie potencjalnych obszarów zmian to fundament dobrej architektury. [źr.: Dobry kod to taki, który łatwo usunąć]

W 2017 roku napisałem referat na pewną konferencję naukową studentów. Artykuł dotyczył architektury kodu. Jedną z ilustracji była ta:

Artykuł kończyłem słowami:

Nie chodzi więc o to by podzielić oprogramowanie na “składowe, które łączą w sobie możliwość przechowywania danych oraz wykonywania operacji”. Chodzi o to by mechanizm, o dowiedzionej poprawności, zaimplementować w określonej wybranej technologii.Chodzi też o to by nie udawać, że programowanie jako “podzielone na obiekty” partie kodu, nadal korzystające z jednej wspólnej bazy danych, różni się czymkolwiek od “strukturalnego kodu”. Chodzi o to by kod programu faktycznie implementował określony (zbadany i opisany) mechanizm. (źr.: Architektura kodu aplikacji jako pierwszy etap tworzenia oprogramowania – Jarosław Żeliński IT-Consulting)

W 2021 roku opisałem Architektoniczne wzorce projektowe w analizie i projektowaniu modelu dziedziny systemu. Artykuł jest ukierunkowany na ich definicje i modelowanie. Tu kilka słów na temat tego “skąd się biorą i po co”.

(więcej…)

Czytaj dalejProjektowanie czyli architektura kodu aplikacji c.d.

Webhook – zwrotne wywołania API

Wprowadzenie Swego czasu opisywałem wzorce projektowe i API (Integracja systemów ERP jako źródło przewagi rynkowej. Projektowanie REST API i scenariuszy). Kluczowym wzorcem jest wzorzec SAGA, czyli sterowanie sekwencją wymiany danych z jednego miejsca. Wzorzec ten to typowy system klient-serwer (usługobiorca-usługodawca) i sprawdza się doskonale, gdy sterowanie z jednego miejsca rozwiązuje wszystkie problemy integracji. Pewnym problem jest tu jednak to, że serwer musi zostać odpytany by klient poznał jego stan, a nie zawsze jest to wystarczające. Opis problemu Wyobraźmy sobie, że mamy system WMS (ang. Warehouse Managements System, zarządzanie magazynami) oraz…

Czytaj dalejWebhook – zwrotne wywołania API

Koniec treści

Nie ma więcej stron do załadowania