Look for any podcast host, guest or anyone
Showing episodes and shows of

Mariusz Gil

Shows

Better Software DesignBetter Software Design97. O architekturze mikrofrontendów i mikroserwisach Allegro z Bartoszem Gałkiem prowadzi Tomasz Ducin - część 2Ponad 2000 osób w 500 zespołach, 3000 różnych mikroserwisów i kilkaset tysięcy eventów na sekundę - skala Allegro zawsze robi wrażenie. Jak w tym wszystkim wdrożono architekturę mikrofrontendów, która pozwala sprawnie łączyć różne mikroserwisy i tworzyć podstrony największego w Polsce e-commerce'u prosto z panelu?W drugiej części rozmowy o mikrforontendach, Bartosz Gałek, Principal Engineer w Allegro, uchyli rąbka tajemnicy i przedstawi trochę technikaliów. W tym odcinku usłyszysz między innymi o:skali systemu, z jaką mierzą się zespoły developerskie Allegrowybranych metrykach zapew...2025-04-081h 04Better Software DesignBetter Software Design96. O dostarczaniu eventów w systemach rozproszonych z Michałem OstruszkąRozpraszanie systemu na szereg działających niezależnie od siebie usług, przy wszystkich oczywistych korzyściach dla ogólnej architektury i współpracy pomiędzy zespołami, niesie za sobą kilka istotnych konsekwencji. Przykładowo, dostarczenie zdarzenia czy innego komunikatu pomiędzy serwisami przestaje być już tak oczywiste i bezproblemowe, jak to jest w przypadku monolitycznych aplikacji komunikujących się wewnątrz in-memory.Sieć ze swojej natury bywa zawodna, przerwa w dostarczaniu wiadomości, czy też dostarczanie ich do konsumentów w losowej kolejności nie są sytuacjami czysto hipotetycznymi. Wcześniej czy później taka sytuacja przydarzy się...2025-03-2542 minBetter Software DesignBetter Software Design95. O architekturze mikrofrontendów i mikroserwisach Allegro z Bartoszem Gałkiem prowadzi Tomasz DucinTermin "microservices architecture" w ostatnich latach był odmieniany przez wszystkie możliwe przypadki. Przeważnie jednak ten styl architektoniczny przewijał się w kontekście rozwiązań backendowych i wyciągania z monolitów fragmentów jego funkcjonalności. Rzadko jednak mówiło się o projektowaniu rozwiązań frontendowych w tego rodzaju systemach...Netlifx, Amazon, Spotify czy Uber - te firmy przychodzą z pewnością na myśl jako przykłady popularnych wdrożeń mikroserwisów. W Polsce zdecydowanie jest to Allegro, które dokonało migracji z monolitycznego systemu PHP do właśnie takiej architektury i innych technologii.T...2025-03-051h 05Better Software DesignBetter Software Design94. O integracji serwisów z użyciem kontraktów z Jackiem MilewskimTworzenie integracyjnych środowisk testowych w całym przedsiębiorstwie jest powszechną, marnotrawną praktyką, która spowalnia wszystko i wszystkich. Brzmi ostro lub może także nawet znajomo? Ale właśnie w taki sposób duże środowiska integracyjne są określane w kolejnych wydaniach Technology Radaru Thoughtworks i to od 2017 roku! O rok dłużej, bo od 2016 raport ten sugeruje także wdrażanie testów kontraktowych jako jedno z możliwych rozwiązań tego problemu.Temat samych testów kontraktowych pojawił się już w podkaście, w odcinku "O testowaniu kontraktowym z Rafałem Maciakiem". W dzisiejszej r...2025-02-041h 05Better Software DesignBetter Software Design93. Backend vs Frontend: skuteczne testowanie zachowań, unity i integracjaW pierwszym odcinku w 2025 roku zapraszam na pierwszą odsłonę Backend vs Frontend, gdzie wspólnie z Tomkiem Ducinem bedziemy pochylać się nad różnymi problemami związanymi z software developmentem. Na początek temat testowania i testów integracyjnych, bo jeśli nie testujesz swojego kodu, to jak możesz mieć pewność, że wszystko działa poprawnie?Ale “hold your horses”… testy to tylko przyczynek do tego, aby porozmawiać w luźnej atmosferze o wielu ważnych rzeczach dookoła. 2025-01-151h 16Better Software DesignBetter Software Design92. O wykorzystaniu AI w software developmencie z Jarkiem Pałką i Wojtkiem PtakiemDziś już chyba nie ma sposobu, by uciec od tematu sztucznej inteligencji i jej wykorzystania w codziennej pracy. I właśnie często pojawiające się pytanie o wpływ sztucznej inteligencji na wytwarzanie oprogramowania i zawód programisty jest przyczyną dzisiejszego odcinka. A że taką małą tradycją w tym podkaście powoli staje się doroczne spotkanie z Jarkiem Pałką i Wojtkiem Ptakiem, temat rozmowy narzucił nam się niemal od razu. I choć wiele z tego zdezaktualizuje się zapewne bardzo szybko, to tak właśnie widzimy zastosowanie AI w IT, anno domini 2024. 2024-12-231h 28Better Software DesignBetter Software Design91. O modułach w aplikacjach JavaScript z Tomaszem 'Comandeer' Jakutem prowadzi Tomasz DucinW świecie technologii frontendowych, w najprostszym rozumieniu moduł może być najmniejszą cząstką aplikacji, zajmującą się jedną podstawową rzeczą, dodatkowo wydzieloną do osobnego miejsca. Ale aby nie było zbyt prosto, to tylko jedna z często stosowanych definicji modułu.W dzisiejszym odcinku gościem Tomka Ducina, specjalisty z zakresu architektury frontendu jest Tomasz Jakut, szerzej znany w społeczności JavaScriptowej jako Comandeer.Więcej na stronie tego odcinka na stronie bettersoftwaredesign.pl. 2024-12-111h 06Better Software DesignBetter Software Design90. O projektowaniu architektury multi-tenant z Michałem GiergielewiczemArchitektura systemu nie jest jedynie pochodną wymagań funkcjonalnych. Istotny wpływ ma tu także fakt, czy z system powstaje do obsługi jednej organizacji, czy też będzie z niego korzystać wiele całkowicie osobnych firm, a także w jakim stopniu poszczególni użytkownicy będą wykorzystywać dostępne zasoby. Ale to nie jedyne wyzwania, jakie pojawiają się w architekturach multi-tenant...Tematy zahaczające o infrastrukturę nie pojawiają się w Better Software Design zbyt często, jednak w przypadku tego rodzaju architektur nie sposób od tego tematu uciec. A moim gościem w tej rozmowie jest dziś Mi...2024-11-191h 16Better Software DesignBetter Software Design89. O ciemnej stronie implementacji API z GraphQL z Sebastianem RabiejemW 2015 roku Meta, a właściwie ówczesny Facebook wydaje pierwszą wersję specyfikacji GraphQL, języka opisu zapytań do API, którego celem jest wydajne i mocno elastyczne pobieranie danych. A ten właśnie problem mocno doskwierał Facebookowi przy implementacji natywnych aplikacji mobilnych. Nadszedł rok 2024 i wiele organizacji przekonało się, że wdrożenie rozbudowanego i wydajnego GraphQL API nie jest zadaniem prostym...O GraphQL powiedziano już wiele, warto przybliżyć trochę ciemniejszych stron używania tego rozwiązania w projekcie. Dziś zapraszam na rozmowę o cieniach GraphQL-a, a moim gościem jest Sebastian Rabiej, który z tą technologią ma sporo...2024-06-251h 07Better Software DesignBetter Software Design88. O rewolucji w Angularze i frontendzie na sygnałach z Maciejem Wójcikiem prowadzi Tomasz DucinFrontend i jego technologie rozwijają się szybko. Tym razem na horyzoncie w świecie Angulara są Signals, które mogą dość mocno zmienić podejście do projektowania systemu.Po mocnym otwarciu serii o architekturze frontendu rozmową z Bartkiem Cytrowskim o makro-frontendzie Atlassiana, pora na temat typowo techniczny, związany jak to często w tym światku bywa, z konkretnym frameworkiem. Gościem Tomka Ducina dziś jest Maciej Wójckik, Software Engineer i Technical Leader w Cisco, a tematem rozmowy są wspomiane już sygnały.W dzisiejszej rozmowie:czym są sygnały i jaki problem rozwiązująw czym są podobne...2024-06-041h 09Better Software DesignBetter Software Design87. O roli CTO, budowaniu zespołu, kultury i umiejętności z Danielem OwsiańskimZostać CTO i móc samodzielnie podejmować wszystkie decyzje techniczne w projekcie i mieć ostateczne zdanie na każdy temat... Taka wizja przyszłości w nawet średniej wielkości organizacji często nie ma jednak zbyt wiele wspólnego z rzeczywistością. Na czym więc polega rola Chief Technology Officera i ile jest w niej realnie technologii?W wiadomościach od was, na równi z tematami o architekturę, EventStorming czy Domain-Driven Design przewijają się bardo często pytania o dalszą karierę. W jakim kierunku się rozwijać, czy wiązać dalsze plany w IT ze ścieżką stricte techniczną i...2024-05-2855 minBetter Software DesignBetter Software Design86. O DDD w legacy z wykorzystaniem Bubble i Autonomous Contexts z Marcinem MarkowskimWiele osób chciałoby przy każdym projekcie pracować w green-fieldzie i móc wszystkie decyzje podejmować samodzielnie. Rzeczywistość jest jednak zwykle całkowicie inna, musimy żyć z odziedziczonym kodem i zaprojektowanym modelem. Taki green-field, w którym można zacząć projektować i wdrażać nowy model i techniki DDD, można jednak sobie wykroić.Wspólnie z Marcinem Markowskim rozmawiamy dziś o technikach Bubble Context, Autonomous Context i Legacy As Exposed Service Erica Evansa, dzięki którym można zacząć refaktoryzację legacy. Z mniejszym lub większym związaniem z legacy, w zależności od potrzeb i możliwości w pro...2024-05-081h 08Better Software DesignBetter Software Design85. O Architectural Kata i procesie tworzenia architektury z Piotrem Filipowiczem"Jak mamy pozyskać świetnych architektów, jeśli w swojej karierze będą mieli okazję ją tworzyć mniej niż pół tuzina razy?". Dokładnie takie pytania postawił Ted Neward, szukając sposobu na doskonalenie umiejętności tworzenia architektury. I trudno się tu nie zgodzić, patrząc jak często w zespołach duże projekty powstają od samego początku. Istnieje jednak prosty sposób na rozwiązanie tego problemu.Sesje Architectural Kata pozwala jednak zdobywać potrzebne doświadczenie znacznie szybciej. Tym bardziej, jeśli feedbacku na temat twojego designu udzielają Mark Richards i Jacqui Read, autorzy książek poświęconych ar...2024-04-2357 minBetter Software DesignBetter Software Design84. O implementacji testów backendu i architekturze otwartej na testowanieJeśli wycena projektu podawana jest w dwóch wersjach, z uwzględnieniem testów i bez, to z software craftsmanshipem ma to niewiele wspólnego. To tak, jakby pytać chirurga, czy może przyspieszyć operację nie dezynfekując skalpela. Jakość nie powinna być elementem przetargowym. Chyba, że pracujemy nad proof-of-concept, ale tego rodzaju projekty często lubią płynnie przejść w fazę protoduction...Jeśli szukasz sprawdzonych w boju receptur na implementację jakościowych testów, które nie będą wymagały co chwilę refaktoryzacji i modyfikacji przy zmianie kodu projektu, zapraszam Cię na dzisiejszą rozmowę z Piotrem Stawirejem. Na...2024-04-031h 20Better Software DesignBetter Software Design83. O testowaniu systemu end-to-end i Quality Assurance z Arkadiuszem JelonkiemOdpowiedzialność za zapewnienie jakości w projekcie nie spoczywa na pojedynczej osobie, tylko na całym zespole. A rola QA nie sprowadza się tylko i wyłącznie do projektowania i implementacji przypadków testowych w procesie inspekcji systemu, ale także na byciu adwokatem jakości w projekcie, i czasem zadawaniu trudnych pytań o to, dlaczego pewne funkcjonalności są zrobione w ten, a nie inny sposób.Do tej pory temat jakości oprogramowania przewijał się głównie z perspektywy developerskiej w rozmowach o testach jednostkowych, Test Driven Development czy różnych odmianach piramidy testów. Na strukturę testów w...2024-03-191h 04Better Software DesignBetter Software Design82. O architekturze makro front-endu Atlassiana z Bartoszem Cytrowskim prowadzi Tomasz DucinTworzenie oprogramowania nie sprowadza się jedynie do backendu, natomiast tematyka architektury front-endu do tej pory była w zasadzie zupełnie nieobecna w Better Software Design. Do tej pory, ponieważ dzisiejszy odcinek otwiera nowy rozdział w podkaście i tego rodzaju zagadnienia będą się co jakiś czas pojawiać. A rozmowy na takie właśnie tematy prowadzić będzie najlepszy znami mi architekt front-endu, Tomasz Ducin.Tak, tak, nie jest to przejęzyczenie. Przy dzisiejszym poziomie złożoności technik i narzędzi, po prostu nie można znać się na wszystkim. Dlatego mam dużą satysfakcję z tego, że To...2024-03-051h 08Better Software DesignBetter Software Design81. O procesie discovery i wprowadzaniu DDD do organizacji z Darkiem Pawlukiewiczem i Michałem WilczyńskimBłędów nie popełnia tylko ten, co nic nie robi, a szramy Wietnamu biorą się z nie z czytania książek, tylko z osadzania zawartych w nich idei w złożonej rzeczywistości konkretnych projektów. Dziś zapraszam na rozmowę o często trudnych realiach wprowadzania Domain-Driven Design do organizacji i procesach Domain Discovery.Moimi gośćmi są Dariusz Pawlukiewicz i Michał Wilczyński, programiści i architekci, zaangażowani w inicjatywę DevMentors. A rozmawiamy przede wszystkim o doświadczeniach związanych z wprowadzaniem DDD do zespołów i organizacji, oraz o częstych problemach występujących w p...2024-02-271h 12Better Software DesignBetter Software Design80. O ostrej zasadzie Pareto, DDDozie i innych chorobach projektowych z Piotrem PrzybyłemCzy kilka twoich projektów dla różnych klientów ma dokładnie taką samą strukturę wewnętrzną, stosowane są dokładnie te same wzorce organizacji kodu i architektury? Albo wszędzie widzisz możliwość zastosowania CQRS, rozdziału na komendy i query, czy możliwość zaimplementowania taktycznych wzorców z DDD? W wielu przypadkach będzie to zapewne całkowicie uzasadnione, poza tymi, w których nie ma to większego sensu...Abraham Maslow kiedyś opisał to zjawisko mówiąc: dla człowieka, który dysponuje tylko młotkiem, wszystko, co spotyka zaczyna wyglądać jak gwóźdź. Idąc tym torem, posług...2024-02-2058 minBetter Software DesignBetter Software Design79. O modularyzacji bez użycia subdomen i heurystyk DDD z Łukaszem SzydłoDomain-Driven Design jest skuteczną metodą analizy i modelowania złożonych, nierozpoznanych jeszcze problemów biznesowych. Jednak niektóre wzorce strategiczne są bardzo mgliste i mogą nie dostarczać konkretnych sposobów do działania w projekcie. Krytyka DDD w tym obszarze wydaje się mieć sporo podstaw...Bo czym właściwie jest subdomena? W myśl definicji, subdomena jest zazwyczaj wyodrębnionym obszarem, który może być zarządzany i rozwijany niezależnie od innych, posiadając swoje specyficzne reguły biznesowe, modele i zasoby. Ale czym się subdomena różni od domeny, jak skutecznie wyznaczyć ten "wyodrębiony" obszar i w...2024-01-301h 13Better Software DesignBetter Software Design78. O Outbox Pattern i skutecznej komunikacji z Jackiem MilewskimW informatyce są tylko dwie trudne rzeczy: unieważnianie pamięci podręcznej i nazywanie rzeczy... A jeśli mówimy co systemach rozproszonych, to do tej krótkiej listy Phila Karltona należy dopisać jeszcze skuteczną komunikację sieciową. Projektując systemy często zapominamy o tym, jak zawodny może być to komponent. A złośliwie zawiedzie pewnie w bardzo ważnym momencie... Na szczęście możemy temu zapobiec korzystając z wzorca Transactional Outbox.Do rozmów w podkaście zapraszam osoby, które nie raz czy dwa zderzyły się z danym problemem w życiu i posiadają...2024-01-161h 16Better Software DesignBetter Software Design77. O couplingu i decouplingu w systemie z Grzegorzem PiwowarkiemGdy coś się dobrze zaczyna, często kończy się źle... A jednym z tego powodów w projekcie jest niekontrolowane wprowadzenie couplingu, czyli sprzęganie różnych jego elementów ze sobą. Różne komponenty nagle stają się od siebie zależne, logika biznesowa połączona z frameworkiem czy bazą danych, a w efekcie całość jest coraz trudniejsza do utrzymania i rozwoju. Zwiększając sprzężenie zmniejszamy kohezję rozwiązania, a w myśl zasad GRASP Low Coupling i High Cohesion warto postępować dokładnie na odwrót.Na szczęście decoupling może zostać zrealizowany w projekcie na wi...2024-01-021h 02Better Software DesignBetter Software Design76. O 77 latach doświadczeń w branży IT z Wojtkiem Ptakiem i Jarkiem PałkąMijający właśnie rok dla Better Software Design był szczególny i "naj" z wielu powodów - liczby nowych odcinków, odsłuchanych rozmów, nowych słuchaczy... Nie byłoby tego podcastu bez was, także w tym roku w formie podcastowego prezentu i podziękowania za wspólnie spędzony rok, zapraszam na odcinek specjalny.Wraz z Wojtkiem Ptakiem i Jarkiem Pałką, znanych doskonale z kilku poprzednich odcinków podcastu, rozmawiamy o karierze w IT z perspektywy naszych wspólnych... ponad 77 lat spędzonych w branży IT. W tym odcinku zaczynamy od łączenia...2023-12-262h 09Better Software DesignBetter Software Design75. O User Story Mapping i analizie warsztatowej z Michałem Bartyzelem"Jako użytkownik chcę przeszukać bazę książek, aby znaleźć kilka książek" - takiego rodzaju User Story są niestety dość typowe i w zasadzie niewiele dobrego wnoszą do projektu. A trudności, jakie często pojawiały się przy formułowaniu wartościowych User Story, skutkowały się pojawianiem różnych technik wspomagających ich rozpoznanie. Kuźnią wielu pomysłów były prace zespołów stosujących Extreme Programming w projektach Chrysler C3 i Connextra... Kompleksowe podejście zarówno do identyfikacji User Stories jak i ich dalszego wykorzystania z projekcie zaproponował w końcu w 2014 roku Jeff Patton, proponując warsztatową te...2023-12-1954 minBetter Software DesignBetter Software Design74. O syndromie wypalenia zawodowego z Olą KunyszStres w pracy nie jest rzadkim zjawiskiem. Pozostawiony sam sobie przez dłuższy czas, może zacząć wyrządzać nam więcej szkód, w tym doprowadzić do syndromu wypalenia zawodowego.O tym jak może się objawiać wypalenie w naszym codziennym życiu, jak można sobie z nim radzić i jak reagować, gdy problem zaczyna dotykać osoby w naszym otoczeniu - o tym wszystkim rozmawiamy dziś z Olą Kunysz. Bez technologii i architektury, ale o własnych doświadczeniach z wypaleniem w kontekście branży IT. Materiały dodatkowe:The Burnout Index, darmowy test Yerbo...2023-12-051h 00Better Software DesignBetter Software Design73. O streamingu eventów w systemie z Piotrem GankiewiczemEventy stanowią naturalny sposób komunikacji w systemach rozproszonych. Jednak przesyłanie i dalsze przetwarzanie zdarzeń z jednego systemu do drugiego zazwyczaj wymaga określonej infrastruktury i wprowadza do systemu nowy rodzaj złożoności. Zawodność przesyłania danych, unikanie wielokrotnego przetwarzania tych samych wiadomości, zapewnianie kolejności ich przetwarzania czy odpowiedniej wydajności całej aplikacji - to tylko niektóre z czekających tu wyzwań.Dziś zapraszam na rozmowę o message brokerach i event-streamingu. Wraz z dzisiejszym gościem, Piotrem Gankiewiczem, rozmawiamy między innymi o:różnicach pomiędzy message-brokerami a platformami do event-stre...2023-11-211h 01Better Software DesignBetter Software Design72. O encjach w Domain-Driven Design z Kamilem GrzybkiemEncje domenowe to obok Value Objectów jeden z podstawowych wzorców implementacyjnych Domain-Driven Design. Mogą działać zarówno samodzielnie, jak i być częścią innych struktur, np. agregatów. Ale czym właściwie są encje i co odróżnia je od pozostałych wzorców taktycznego DDD?W telegraficznym skrócie encje to obiekty domenowe posiadające ściśle określoną tożsamość, które z jakiegoś powodu muszą być śledzone na przestrzeni czasu. Gościem dzisiejszej rozmowy jest Kamil Grzybek, który pojawił się już w Better Software Design przy okazji rozmów o modularyzacji monolitu czy testowalno...2023-10-241h 03Better Software DesignBetter Software Design71. O doświadczeniach z EventSourcingiem w projekcie z Łukaszem ReszkeW greenfieldzie, który jeszcze nie dotarł do środowiska produkcyjnego zazwyczaj wszystko jest dość proste. Nawet przy zupełnej zmianie koncepcji w najgorszym razie można postawić bazę danych czy środowisko od zera. Jednak gdy system działa na produkcji, trzeba wprowadzać w nim głębsze zmiany, a do tabel w bazie przywiązana jest nie tylko aplikacja, sytuacja trochę się komplikuje. Dziś zapraszam na rozmowę o wprowadzaniu EventSourcingu do projektu, na przykładzie prawdziwego systemu obsługi cashflow.Moim gościem jest Łukasz Reszke, pracujący na co dzień właśnie przy projektach opartych o event-store i EventSourcing...2023-10-101h 04Better Software DesignBetter Software Design70. O Testcontainers, piramidzie testów i jakości życia z Piotrem PrzybyłemKażdy kod zostanie przetestowany, wcześniej bądź później. Pozostają jedynie pytania na jakim etapie i przez kogo zostanie to wykonane i jaki będzie tego ostateczny koszt. Gdy aplikacja staje się złożona i tworzy ją wiele różnych komponentów, proces testowania może zacząć przysparzać pewnych trudności, choćby z odwzorowaniem odpowiedniego środowiska uruchomienia testów. I tu przychodzi z pomocą biblioteka Testcontainers.Testcontainers to framework pozwalający testować aplikację w oparciu o kontenery Dockera z prawdziwymi zależnościami systemu. I choć pozornie brzmi to banalnie, narzędzie to oferuje szereg bardzo praktyczn...2023-09-261h 11Better Software DesignBetter Software Design69. O wydajności systemu, optymalizacjach i trade-offach z Tomaszem LelkiemCzy nieczytelny, trudno nierozszerzalny i na dodatek zduplikowany kod może być dobry? Co więcej, nawet pożądany? Tak, jeśli w projekcie istotne są zupełnie inne drivery, np. w postaci oczekiwanej dużej wydajności systemu. Wówczas poświęcenie pewnych cech kodu na cześć innych wydaje się mieć dużo sensu.Dziś zapraszam na rozmowę z Tomaszem Lelkiem, współautorem wydanej w ubiegłym roku w wydawnictwiem Manning książki "Software Mistakes and Tradeoffs: How to make good programming decisions". A rozmawiać będziemy właśnie o świadomym podejmowaniu decyzji, zwłaszcza w kontekście wydajności...2023-09-1258 minBetter Software DesignBetter Software Design68. O rozwoju domeny generycznej w modelu open-source z Łukaszem ChruścielemTemat tworzenia oprogramowania pod konkretne potrzeby biznesowe, we współpracy z ekspertami domenowymi pojawiał się wielokrotnie w podkaście. Ale jak tworzyć oprogramowanie w modelu open-source, które będzie wykorzystywane przez innych developerów i gdzie pojedynczy ekspert domenowy nie istnieje, bo trzeba dbać o wielu różnych klientów?Jak tworzyć oprogramowanie rozszerzane następnie przez innych developerów, jakie techniki stosować, dlaczego to co w innym projekcie byłoby bad-practice tu może być dobrym rozwiązaniem - m.in. o tym będziemy rozmawiać dziś z Łukaszem Chruścielem. Łukasz od wielu lat pracuje w core-teamie open...2023-08-2952 minBetter Software DesignBetter Software Design67. O danych prywatnych w architekturach zdarzeniowych z Oskarem DudyczemEventy świetnie pozwalają rozdzielać duże systemy na mniejsze części i i przenosić między nimi dane. Każda usługa może wówczas je przetwarzać w oparciu o własną logikę biznesową. Problem w tym, że propagacja danych w systemie jest dość prosta, ale ich usunięcie już niekoniecznie...O tym, w jaki sposób możemy rozwiązywać problem przetwarzania danych prywatnych rozmawiam dziś z Oskarem Dudyczem. I choć skupiamy się przede wszystkim na architekturach zdarzeniowych, to w zasadzie wszystkie omawiane techniki można bez problemu zastosować również w innych systemach.W tym odcinku razem z Oskarem r...2023-08-1553 minBetter Software DesignBetter Software Design66. O Fitness Functions w architekturze ewolucyjnej z Sebastianem Buczyńskim"Architekci muszę bez przerwy oceniać cechy architektury, aby upewnić się, że ciągle zapewniają one jakość i nie stają się antywzorcami..." Ten cytat z książki "Building Evolutionary Architectures: Support Constant Change" autorstwa Neala Forda, Rebeki Parsons i Patricka Kua dotyczy jednego z fundamentów architektury ewolucyjnej, czyli tzw. funkcji dopasowania - Fitness Functions.Funkcje te pozwalają konkretnie ocenić dopasowanie architektury oprogramowania względem postawionych wymagań i podejmować świadome decyzje odnośnie wprowadzania zmian. Czym są wspominane tu funkcje, jak można je definiować i weryfikować, a także czym jest architektura ewolucyjna, o tym rozmawiamy z moim dzisiejszym gościem...2023-08-0156 minBetter Software DesignBetter Software Design65. LIVE PHPers Summit 2023Konferencja PHPers Summit 2023 była świetną okazją do tego, aby zrobić coś zupełnie inaczej w podkaście. Mikrofony i reszta sprzętu wylądowała w jednej z hal Międzynarodowych Targów Poznańskich, na scenie zasiedli obok mnie Michał Giergielewicz i Grzegorz Korba z trójmiejskiego GetResponse, a na sali pojawiło się kilkaset zainteresowanych rozmową osób.Summit i 10-lecie community były świetną okazją do tego, aby to właśnie słuchacze napisali scenariusz tej rozmowy. Pojawiały się pytania z sali i na chacie, a zaplanowane na sam koniec konferencji 45 minut nagrania przeciągnęło si...2023-07-181h 22Better Software DesignBetter Software Design64. O architekturze hexagonalnej, portach i adapterach z Kubą NabrdalikiemIdea zaproponowanej przez Alistaira Cockburna architektury heksagonalnej ma już prawie 20 lat. Ale jak krótko i rzeczowo opisać założenia Hexagonal Architecture, czy też Ports & Adapters? I jak to przekłada się na kod systemu?Każdy koncept można bardzo mocno i niepotrzebnie skomplikować. Nawet tak prosty w swojej istocie jak Porty i Adaptery. Dziś z moim gościem, Kubą Nabrdalikiem, wracamy do korzeni z 2005 roku i staramy się wyłuskać esencję tego wzorca architektonicznego. A jeśli przy drugim mikrofonie gości Kuba, to wiadomo, że będzie do bólu pragmatycznie i prosto w z mostu...W dz...2023-07-0453 minBetter Software DesignBetter Software Design63. O modułach w DDD i organizacji kodu aplikacji biznesowej z Marcinem MarkowskimSubdomena czy bounded-context może być odkryta lub zamodelowana z użyciem heurystyk, które pojawiły się już kilkukrotnie we wcześniejszych rozmowach. Ale jak te koncepty mapują się na kod naszego systemu? Gdzie i jak zobaczymy w IDE ich istnienie i zakres? Odpowiedzią na te pytania mogą być opisane przez Erica Evansa moduły, zwane także pakietami.Dziś ponownie moim gościem jest Marcin Markowski, a nasza rozmowa będzie dotyczyć wspomnianych już modułów. Będzie i teoretycznie i praktycznie, z obowiązkowym przykładem.W dzisiejszym odcinku rozmawiamy z Marcinem m.in. o:decyzjach wpł...2023-06-201h 12Better Software DesignBetter Software Design62. O siedmiu dev-grzechach głównych kariery w IT z Wojtkiem PtakiemKod często można zmienić relatywnie łatwo. Jednak zupełnie inaczej jest z własnymi nawykami czy podejściem. Dziś na czynniki pierwsze rozkładamy kilka typowych "dev-grzeszków", które z perspektywy osób odpowiedzialnych za całe piony IT mogą przeszkadzać w karierze. Ponieważ technologia to niestety nie wszystko...Moim gościem jest dziś ponownie Wojtek Ptak, Executive Engineering Director oraz Head of Development w Revolut Business. A jakich tematów dotkniemy podczas rozmowy? Choćby tego, że błędem jest nieposiadanie planu. Nasza kariera nie musi się "wydarzać" i podążać od przypadku do przypadku. Ten proces moż...2023-06-061h 10Better Software DesignBetter Software Design61. O dostarczaniu kodu na produkcję z użyciem Feature Toggles z Mateuszem KwaśniewskimDo dziś pamiętam pierwsze wydanie pewnego projektu... 30 sekund po zakończeniu procedury rozdzwoniły się telefony i jasne już było, że choć wdrożenie może i się udało, to wydanie już niekoniecznie. Jakiś czas później sterowaliśmy zmianami w zachowaniu kodu na produkcji bez konieczności jego aktualizacji, już całkowicie bezstresowo.Jedną z zastosowanych tam technik były Feature Toggles i właśnie na ten temat rozmawiamy z moim dzisiejszym gościem, Mateuszem Kwaśniewskim. Ponieważ jeśli na ten temat z kimś rozmawiać, to najlepiej z osobą, która pracuje przy jednym z najbardziej...2023-05-301h 11Better Software DesignBetter Software Design60. O technikach Living Documentation i modelu P3 z Marcinem MarkowskimIstnieją trzy rodzaje dokumentacji. Przy czym pierwszy rodzaj to taki, który… nie istnieje. A o dwóch pozostałych dowiesz się z tego odcinka.Dziś moim gościem jest Marcin Markowski, a rozmawiać będziemy o dokumentacji i sposobach na utrzymanie jej aktualności. Bo niestety, mało co tak przeszkadza podczas pracy jak dokumentacja, na której nie można polegać.W tym odcinku rozmawiamy z Marcinem m.in. o:co i dlaczego warto dokumentować podczas prac nad projektem,typowych problemach z dokumentacją, w tymkoncepcie Living Documentation autorstwa Cyrille Martraire,strategiach i konwencjach pozwal...2023-05-161h 10Better Software DesignBetter Software Design59. O optymalizacji współpracy zespołów i Team Topologies z Piotrem KacałąWytwarzanie oprogramowania, zwłaszcza tego złożonego, to gra zespołowa. A gdy w projekcie udział bierze wiele zespołów, musimy zatroszczyć się choćby o komunikację pomiędzy nimi, czy przypisanie właściwych odpowiedzialności w projekcie.Dziś moim gościem jest Piotr Kacała, CTO i członek zarządu Displate, a rozmawiać będziemy o podejściu zwanym Team Topologies. W myśl Manuela Paisa i Matthew Sheltona, autorów książki Team Topologies, w organizacji produktowej poszczególnym zespołom można przypisać bardzo jasno określone role, co z kolei pozwala określić modele komunika...2023-05-021h 02Better Software DesignBetter Software Design58. O testowaniu kontraktowym z Rafałem MaciakiemProjektowanie systemu rozproszonego, opartego np. o architekturę mikroserwisową, zwykle nie jest trywialne. Pojawia się tu choćby problem komunikacji poszczególnych części systemu i właściwego sposobu jej testowania... Wspólnie z moim dzisiejszym gościem, Rafałem Maciakiem, przyglądamy się idei testowania kontraktowego, które świetnie rozwiązuje problem testowania poprawności komunikacji pomiędzy konsumentami i producentami. Co istotne, w izolacji, bez konieczności używania kosztowych środowisk i testów integracyjnych.W tym odcinku rozmawiamy m.in. o:idei testowania kontraktowego,przykładowej budowie kontraktów,lokalizacji tego rodzaju weryfikacji w pir...2023-04-1858 minBetter Software DesignBetter Software Design57. O faktach i mitach wzorca CQRS z Oskarem DudyczemCQRS, czyli Command Query Responsibility Segregation, jest wzorcem wyjątkowo popularnym i powszechnie stosowanym w wielu systemach. Mało kto jednak sięgnął po oryginalny dokument autorstwa Grega Younga, który opisuje założenia tego konceptu architektonicznego i z czasem obrósł on kilkoma mitami.Dziś w podkaście ponownie gości Oskar Dudycz, z którym na tapet weźmiemy zarówno mity jak i fakty dotyczące wzorca CQRS. A gdy przy drugim mikrofonie pojawia się Oskar, to wiadomo, że będzie do bólu pragmatycznie...W tym odcinku rozmawiamy m.in. na temat:czym jest...2023-04-1156 minBetter Software DesignBetter Software Design56. O fuckupach w projektach IT z Jarkiem Pałką i Wojtkiem PtakiemMylić się to rzecz ludzka, propagować automatycznie te błędy to DevOps... Tym razem na tapet bierzemy historie o tym, jak to produkcja płonęła i jakie wnioski zostały z tego wyciągnięte.Dziś moimi gośćmi w podkaście są Jarek Pałka i Wojtek Ptak, a w takim gronie nie wypada zamiatać spraw pod dywan. A że warto uczyć się na błędach, a najlepiej tych popełnianych przez innych, wyciągniemy parę naszych błędów z przeszłości. Oprócz tragikomicznych aspektów niektórych z przytoczonych tu sytuacji, będzie to bardzo dobry wstęp do zna...2023-04-042h 42Better Software DesignBetter Software Design55. O Machine-Learningu i rozwiązaniach Data-Driven dla bankowości z Piotrem GawrysiakiemCzęsto uciekamy od danych i analizujemy zachowania w procesach biznesowych, a równie często to właśnie dane są podstawą do budowy zaawansowanych systemów IT. Zanim dotkniemy gwarantujących spójność agregatów, nasze operacje przechodzą przez systemy oparte o sztuczną inteligencję czy uczenie maszynowe i to właśnie tym zagadnieniom dziś się przyjrzyjmy.Zapraszam dziś na odcinek z wielu powodów dla mnie szczególny, ponieważ moim gościem jest Piotr Gawrysiak, Chief Data Scientist w mBanku i profesor Politechniki Warszawskiej, osoba o ogromnej wiedzy w tematach AI/ML, a także Process Miningu. Po 30 la...2023-03-211h 11Avanscoperta - Interviews with expertsAvanscoperta - Interviews with expertsDesigning and Implementing Aggregates - Mariusz GilDomain-Driven Design, Aggregates and EventStorming - An Evening with Mariusz GilAggre-what? Lots of talking about aggregates in the DDD world, yet one of the questions we receive more often at workshops and during events is... what is an aggregate "exactly"? How do you design a good aggregate?DDD expert Mariusz Gil's got the answer.Let's find out in this presentation, based on a concrete and real example, where you can ask questions through the YouTube chat in real-time.👉 TitleDesigning and Implementing Aggregates 📝 AbstractOne technique of the Domain...2023-03-101h 21Better Software DesignBetter Software Design54. O stosowaniu SCRUMa z Kubą Szczepanikiem i Jackiem WieczorkiemWiele tematów potrafi podnieść temperaturę rozmowy, zaczynając choćby od osławionego pytania "taby czy spacje". Ale kiedy skręcamy w rejony związane z Agile i pada słowo SCRUM, konwersacja często przechodzi na zupełnie nowy poziom. Do rozmowy na temat realiów SCRUM-a i sposobu jego stosowania zaprosiłem Kubę Szczepanika i Jacka Wieczorka, których wiele osób zna np. ze świetnego podcastu Porządny Agile.W tym odcinku rozmawiamy m.in. na temat:SCRUM Guide i jego stosowania w praktyce,codziennych porannych teatrzykach,wybierania ze SCRUM-a tylko jego elementów, czyli o...2023-03-071h 04Better Software DesignBetter Software Design53. O zaletach i wadach Clean Architecture z Oskarem DudyczemNiezależność od frameworka, interfejsu użytkownika, bazy danych i innych systemów zewnętrznych, a także wsparcie testowalności - to podstawowe filary takich konceptów architektonicznych jak Clean / Hexagonal / Onion / Sreaming Architecture, DCI, BCE. Poszczególne podejścia różnią się w szczegółach, jednak w zbliżony sposób podchodzą do rozdzielania systemu na mniejsze, dedykowane warstwy. Z moim dzisiejszym gościem, Oskarem Dudyczem przyglądamy się dziś pierwszej pozycji tej listy i analizujemy mocne i słabe strony Clean Architecture, zaproponowanej przez Roberta C. Martina.W tym odcinku rozmawiamy m.in. o:czym jest Clean Archite...2023-02-2156 minBetter Software DesignBetter Software Design52. O uprawnieniach i domenie z Bartkiem SłotąW trakcie implementacji systemu często stajemy przed problemem kontroli uprawnień i decydowaniu, czy pozwalamy użytkownikowi wykonać określoną operację. Ten jeden, pozornie prosty IF w kodzie jest pretekstem do dzisiejszej rozmowy z Bartkiem Słotą, na temat kontroli uprawnień w projekcie opartym o techniki Domain-Driven Design.Na konkretnym przykładzie przejdziemy proces analityczno-modelarski i rozważymy możliwe opcje, ich zalety i wady. Materiały dodatkowe:Fragment EventStormingu, a także mapa kontekstów z przedstawionymi relacjami znajdują się na boardzie Miro: https://miro.com/app/board/uXjVPq0-LUM=/W odcinku poja...2023-02-071h 14Better Software DesignBetter Software Design51. O semantyce i roli reguł biznesowych z Aleksandrem BartnikiewiczemO tym, że procesy biznesowe istnieją i że są ważne wiedzą wszyscy. Potrafimy o nich ogólnie mówić na poziomie abstrakcyjnym, ale też umiemy schodzić na niższe poziomy i opisywać ich działanie zdarzeniami lub BPMN-em. Natomiast o regułach często mówi się tylko na ogólnym poziomie, jeśli w ogóle, że "no jakieś tam reguły są w biznesie". Są traktowane trochę jak czarna magia, jak jakiś mityczny stwór. Trochę jak synonim "logiki biznesowej". Reguły biznesowe to jest bardzo konkretna rzecz, za którą stoi mocna teoria, własny standard (SBVR by OMG). która ma n...2023-01-241h 23Better Software DesignBetter Software Design50. O implementacji logiki biznesowej z Decider Pattern z Oskarem DudyczemMateriały dodatkowe:Functional Event Sourcing Decider, źródłowy artykuł na blogu Jérémiego Chassaing na temat implementacji wzorca DeciderFunctional Event Sourcing, nagranie prezentacji Jérémiego z DDD Europę 2020, niestety bez obrazu z laptopaHow to effectively compose your business logic, artykuł Oskara na temat kompozycji logiki z wzorcem DeciderHow events can help in making the state-based approach efficient, eventowe podejście do zmiany stanu systemuWriting and testing business logic in F#, kolejny artykuł z bloga Oskara na temat użycia Decidera, tym razem w F# 2023-01-101h 02Better Software DesignBetter Software Design49. O przeprowadzeniu zmiany z Krzysztofem Rakowskim i Pawłem RekowskimMateriały dodatkowe:8-krokowy process przeprowadzenia zmiany, podsumowanie wspomnianego przez Krzysztofa frameworka Johna KotteraTechnology Strategy Patterns: Architecture as Strategy, książka Ebena HewittaNerd Management, video podcast Krzysztofa i Pawła na tematy związane z zarządzaniem zespołami IT 2023-01-0155 minBetter Software DesignBetter Software Design48. O CUPID, alternatywie dla zasad SOLID z Piotrem StawirejemMateriały dodatkowe:CUPID - the back story, pierwszy artykuł Dana Northa o kwestionowaniu zasad SOLIDCUPID - for joyful coding, kontynuacja tematu na blogu Dana NorthaCUPID - for joyful coding, nagranie prezentacji z konferencji NDC London 2022Patterns of Software: Tales from the Software Community, Richard P. Gabriel 2022-12-271h 03Better Software DesignBetter Software Design47. O nauce DDD i bi-temporalnych eventach domenowych z Andrzejem KrzywdąMateriały dodatkowe:Bitemporal History, wpis na blogu Martina Fowlera na temat problemu modelowania bitemporalnegoAs Time Goes By…, a Bi-temporal Event Sourcing story, prezentacja - Thomas Pierrain z konferencji DDD Europe 20184 Strategies for future events with Event Sourcing, strategie rozwiązywania problemu "zdarzeń z przyszłości"Eventsourcing Patterns: Multi-temporal Events, wpis na blogu Mathiasa Verraesa na temat rozróżniania momentu rejestracji zdarzenia i zmiany przez niego opisywanejPatterns for Decoupling in Distributed Systems: Summary Event, kolejny wpis Matthiasa na temat emisji pojedynczego eventu summary zamiast całego streamu zdarzeńMateriały od zespołu Arkency:Fixing the past and...2022-12-201h 00Czyta: #TataMariuszCzyta: #TataMariuszFrances Hodgson Burnett - Tajemniczy ogród. Powieść dla młodzieży; Rozdział VIII. Gil wskazał drogęJeśli to, co robię ma sens, możesz postawić mi kawę: ❤️‍🔥☕ buycoffee.to/tatamariusz ☕❤️‍🔥 Dziękuję! 🧡🦊 #TataMariusz, czyli Mariusz Rzepka. Czytam dla dzieci, ale jeśli lubisz wiersze, bajki czy opowiadania - zostań ze mną, dla rodziców też się coś znajdzie. ;) A co? Np. wesołe wierszyki (często z przesłaniem), poważniejsze opowiadania i bajki edukacyjne, fragmenty książek, lektury i wiersze pisane przez najmłodszych. W każdym z nas siedzi dziecko. Odkryj je na nowo słuchając moich nagrań! ;) Zapraszam! https://tatamariusz.pl; 📧 tata@tatamariusz.pl;2022-12-1717 minBetter Software DesignBetter Software Design46. O testowaniu mutacyjnym z Marcinem ZajączkowskimMateriały dodatkowe:Testowanie mutacyjne, prezentacja Marcina na temat testowania mutacyjnego z konferencji Boiling Frogs 2016Slajdy prezentacjiJak szybkie (lub wolne) jest testowanie mutacyjne?, artykuł Marcina na temat szybkości testowania z mutantami, na przykładzie PIT i projektów FOSSBlog MarcinaTwitter MarcinaPrzykładowe narzędzia testowania mutacyjnego:Java, PIT - https://pitest.org/Java, Arcmutate - https://www.arcmutate.com/.NET, Stryker.NET - https://stryker-mutator.io/JavaScript, Stryker.JS - https://stryker-mutator.io/PHP, Infection - https://infection.github.io/guide/PHP 5.x (historycznie), Humbug - https://github.com/humbug/humbugRuby, Mutant - https://github...2022-12-131h 00Better Software DesignBetter Software Design45. O testowalności oprogramowania z Kamilem GrzybkiemMateriały dodatkowe:An Introduction to General Systems Thinking , książka Geralda M. Weinberga 2022-11-291h 15Better Software DesignBetter Software Design44. O programowaniu reaktywnym z Tomkiem NurkiewiczemMateriały dodatkowe:Reactive programming: lessons learned, prezentacja Tomka z konferencji JDD 2018What Color is Your Function?RxMarbles, interaktywne diagramy Rxnurkiewicz.com, strona Tomka i jego podcastu Around IT in 256 SecondsReactive Programming with RxJava: Creating Asynchronous, Event-Based ApplicationsNarzędzia:ReactiveX, pełna lista wspieranych języków jest na tej stronieSpring ReactiveProject ReactorRxJS 2022-11-151h 05Better Software DesignBetter Software Design43. O subdomenach biznesowych ze Sławkiem SobótkąAktualizacja... Podczas publikacji odcinka niestety nie zapisały się linki do książek. Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML, Jim Arlow, Ila NeustadtAnalysis Patterns: Reusable Object Models, Martin Fowler, z przedmową Ralpha Johnsona i Warda CunninghamaData Model Patterns: Conventions of Thought, David C. HayThe Data Model Resource Book: A Library of Universal Data Models for All Enterprises, Len Silverston - książek z tej serii jest kilka, kolejne dotykają różnych domen biznesowych lub są rozwinięciem poprzedniego wydaniaMały komentarz w kwestii powyższych pozycji... Moim zdaniem nie są to książki, które...2022-11-011h 01Better Software DesignBetter Software Design42. O analizie biznesowej i systemowej z Moniką PerendykMateriały dodatkowe:Software Requirements, Karl Wiegers, Joy Beatty, wydanie IIIRequirements Engineering Fundamentals: A Study Guide for the Certified Professional for Requirements Engineering Exam - Foundation Level, Klaus Pohl, Chris RuppSpecification by Example: How Successful Teams Deliver the Right Software, Gojko AdzicFacylitacja-wiedza, umiejętności, sztuka czy magiaNa stronie Moniki można też przeczytać kilka artykułów na tematy, które zostały poruszone w rozmowie:Wymaganie biznesowe a reguła biznesowaAtrybuty wymaganiaKategoryzacja wymagańDług technicznyAdaptowanie produktu w czasach kryzysu, czyli czym jest PIVOTMonikę można obserwować m.in. na Instagramie lub LinkedIn. 2022-10-181h 27Better Software DesignBetter Software Design41. O Domain Storytelling z Maciejem JędrzejewskimMateriały dodatkowe:Domain Storytelling Quick Start Guide, szybkie wprowadzenie do technikiDomain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software, Henning Schwentner oraz Stefan HoferFind Context Boundaries with Domain Storytelling, prezentacja Henninga Schwentner oraz Stefana Hoferz konferencji DDD EU 2018LeasingNinja, przykład z użyciem Domain StorytellinguEgon.io, proste narzędzie do wizualizacji historyjekEgion.io - examples, repozytorium z kilkoma przykładami do Egon 2022-10-041h 06Better Software DesignBetter Software Design40. O architekturze frontendu z Tomaszem DucinemMateriały dodatkowe:The Testing Trophy And Testing Classification, artykuł Kenta C. Doddsa dotyczący zmiany struktury testów w projekcieGOTO Conferences, nagrania z różnych edycji konferencji GOTOPozwoliłem też sobie wybrać kilka konkretnych prezentacji z GOTO:Structure and Interpretation of Test Cases, Kevlin Henney, GOTO 2022When To Use Microservices (And When Not To!), Sam Newman & Martin Fowler, GOTO 2020The Many Meanings of Event-Driven Architecture, Martin Fowler, GOTO 2017 2022-09-271h 25Better Software DesignBetter Software Design39. O driverach architektonicznych z Kubą PilimonemMateriały dodatkowe:Software Architecture for Developers, książka Simona BrownaDesign It! : Pragmatic Programmers: From Programmer to Software Architect, książka Michaela KeelingaThinking Architecturally, książka Nathaniela SchuttyThinking Architecturally, prezentacja Nathaniela związana z powyższą książką 2022-09-201h 04Better Software DesignBetter Software Design38. O budowaniu fundamentów z Michałem GiergielewiczemPatrząc na tematy związane z Domain-Driven Design czy książki, można by powiedzieć „DDD - to nie takie proste”. Z Michałem Giergielewiczem rozmawiamy dziś o tym, jak można wejść w ten świat i jak zbudować solidne fundamenty pod przyszłe poznawanie bardziej zaawansowanych wzorców i praktyk.2022-09-131h 31Better Software DesignBetter Software Design37. O Context Mappingu z Bartkiem SłotąMateriały dodatkowe:Context Maps - a deep dive, prezentacja Michaela Plöda z konferencji KanDDDinsky 2019Context Mapper, narzędzia do dokumentowania i wizualizowania map kontekstów 2022-09-061h 16Better Software DesignBetter Software Design36. O modularyzacji monolitu z Kamilem GrzybkiemMateriały dodatkowe:Modular monolith: Primer, część 1 seriiModular Monolith: Architectural Drivers, część 2 seriiModular Monolith: Architecture Enforcement, część 3 seriiModular Monolith: Integration Styles, część 4 seriiModular Monolith: Domain-Centric Design, część 5 seriiModular Monolith with DDD, przykład modularnego monolitu w repozytorium Kamila na GithubieEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Gregor Hohpe 2022-05-311h 19Better Software DesignBetter Software Design35. O Wardley Mappingu z Radkiem MaziarkąDodatkowe materiałyWardley Mapping - notatki ze spotkania na MiroKonto Simona Wardley’a na TwitterzeNauka map Wardley’a w 90 sekNarzędzia konsultanta, artykuł wprowadzający na blogu RadkaAnaliza przypadku Zalando, przykład praktycznego użycia mapIntroduction to Value Chain Mapping", keynote Simona Wardley'a z konferencji OSCON 2014Crossing the River by Feeling the Stones , prezentacja Simona Wardley'a z konferencji DDD Europe 2018On being lost, artykuł autorstwa Simona Wardley'a 2022-05-1751 minBetter Software DesignBetter Software Design34. O autonomii zmiany w architekturze mikroserwisowej z Łukaszem SzydłoMateriały dodatkoweContext Maps - a deep dive, Michael Plöd, prezentacja z konferencji KanDDDinsky 2019 2022-05-0454 minBetter Software DesignBetter Software Design33. O temporal modelingu i Event Sourcingu z Oskarem DudyczemModelowanie domeny z użyciem Event Sourcingu wymaga wzięcia pod uwagę kilku czynników. Jednym z nich jest liczba zdarzeń, jaka będzie związana z modelowanym obiektem. Wraz z Oskarem Dudyczem, Developer Advocate w EventStore, rozmawiamy w tym odcinku o temporal modelingu, czyli modelowaniu obiektów w odniesieniu do upływającego czasu, kontroli długości strumieni zdarzeń i powiązanych problemach. Wszystko oczywiście w kontekście Event Sourcingu.2022-04-191h 01Better Software DesignBetter Software Design32. O Behaviour-Driven Development z Michałem MichalukiemMateriały dodatkowe:Składnia języka GherkinCucumberJBehaveSpecFlowBehatThoughtworks GaugeThoughtworks TaikoDodatkowo, sporo ciekawych odnośników do materiałów związanych z Behaviour-Driven Development znajduje się z repozytorium Mateusza, Awesome-BDD 2022-02-011h 15Better Software DesignBetter Software Design31. O refaktoryzacji organizacji z Wojtkiem PtakiemMateriały dodatkowe..Prezentacje:Dissecting Bounded Contexts, prezentacja Nicka Tune z konferencji DDD Europe 2020Context Maps - a deep dive, prezentacja Michaela Plöd z konferencji KanDDDinsky 2019Książki:Accelerate: Building and Scaling High-Performing Technology Organizations, Nicole Forsgren,Jez Humble, Gene KimThe DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations, Gene Kim, Jez Humble, Patrick Debois, John WillisEscaping the Build Trap: How Effective Product Management Creates Real Value, Melissa PerriInspired: How to Create Tech Products Customers Love, Marty CaganEmpowered: Ordinary People, Extraordinary Products, Marty Cagan, Chris JonesThe Phoenix Project: A No...2022-01-251h 37Better Software DesignBetter Software Design30. O rozwoju i utrzymaniu oprogramowania w Displate z Wojtkiem WiktorowiczemPrzykłady przykładami, ale jeśli trafia się tylko okazja, to warto porozmawiać o prawdziwych projektach i ich wyzwaniach. Gościem 30-stego odcinka Better Software Design jest Wojtkiem Wiktorowicz, obecnie zajmujący stanowisko Head of Engineering, który na co dzień pracuje nad rozwojem i utrzymaniem platformy Displate - globalnego marketplace’u dla artystów. Skala projektu to 1.5 miliona unikalnych prac, 40 tysięcy artystów na platformie i 5 milionów plakatów rozsianych na całym świecie i sporo ruchu w aplikacji. Za to wszystko odpowiada 40-osobowy zespół Engineeringu i to właśnie o tym zespole, jego transformacjach, zmianach podejścia do...2022-01-181h 04Better Software DesignBetter Software Design29. Domain Driven Design Essentials: Domain ServiceW ramach mini-serii Domain-Driven Design Essentials rozmawialiśmy do tej pory o wzorcu Value Object. Dziś z Kubą Pilimonem rozmawiamy o kolejnym wzorcu taktycznego DDD, a konkretnie o serwisie domenowym. A w rozmowie poruszamy dziś następujące tematy: - czym właściwie jest Domain Service? - jaki kod można w nim osadzić i jak to identyfikować? - pojawi się oczywiście kilka różnych przykładów.2022-01-1121 minBetter Software DesignBetter Software Design28. O Event Sourcingu z Oskarem DudyczemMateriały dodatkowe:https://event-driven.io/pl/, blog Oskara - pragmatycznie o programowaniu, można tutaj znaleźć serie artykułów o Event Sourcingu, CQRS, architekturze i innych ciekawych tematachhttps://martendb.io, implementacja EventStore i bazy dokumentowej dla .NET z wykorzystanie PostgreSQLhttps://www.eventstore.com, dedykowana baza danych pod Event Sourcinghttps://github.com/oskardudycz/EventSourcing.NetCore, praktyczne przykłady, ćwiczenia oraz tutoriale o tym jak budować aplikacje z użyciem Event Sourcing w .NET.https://www.architecture-weekly.com, cotygodniowy zestaw materiałów i linków na temat szeroko pojętej Architektury Oprogramowaniahttps://www.eventstore.com/blog/keep-your-streams-short-temporal-modelling-for-fast-reads-and-optimal-data-retention, artykuł Oskara o temporal mode...2022-01-041h 33Better Software DesignBetter Software Design27. O wszystkim i o niczym z Kubą PilimonemMateriały dodatkowe: DevKuchnia #11 z Mariuszem Gilem o żywocie konsultantaDevKuchnia #12 z Bartkiem Słotą o żywocie konsultantaThe Secrets of Consulting: A Guide to Giving and Getting Advice Successfully, Gerald M. Weinberg, ciekawa pozycja o byciu konsultantem, jest w niej sporo wartych uwagi wskazówek przydatnych nie tylko konsultantom,More Secrets of Consulting: The Consultant's Tool Kit, Gerald M. Weinberg, kontynuacja poprzedniej pozycji 2021-12-211h 40Better Software DesignBetter Software Design26. O perspektywach Being, Behaving, Becoming"There are only two hard things in Computer Science: cache invalidation and naming things" - nie pierwszy raz wracam w podkaście do słów Phila Karltona, a zapewne także i nie ostatni. Gdy coś raz zostanie nazwane, zwłaszcza niefortunnie, często bardzo trudno się od tej nazwy uwolnić. Tym razem chciałbym więc zwrócić uwagę na to, co i jak możemy przeanalizować w naszym projekcie zanim zaczniemy nazywać poszczególne jego elementy i obiekty. Mowa tu oczywiście o perspektywach, dzięki którym możemy poznać jak coś wygląda, jak się zachowuje, a czasem dodatkowo czym in...2021-06-2911 minBetter Software DesignBetter Software Design25. O modelu i modelowaniu ze Sławkiem SobótkąMateriały dodatkowe:Model jest wszystkim czego potrzebujesz, prezentacja z konferencji Confitura 2013 DevKuchnia, czyli piątkowe spotkania w symulatorze kuchni 2021-06-151h 08Better Software DesignBetter Software Design24. O Aggregates By Example, analiza procesu wypożyczenia ze Sławkiem SobótkąPowraca temat analizy przykładowego agregatu i Aggregates By Example, tym razem moim gościem jest jednak Sławek Sobótka i wspólnie rozkładamy na czynniki pierwsze proces wypożyczenia książki z biblioteki. Oczywiście jest to tylko pretekst do tego, aby porozmawiać o samym procesie projektowania agregatu, możliwych jego wersjach i związanych z tym konsekwencjach. W tym odcinku rozmawiamy m.in. o: - agregatach zbyt dużych, gdzie granica spójności jest zdecydowanie zbyt obszerna - agregatach zbyt małych, nie potrafiących utrzymać systemu w spójności - możliwych agregatach pozwalających zachować...2021-01-121h 18Better Software DesignBetter Software Design23. O 4 poziomach zdarzeńPodczas sesji Big Picture EventStorming bardzo często generowanych jest wiele zdarzeń, które podczas kolejnych kroków stormingu są kolejno eliminowane. W tym odcinku przyjrzymy się 4 rodzajom zdarzeń, czym różnią się od siebie zdarzenia środowiskowe, interfejsowe, domenowe i infrastrukturalne i do czego ten podział można wykorzystać podczas pierwszych warsztatów rozpoznawania domeny.2020-12-2219 minBetter Software DesignBetter Software Design22. O Aggregates By Example, kontynuacja analizy agregatuMateriały dodatkowe:BSD #2, O Aggregates By Example, analiza procesu rezerwacji z Kubą Pilimonem, odcinek podcastu, w którym razem z Kubą analizujemy kilka propozycji agregatówRepozytorium Aggregates By Example, repozytorium z przykładami implementacji różnych agregatówO odkrywaniu granic - heurystyki ważnych decyzji, Kuba Pilimon, prezentacja z naszego wspólnego eventu z Piątkami na Produkcji, w której Kuba przedstawia heurystyki znajdowania granic w systemach 2020-11-2437 minBetter Software DesignBetter Software Design21. O refaktoryzacji legacy z Andrzejem Krzywdą i Robertem PankowieckimMateriały dodatkowe:The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It, Michael E. Gerber Object-oriented metrics by Robert Martin, ciekawe przedstawienie 5 metryk OO Uncle Boba odnośnie couplingu i pochodnych wartości 2020-11-101h 01Better Software DesignBetter Software Design20. O grafach i Neo4j z Jarkiem PałkąMateriały dodatkowe:Neo4j.comNeo4j console, konsola online, gdzie można się pobawić przykładowym grafem bezpośrednio z przeglądarkiNeo4j GraphGists, zestaw świetnych przykładów użycia grafówGraphGist portal, jeszcze więcej przykładów użyciaNeo4j Cypher Refcard, refcard języka CypherPanama Papers, strona główna International Consortium of Investigative Journalists z artykułami odnośnie całej aferyOffshore Leaks Database, datasety ICIJ nie tylko dla Panama Papers, ale także Paradise Papers, Bahama i Offshore Leaksryguyrg/neo4j-panama-papers, przykładowy docker z importem danych Panama Papers do bazy Wpisy na blogu teamu Neo...2020-10-271h 06Better Software DesignBetter Software Design19. O nazewnictwie eventówPhil Karlton dawno temu powiedział swoje słynne zdanie: "There are only two hard things in Computer Science: cache invalidation and naming things". Tematem odcinka 19 będzie właśnie nazewnictwo, ale w kontekście zdarzeń domenowych. Odcinek też jest jednocześnie rozwinięciem rozmowy z Miłoszem, jednym ze słuchaczy podcastu. Miłosz kilka dni temu zwrócił się z pytaniem, czy lepiej stosować bardzo konkretne i jednoznaczne nazwy zdarzeń, czy też można sobie pozwolić na uogólnienia typu SomethingChanged.2020-10-2017 minBetter Software DesignBetter Software Design18. About the past, present and future of IT with Uncle BobFrom time to time we should stop for a moment and take a look around. We will see what is behind us already and what is waiting for us in the future. In this episode my today guest, Robert C. Martin widely known as Uncle Bob, shares his perspectives on Agile, challenges and state of IT industry. This episode of Better Software Design podcast is in English.2020-10-1346 minBetter Software DesignBetter Software Design17. O prawie Demeter, Clean Code i zasadach SOLID z Piotrem StawirejemMateriały dodatkowe:Definicja Law of Demeter, WikipediaClean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin, klasyczna książka Uncle Boba na temat czystego koduAgile Principles, Patterns, and Practices in C#, Robert C. Martin, Mikah MartinTest Driven Development: By Example, Kent Beck, książka, która pojawiła się już przy okazji poprzedniego odcinka o Test Driven DevelopmentDomain-Driven Design: Tackling Complexity in the Heart of Software, Eric Evans, z rekomendacją od Piotra, aby szczególną uwagę zwrócić na rozdział 2 tej książki, czyli "Communication and the Use of Language"Wspomniane przez nas repozytorium z ciekawie zaimpleme...2020-10-061h 04Better Software DesignBetter Software Design16. O Test Driven Development z Kubą PilimonemMateriały dodatkowe:Growing Object-Oriented Software Guided by Tests, Steve Freeman, Pryce, klasyka gatunku na temat implementacji systemów w podejściu Object-Oriented i Test Driven DevelopmentTest Driven Development: By Example, Kent Beck, druga z klasycznych książek na temat TDDMocks, Fakes, Stubs and Dummies, xUnitPatterns.com, zestawienie terminologii Test Doubles w literaturze 2020-09-291h 05Better Software DesignBetter Software Design15. O Test Smells z Olą KunyszMateriały dodatkowe:xUnitPatterns Test Smells, lista Test Smells według Gerarda MeszarosaSoftware Unit Tests Smells, uzupełnienie listy o inne smelle i jedocześnie tool do ich wykrywaniaPIT Mutation Testing, testowanie mutacyjne w JavaInfectionn PHP, testowanie mutacyjne w PHPStryket.NET, testowanie mutacyjne w .NETMutant, testowanie mutacyjne w RubyData i czas dla programistów, Michał Pipa, Boiling Frogs 2017, ciekawa prezentacja na temat "jak bardzo skomplikowany może być czas" 2020-09-221h 17Better Software DesignBetter Software Design14. Domain Driven Design Essentials: Value ObjectMateriały dodatkowe:Value Object, bliki Martina Fowlera, strona, której przedstawiać raczej nie trzeba...Value Object, c2 wikiValue Object Should Be Immutable, c2 wikiThe CHECKS Pattern Language of Information Integrity, Ward Cunningham, zestawienie 11 wzorców zarządzania spójnością informacji, gdzie opisany jest wzorzec Whole Value 2020-09-1514 minBetter Software DesignBetter Software Design13. O architekturze mikroserwisowej z Kubą NabrdalikiemMateriały dodatkowe:Common mistakes when moving to microservices & cloud, prezentacja Kuby z Confitury 2019, same slajdy można pobrać tutajDesigning Event-Driven Systems: Concepts and Patterns for Streaming Services with Apache Kafka, Ben Stopford, wspomniana w rozmowie książka o projektowaniu systemów w architekturze Event-DrivenThe Influence of Organizational Structure on Software Quality: An Empirical Case Study, opracowanie case study Microsoftu od Nachiappan Nagappan, Brendan Murphy, Victor R. BasiliThe Cathedral and the Bazaar, Eric Steven Raymond, wersja Postscript eseju Erica Raymonda o projektach Open-Source z obserwacji na przykładzie m.in. jądra LinuksaPolecam także śledzić profil Kuby...2020-09-081h 12Better Software DesignBetter Software Design12. O zbieraniu i analizie wymagań z Michałem BartyzelemMateriały dodatkowe:Blog Michała Bartyzela, sporo ciekawych tekstów dotyczących także zbierania i analizy wymagań w projektach IT, treści jest tu dużo, Michał pisze tego bloga od 12 latWriting Effective Use-Cases, Alistair CockburnPatterns for Effective Use Cases, Alistair CockburnZainteresowanych tą tematyką polecam także grupę Michała na Facebooku IT spotyka klienta, gdzie można o inch podyskutować albo poczytać. 2020-09-011h 03Better Software DesignBetter Software Design11. Fast Update #1Jedyną stałą rzeczą w projektach IT jest zmiana, także czas na... zmiany. W tym wyjątkowo krótkim odcinku opowiem Ci więc o moich planach dotyczących Better Software Design w najbliższym czasie. Na najbliższy pełny odcinek podcastu nie trzeba będzie długo czekać. Pojawi się on już jutro, 1 września z samego rana. Zapraszam!2020-08-3107 minBetter Software DesignBetter Software Design10. O refaktoryzacji The Arkency Way z Andrzejem KrzywdąMateriały dodatkowe:Refactoring: Improving the Design of Existing Code,Martin Fowler, with Kent Beck , klasyka gatunkuWorking Effectively with Legacy Code, Michael Feathers, druga klasyka warta przeczytania i posiadania w swojej biblioteczceFearless Refactoring: Rails Controllers, Andrzej Krzywda, wspomniana przez Andrzeja jego książka o refaktoryzacji Railsowych kontrolerówKatalog przekształceń refaktoryzacyjnych Martina FowleraTrunkBasedDevelopment.com, skarbnica wiedzy jeśli chodzi o podejście Trunk Based. Można tu znaleźć zarówno przypadki użycia tej techniki, jak i przydatne wzorce, rozwiązujące typowe problemyNasze profile na Instagramie:Profil Andrzeja KrzywdyProfil Mariusza GilaPrzy okazji wizyty Andrzeja...2020-08-111h 12Better Software DesignBetter Software Design9. O modelu i strukturach wielkiej skali z Kubą PilimonemMateriały dodatkowe:Eric Evans, Domain Driven Design: Tackling Complexity In The Hearth Of Software, rozdział 16Zaawansowane modelowanie DDD, techniki strategiczne: konteksty i architektura zdarzeniowa, Sławek Sobótka, część 2 cyklu artykułów "Domain Driven Design krok po kroku" SławkaWspominaliśmy także kanały YouTube:kanał Mariusza z otwierającym projekt "EventStorming i 4 poziomy zdarzeńkanał DevUpgrade.online Kuby Pilimona i Sławka Sobótki 2020-07-141h 09Better Software DesignBetter Software Design8. O Bounded Contextach ze Sławkiem SobótkąMateriały:Bounded Context, krótkie wprowadzenie do wzorca na Bliki Martina FowleraEvent Storming - od analizy do architektury, prezentacja Sławka Sobótki o wykorzystaniu EventStormingu w procesie analizy, ponad 2.5 godziny konkretnej wiedzyThe Art of Discovering Bounded Contexts, prezentacja Nicka TuneThe Secrets of Consulting: A Guide to Giving and Getting Advice Successfully, Gerald M. WeinbergMore Secrets of Consulting: The Consultant's Tool Kit, Gerald M. WeinbergDivergent, Emergent, Convergent Thinking - 3 Thinking Modes, procesy kreatywne i mechanika ich działania 2020-06-231h 39Better Software DesignBetter Software Design7. O programowaniu aspektowym z Andrzejem KrzywdąMateriały:Aspect-Oriented Programming, Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier and John Irwin, pochodzący z 1997 roku i Xerox Palo Alto Research Center whitepaper opisujący podejście AOPRuby and AOP: Decouple your code even more, post Marcina Grzywaczewskiego na blogu ArkencyProgramowanie aspektowe: studium empiryczne, Michał Stochmiałek, praca magisterska z 2005 z Politechniki Wrocławskiej, jak ktoś ma więcej wolnego czasu...Biblioteki i narzędzia:AspectJ, implementacja AOP dla JavyAspect Oriented Programming with Spring, dokumentacja opisująca możliwości wykorzystania AOP we frameworku SpringGo! AOP PHP, implementacja AOP dla PHPFlow F...2020-06-0148 minBetter Software DesignBetter Software Design6. O persystencji agregatów z Kubą PilimonemMateriały do odcinka:Versioning in an Event Sourced System, Greg YoungPrezentacja Łukasza Szydło z Boiling Frogs 2020 DDD - o jeden krok za daleko. Nie wspominaliśmy tej prezentacji w odcinku, ale zdecydowanie jest warta polecenia. Łukasz omawia w niej swoje doświadczenia z różnymi podejściami do persystencji. Nagranie z konferencji chyba jeszcze się nie ukazało...Patterns, Principles, and Practices of Domain-Driven Design, Scott Millett, Nick Tune, rozdział 21 "Aggregates Persistence Strategies" 2020-05-211h 05Better Software DesignBetter Software Design5. O wzorcach Saga i Process Manager z Kubą PilimonemMateriały:Saga, opracowanie naukowe, Hectora Molina-Garcia oraz Kennetha Salem, 1987Wzorzec Saga w katalogu Microservices.ioApplying the Saga Pattern, prezentacja Caitie McCaffrey GOTO Conference 2015Distributed Sagas: A Protocol for Coordinating Microservices, prezentacja Caitie McCaffrey z JOTB17Saga: How to implement complex business transactions without two phase commit, Bernd RuckerMicrosoft CQRS Journey, Saga on SagasWzorzec Process Manager w Enterprise Integration Patterns, Martin Fowler, tutaj odsyłamy do internetowego podsumowania, więcej o wzorcu można znaleźć w samej książce 2020-04-2750 minBetter Software DesignBetter Software Design4. O Remote EventStorming z Alberto Brandolinim i Jacopo RomeiMateriały:Repozytorium Awesome EventStorming na Githubie, sekcja Remote EventStorming 2020-04-1839 minBetter Software DesignBetter Software Design3. O różnych odmianach Ubiquitous Language z Łukaszem SzydłoW tym odcinku razem z Łukaszem Szydło rozmawiamy o różnych odmianach języka wszechobecnego, jaki może pojawić się w rozmowach pomiędzy uczestnikami projektu.2020-04-161h 00Better Software DesignBetter Software Design2. O Aggregates By Example, analiza procesu rezerwacji z Kubą PilimonemMateriały:Chinese Singles Buy Movie Tickets So Couples Can't Sit Together on Valentine's Day, Time.comRepozytorium Aggregates By Example, przykłady różnych implementacji agregatówRepozytorium DDD By Example, projekt Library 2020-04-1648 minBetter Software DesignBetter Software Design1. O modelowaniu agregatów z Kubą PilimonemMateriały:Repozytorium Aggregates by Example, kod przykładu z dokumentem i załącznikami znajduje się tutaj 2020-04-161h 18DevTalkDevTalk51 – O PHP z Mariuszem GilemPo przekroczeniu magicznej granicy, dotarliśmy do 51. odcinka! A w nim… NOBODY EXPECTS SPANISH INQUISITION! Drugą pięćdziesiątkę DevTalka otwiera Mariusz Gil: programista, architekt, współzałożyciel Source Ministry. Możecie go spotkać na wielu krajowych i światowych scenach. Na Twitterze: @mariuszgil. A o czym rozmawiamy? O ten temat prosiliście od dawna, wielokrotnie. I często nazwisko Mariusza padało od razu jako sugestia rozmówcy. Z Mariuszem poznaliśmy się w Bottedze już kilka lat temu, więc nie było trudno się dogadać. I tak narodziła się rozmowa o PHP! Ci, którzy w PHP...2017-03-0600 min