Tytuł: | Pragmatyczna refaktoryzacja z użyciem technik Domain Driven Design |
Kod: | Craft-refactor |
Kategoria: | Wzorce i Craftsmanship |
Forma: | 50% wykłady / 50% warsztaty |
Czas trwania: | 3 dni |
Odbiorcy: | developerzy |
Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Przekształcenia “Extract Method”, “Replace If with Guardian” oraz “Extract Object” poprawiają czytelność kodu, ale nie ratują projektów, których bazowy model jest zły.
Jak w bezpieczny i pragmatyczny sposób dokonać refaktoryzacji, która przypomina wymianę silnika lecącego samolotu? Poniższy warsztat przedstawia szereg typowych problemów projektowych skategoryzowanych na bazie produkcyjnego, audytorskiego i konsultacyjnego doświadczenia z szeregu projektów z różnych dziedzin biznesowych.
Nie jest to kolejny warsztat, w którym krok po kroku przechodzimy po katalogu typowych “zapachów” kodu i sposobów ich eliminacji. Podczas zajęć analizujemy też architektoniczne problemy, których naprawa wykracza poza standardowe ramy refaktoryzacji, ale których bezpieczne wykonanie może owocować dostarczeniem wartości biznesowej bez 3-miesięcznego przestoju. Uczestnik zdobywa konkretną mapę nawigacyjną wraz z narzędziami pozwalającymi mu skutecznie identyfikować i eliminować wieloletnie problemy występujące w systemie. Wszystko to w sposób bezpieczny, poparty dobrymi praktykami inżynierskimi, Domain-Driven Design oraz możliwością odwrotu.
Na warsztacie uczestnik poznaje sposoby rozmowy z odbiorcami biznesowymi, którzy nie do końca są przekonani do podejścia refaktoryzacji. Zajęcia obfitują w konkretne metryki biznesowe, budujące wspólne zrozumienie pomiędzy zespołem deweloperskim, a interesariuszami biznesowymi.
Po warsztacie, uczestnik m. in. potrafi identyfikować i naprawiać problemy architektoniczne i implementacyjne wykorzystując podejście Domain-Driven Design, analizę historii repozytorium, analizę metryk i stabilności kodu, podejście Test-Driven Development, podejście obiektowe/funkcyjne, modularyzację i wiele innych.
Warsztat może się odbyć wersji od trzydniowej do pięciodniowej. Czwarty lub/i piąty dzień poświęcamy na analizę domenową nowego projektu, która służy jako klamra wiedzy stosowanej przez trzy pierwsze dni w systemie Legacy. Alternatywnie warsztat może odbyć się jako konsultacja na projekcie klienta.
Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.
Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.
Artykuł poświęcony technikom odwracania kontroli w ujęciu: problem, idea, motywacja, zastosowanie, technika, kiedy nie stosować.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Powiązane usługi: |
Audyty architektury |
Artykuł przedstawiający metodę doboru zaślepek (Mock/Stub) dla testów jednostkowych na podstawie paradygmatu CQS.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Powiązane usługi: |
Audyty architektury |
W jaki sposób dokumentować architekturę systemu? Z jednej strony tak, aby zawrzeć wszystkie potrzebne informacje, z drugiej zaś, aby nie przeładować dokumentacji szczegółami, które czynią ją bezużyteczną.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Powiązane usługi: |
Audyty architektury |
Artykuł przedstawia meta-model, którym możemy posiłkować się w zmaganiach ze złożoną logiką biznesową. Meta-model będzie praktyczną realizacją drugiej zasady SOLID: Open/closed principle, która pozwala tworzyć rozwiązania otwarte na rozbudowę (rozbudowa to nie to samo co zmiana).
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Powiązane usługi: |
Audyty architektury |
Stosując mapery relacyjno-obiektowe, zwykle nie zastanawiamy się nad problemami związanymi z niespójnością danych wynikającą ze stosowania Lazy Loadingu, granicą spójności obiektów podczas zapisu kaskadowego oraz pułapkami naiwnego blokowania optymistycznego.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Powiązane usługi: |
Audyty architektury |
Artykuł przedstawia koncepcję Wzorców analitycznych – adresujących rozwiązania na poziomie analizy systemowej. Ilustracją na przykładów jest kilka wybranych, w tym najbardziej popularnym z nich: Party – będą one również alternatywą dla typowych naiwnych książkowych modeli struktur organizacyjnych.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne Microservices - podejście kompleksowe oparte o DDD i Cloud Domain Driven Design - zaawansowane techniki modelowania i archetypy (część 3) |
Powiązane szkolenia otwarte: |
|
Powiązane usługi: |
Audyty architektury Audyty architektury Wdrażanie Machine Learning |
Wiele czasu i energii spędzamy na dyskusjach o wyższości jednego paradygmatu programowania nad innym, o wyższości jednego języka programowania nad innym. W niniejszym artykule chcę przekonać czytelników do tego, aby obok siebie, równorzędnie stosować zarówno paradygmat obiektowy, jak i funkcyjny oraz nie zapominać o proceduralnym.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Powiązane usługi: |
Audyty architektury |
Do czego może przydać mi się propagacja transakcji inna niż REQUIRED? Jak zachowa się wówczas EnityManager i cache pierwszego poziomu? Jak uniknąć zakleszczeń? Dlaczego moje transakcje tylko-do-odczytu nie są tylko do odczytu? Kiedy oddać sterowanie transakcjami klientom zamiast obsługiwać je aspektowo? Jakie anomalie w spójności danych mi zagrażają?
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Modularyzacja systemu - analiza granic i projektowanie API Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów Projektowanie systemów modularnych, rozproszonych i Event Driven: podejście praktyczne |
Powiązane usługi: |
Audyty architektury |
Artykuł poświęcony technikom utrzymywania testów w długiej perspektywie czasu.
Techniki, które profesjonalny programista powinien mieć w swojej „skrzynce z narzędziami”, czyli m.in. Test Data Builder i Assert Object.
Prezentacja Łukasza Szydło na temat architektury wspierającej Continuous Delivery. Materiały z konferencji 4Developers 2014
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Jenkins - Continuous Delivery pipelines Terraform i Infrastruktura jako Kod (IaC) - szkolenie kompleksowe Grafana, Prometheus, Loki kompleksowe szkolenie: wizualizacja danych, alarmowanie, administracja |
Powiązane szkolenia otwarte: |
Grafana, Prometheus, Loki kompleksowe szkolenie: wizualizacja danych, alarmowanie, administracja |
Problemy i ich rozwiązania w zakresie: Lazy Loading, Optimistic Locking, generowanie ID, poziomy izolacji transakcji.
Techniki zwiększania czytelności kodu.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
Microservices - podejście kompleksowe oparte o DDD i Cloud Domain Driven Design - zaawansowane techniki modelowania i archetypy (część 3) Archetypy modeli biznesowych z wykorzystaniem Event Stormingu Implementacja Domain Driven Design - wzorce architektoniczne (część 2) |
Powiązane szkolenia otwarte: |
|
Powiązane usługi: |
Audyty architektury Wdrażanie Machine Learning |
W 1970 roku John Conway publikował koncept prostego automatu komórkowego, Game of Life. Dziś, po 37 latach, tych kilka regułek rządzących rozwojem świata komórek jest idealnym przykładem do nauki programowania obiektowego, funkcyjnego, wzorców, testowania oprogramowania, pair programmingu… Dla nas Game of Life stanie się także punktem wyjścia do metod analizy domeny klienta, rozgryzania jej niuansów i niedopowiedzeń ze strony biznesu, czy wreszcie definiowania i ochrony logiki biznesowej tak, aby teoretycznie niewielkie zmiany wymagań nie zrujnowały całkowicie implementacji… W końcu Game of Developer Life to coś więcej niż tylko stosowanie w praktyce znanych frameworków i narzędzi.
Autor Bottega: |
|
Powiązane szkolenia dedykowane: |
PHP revisited - odświeżenie spojrzenia na programowanie w PHP Projektowanie i implementacja wysokowydajnych aplikacji w języku PHP |
Powiązane usługi: |
Audyty architektury |