Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[JDD2013] Mantra Architektoniczna 2.0

2,067 views

Published on

www.bnsit.pl

Published in: Technology
  • Be the first to comment

  • Be the first to like this

[JDD2013] Mantra Architektoniczna 2.0

  1. 1. Mariusz Sieraczkiewicz Mantra architektoniczna
  2. 2. Gdzie marnujemy nasz czas?
  3. 3. Nie ma czasu na testy Nie ma czasu na refaktoryzację Nie ma czasu na przeglądy kodu …
  4. 4. To gdzie jest czas?
  5. 5. Jestem nowy
  6. 6. Przegląd kodu Bug
  7. 7. Tracimy mnóstwo czasu, dlatego nie mamy go na rzeczy ważne.
  8. 8. Z jakich klocków składa się Twój system?
  9. 9. Co robi Controller*? Czy wszyscy podadzą tę samą odpowiedź? TĘ SAMĄ!
  10. 10. Maine name ist James Joyce. I’m going na wakacje pokuszac haraszo …
  11. 11. EROZJA ARCHITEKTURY
  12. 12. Zrób sobie test
  13. 13. Krzywa GAUSSA? Zadowolenie = Rzeczywistość - Oczekiwania
  14. 14. Co to jest ta #$Q%*# MANTRA?
  15. 15. O trzeciej nad ranem każda osoba w zespole jest w stanie bez zająknięcia powiedzieć, z jakich klocków składa się system i jakie są ich odpowiedzialności
  16. 16. i wSZYsCy oDpOWiEdzĄ TO SAMo
  17. 17. Bloki budujące - wizualizuj Odpowiedzialności - zdefiniuj – Proces - napędzaj -
  18. 18. Widok z lotu ptaka Prostota
  19. 19. Value Object • Grupuje dane należące do pewnej całości • Nie jest trwale przechowywany • Pozwala nazwać konkretny byt z domeny • Nie jest unikatowy – NumerTelefonu, KodPocztowy, • Implementowany w oparciu o wzorzec Immutable • ... Entity • Obiekt, który musi być unikatowy • Posiada dane oraz zachowanie biznesowe • Jest trwale przechowywany • Unikatowość obiektu zależy od konkretnego kontekstu i domeny • ...
  20. 20. Repository • Wyznacza warstwę do trwałego przechowywania danych • Abstrahuje od konkretnego sposobu persystencji • Zachowuje interfejs kolekcji • … Application Service • Mieści się w warstwie aplikacji • Wykonuje przetwarzanie wyznaczone przez przypadki użycia • ...
  21. 21. Nie chodzi o definicje książkowe…
  22. 22. Jak powinno być? Co się powinno dziać? 1. Przyjmuje request 2. Dokonuje złożonej walidacji 3. Składa dane do wywołania serwisu 4. Wywołuje serwis 5. Wynik pakuje w JSONa 6. Określa kolejny widok Jak jest? Dzieje się wszystko. Czego nie powinno być? • Prostej walidacji (gdyż do tego celu wykorzystujemy framework webowy) • Złożonego przetwarzania JSONa (z serwisu nie powinien przychodzić JSON) • Logiki dziedzinowej np. decydowanie na podstawie danych czy zlecenie ma być wykonane
  23. 23. 1. Zdefiniuj jak jest i jak powinno być 2. Rozpowszechnij 3. Monitoruj – przeglądy kodu, DoD 4. Rób retrospekcje 5. Modyfikuj
  24. 24. LEGACY
  25. 25. Mantra ma kilka wcieleń
  26. 26. PUŁAPKI mentalne
  27. 27. Mantra wydaje się oczywista DDD, JEE, MVC
  28. 28. „Przecież ludzie to wiedzą na bazie systemu!”
  29. 29. Jest ona tylko w głowie architekta i lidera
  30. 30. ?

×