środa, 15 października 2014

Relacja z JDD

Do tej pory nie pisałem relacji z konferencji, na których bywam, bo myślałem, że relacji jest tak wiele, że kolejna nic nie wniesie.

Okazało się, że tak było kiedyś... Tradycja relacjonowania zanika w narodzie, zatem pomyślałem, że ją podtrzymam - szczególnie, że tym razem każda prezentacja jaką wybrałem (niestety tylko pierwszego dnia) była wartościowa merytorycznie i świetnie poprowadzona.

Zachęcam do poświęcenia kilku godzin gdy tylko video z konferencji pojawi się na YT.
A póki co mam dla Was slajdy, które zebrałem do prelegentów.


10 THINGS I’D TELL MY YOUNGER SELF ABOUT (JAVA) WEB DEVELOPMENT 

Dykcja, fason, styl...
Historia opowiedziana po mistrzowsku od strony retorycznej: CV Mateusza sprzed 10 lat, wspomnienia technicznych decyzji jakich dokonywał (jak się okazuje) nieświadomie. Piękny przekaz dla młodszych programistów - macie szansę uniknąć błędów jaki my popełniliśmy.

A merytorycznie dużo, dużo mięcha:
  • czym kierować się wybierając framaework webowy i silnik szablonów - nie odcinaj się od HTTP - gdy będziesz chciał/chciała zrobić coś poważnego poczuje ból braku dostępu do "metalu"
  • czy Twój framework webowy i silnik szablonów da się testować wprost?
  • kiedy node.js (ogólnie event looop) ma sens a kiedy nie - masz do czynienia z High IO czy High CPU?
  • kontenery DI - odróżniaj składanie obiektów od zasięgów, to osobne klasy problemów. A tak poza tym od zasięgów są nawiasy w Javie:P
  • loguj na std.out - system operacyjny najlepiej zajmie się IO
  • adnotacje są jak łupież - w sumie Cię nie zabiją, ale brzydko to wygląda (mistrz!)
  • do tego masa przykładów eleganckich, małych bibliotek, które robią jedną rzecz i robią to dobrze - możesz z nich poskładać własny stos
Generalnie masa doświadczenia wyniesionego wprost od konsultantów ThoughtWorks.
Człowiek, który programuje z Mateuszem, to musi być szczęśliwy człowiek


W slajdach znajdziecie masę wartościowych informacji: http://www.slideshare.net/kwasniew/10-things-id-tell-my-younger-self-about-java-web-development


"Jak wprowadzić DDD w naszym smutnym projekcie" - często słyszę takie pytanie na szkoleniach... Jest to często problem na poziomie strategii organizacji - w jakim kierunki chce podążać i jak chce kreować swój proces wytwórczy.

Piotrek w przejrzysty sposób pokazał przecięcie 2 aspektów:

  • wspomnianej strategii organizacji
  • technicznych rozwiązań opartych o architekturę Ports&Adapters
jako 4 podejścia architektoniczne.

Ciekawy był również wstęp do DDD - Piotrek podszedł od strony Strategic Design. Sam zawsze obawiałem się mówić od tej strony o DDD na  konferencjach, bo wydaje mi się zbyt abstrakcyjna dla programujących odbiorców, ale w wydaniu Piotrka wyszło fajnie:)

Prezentacja w Prezi (choć wygląda jak zaimportowana z power pointa;P) http://prezi.com/y_1raovqqxc4/using-domain-driven-design-in-legacy-systems/



JEE'ISH DEVELOPMENT WITHOUT HASSLE

Po prostu mistrz sarkazmu:)
Aż zacytuję: "Używamy Spring Boot i jesteśmy lightweight".

Fajny dystans do narzędzi i podejść... generalnie przesłanie: czy na pewno potrzebujesz armaty na muchę?

W prezentacji znajdziecie polecane biblioteki, które w lekki sposób zastępują ciężkie działa. Jest tam również link do kodu - kilku projektów, które implementują TODO list przy pomocy różnych zestawów narzędzi.

Prezentacja: https://speakerdeck.com/kubamarchwicki/jee-without-hassle-pl



WHAT YOU WON'T READ IN BOOKS ABOUT IMPLEMENTING REST SERVICES

Jak zrobić świetną prezentację? Proste: wziąć sexi temat, potraktować od nietrywialnej strony i poprowadzić przez Kubę Kubryńskiego:)

Jeśli wydaje Ci się, że robisz REST, to zajrzyj do slajdów: http://www.slideshare.net/KubaKubryski/what-you-40244393
Znajdziesz tam między innymi:
  • model dojrzałości Twojego api: 
    • kupa XMLa, 
    • zasoby, 
    • czasownik http, 
    • negocjacja kontentu
  • odróżnienie zasobu od jego formy (xml, json) i wersji
  • typowe błędy w wersjonowaniu API
  • trik na paginację zasobów
  • pułapki cache
  • narzędzia dokumentacji i uruchamiania serwisów

//=========================
A tutaj linki do moich prezentacji: