Download the App!
show episodes
 
Loading …
show series
 
Eventy 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 kolej…
  continue reading
 
Encje 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 okr…
  continue reading
 
W 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,…
  continue reading
 
Każ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…
  continue reading
 
Czy 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, …
  continue reading
 
Temat 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ć…
  continue reading
 
Eventy ś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 danyc…
  continue reading
 
"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…
  continue reading
 
Konferencja 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ą o…
  continue reading
 
Idea 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ś…
  continue reading
 
Subdomena 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. …
  continue reading
 
Kod 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 Woj…
  continue reading
 
Do 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 zastosow…
  continue reading
 
Istnieją 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…
  continue reading
 
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…
  continue reading
 
Projektowanie 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 pr…
  continue reading
 
CQRS, 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óry…
  continue reading
 
Mylić 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…
  continue reading
 
Czę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ę przyjrzyj…
  continue reading
 
Wiele 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 w…
  continue reading
 
Niezależ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…
  continue reading
 
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ł…
  continue reading
 
O 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…
  continue reading
 
Materiały dodatkowe: Functional Event Sourcing Decider, źródłowy artykuł na blogu Jérémiego Chassaing na temat implementacji wzorca Decider Functional Event Sourcing, nagranie prezentacji Jérémiego z DDD Europę 2020, niestety bez obrazu z laptopa How to effectively compose your business logic, artykuł Oskara na temat kompozycji logiki z wzorcem Dec…
  continue reading
 
Materiały dodatkowe: 8-krokowy process przeprowadzenia zmiany, podsumowanie wspomnianego przez Krzysztofa frameworka Johna Kottera Technology Strategy Patterns: Architecture as Strategy, książka Ebena Hewitta Nerd Management, video podcast Krzysztofa i Pawła na tematy związane z zarządzaniem zespołami IT…
  continue reading
 
Materiały dodatkowe: CUPID - the back story, pierwszy artykuł Dana Northa o kwestionowaniu zasad SOLID CUPID - for joyful coding, kontynuacja tematu na blogu Dana Northa CUPID - for joyful coding, nagranie prezentacji z konferencji NDC London 2022 Patterns of Software: Tales from the Software Community, Richard P. Gabriel…
  continue reading
 
Materiały dodatkowe: Bitemporal History, wpis na blogu Martina Fowlera na temat problemu modelowania bitemporalnego As Time Goes By…, a Bi-temporal Event Sourcing story, prezentacja - Thomas Pierrain z konferencji DDD Europe 2018 4 Strategies for future events with Event Sourcing, strategie rozwiązywania problemu "zdarzeń z przyszłości" Eventsourci…
  continue reading
 
Materiały dodatkowe: Testowanie mutacyjne, prezentacja Marcina na temat testowania mutacyjnego z konferencji Boiling Frogs 2016 Slajdy prezentacji Jak szybkie (lub wolne) jest testowanie mutacyjne?, artykuł Marcina na temat szybkości testowania z mutantami, na przykładzie PIT i projektów FOSS Blog Marcina Twitter Marcina Przykładowe narzędzia testo…
  continue reading
 
Materiały dodatkowe: Reactive programming: lessons learned, prezentacja Tomka z konferencji JDD 2018 What Color is Your Function? RxMarbles, interaktywne diagramy Rx nurkiewicz.com, strona Tomka i jego podcastu Around IT in 256 Seconds Reactive Programming with RxJava: Creating Asynchronous, Event-Based Applications Narzędzia: ReactiveX, pełna list…
  continue reading
 
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 Neustadt Analysis Patterns: Reusable Object Models, Martin Fowler, z przedmową Ralpha Johnsona i Warda Cunninghama Data Model Patterns: Conventions of Thought, D…
  continue reading
 
Materiały dodatkowe: Software Requirements, Karl Wiegers, Joy Beatty, wydanie III Requirements Engineering Fundamentals: A Study Guide for the Certified Professional for Requirements Engineering Exam - Foundation Level, Klaus Pohl, Chris Rupp Specification by Example: How Successful Teams Deliver the Right Software, Gojko Adzic Facylitacja-wiedza, …
  continue reading
 
Materiały dodatkowe: Domain Storytelling Quick Start Guide, szybkie wprowadzenie do techniki Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software, Henning Schwentner oraz Stefan Hofer Find Context Boundaries with Domain Storytelling, prezentacja Henninga Schwentner oraz Stefana Hoferz konferencji DDD EU 2018 L…
  continue reading
 
Materiały dodatkowe: The Testing Trophy And Testing Classification, artykuł Kenta C. Doddsa dotyczący zmiany struktury testów w projekcie GOTO Conferences, nagrania z różnych edycji konferencji GOTO Pozwoliłem też sobie wybrać kilka konkretnych prezentacji z GOTO: Structure and Interpretation of Test Cases, Kevlin Henney, GOTO 2022 When To Use Micr…
  continue reading
 
Materiały dodatkowe: Software Architecture for Developers, książka Simona Browna Design It! : Pragmatic Programmers: From Programmer to Software Architect, książka Michaela Keelinga Thinking Architecturally, książka Nathaniela Schutty Thinking Architecturally, prezentacja Nathaniela związana z powyższą książką…
  continue reading
 
Patrzą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.Autor: Mariusz Gil
  continue reading
 
Materiały dodatkowe: Modular monolith: Primer, część 1 serii Modular Monolith: Architectural Drivers, część 2 serii Modular Monolith: Architecture Enforcement, część 3 serii Modular Monolith: Integration Styles, część 4 serii Modular Monolith: Domain-Centric Design, część 5 serii Modular Monolith with DDD, przykład modularnego monolitu w repozytori…
  continue reading
 
Dodatkowe materiały Wardley Mapping - notatki ze spotkania na Miro Konto Simona Wardley’a na Twitterze Nauka map Wardley’a w 90 sek Narzędzia konsultanta, artykuł wprowadzający na blogu Radka Analiza przypadku Zalando, przykład praktycznego użycia map Introduction to Value Chain Mapping", keynote Simona Wardley'a z konferencji OSCON 2014 Crossing t…
  continue reading
 
Modelowanie 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…
  continue reading
 
Materiały dodatkowe: Składnia języka Gherkin Cucumber JBehave SpecFlow Behat Thoughtworks Gauge Thoughtworks Taiko Dodatkowo, sporo ciekawych odnośników do materiałów związanych z Behaviour-Driven Development znajduje się z repozytorium Mateusza, Awesome-BDDAutor: Mariusz Gil
  continue reading
 
Materiały dodatkowe.. Prezentacje: Dissecting Bounded Contexts, prezentacja Nicka Tune z konferencji DDD Europe 2020 Context Maps - a deep dive, prezentacja Michaela Plöd z konferencji KanDDDinsky 2019 Książki: Accelerate: Building and Scaling High-Performing Technology Organizations, Nicole Forsgren,Jez Humble, Gene Kim The DevOps Handbook: How to…
  continue reading
 
Przykł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 …
  continue reading
 
W 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ć?- pojaw…
  continue reading
 
Materiał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 tematach https://martendb.io, implementacja EventStore i bazy dokumentowej dla .NET z wykorzystanie PostgreSQL https://www.eventstore.com, dedykowana baza danych…
  continue reading
 
Materiały dodatkowe: DevKuchnia #11 z Mariuszem Gilem o żywocie konsultanta DevKuchnia #12 z Bartkiem Słotą o żywocie konsultanta The 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 S…
  continue reading
 
"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 prz…
  continue reading
 
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 ko…
  continue reading
 
Loading …

Skrócona instrukcja obsługi