ś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:

wtorek, 5 sierpnia 2014

Po Confiturze - dzięki!

Chciałbym podziękować wszystkim, którzy głosowali na moją prezentację na Confiturze: http://2014.confitura.pl/#/news a szczególnie tym, którzy zostawili notkę z fidbekiem.
Dostałem dziś do nich dostęp i nieco się wzruszyłem.

Dzięki wszystkim, warto dla Was pracować nad prezentacją.
Za rok przygotuję coś ekstra... powoli rodzi mi się koncepcja, będzie to coś z zupełnie innej beczki, coś czemu poświęcam sporo czasu i energii od 2 lat, znacznie więcej niż Javie i programowaniu kiedykolwiek...

Podziękowania również dla organizatorów konferencji i twórców Prezi.com:)

wtorek, 22 lipca 2014

Everything You Were Taught About Java Is Wrong

Ciekawa prezentacja byłego pracownika Sun: http://vimeo.com/99577260
Nieco sklejona na kolanie, ale poprzez bigerpikczer pokazuje np:

  • skąd wzięła się kuriozalna konwencja JavaBean
  • koncepcja serwera aplikacyjnego pochodzi z czasów gdy RAM liczono w dziesiątkach MB
  • starając się zbyt mocno programować współbieżnie programujemy wbrew współbieżności
Ciekawe...

poniedziałek, 19 maja 2014

Feedback - publikacja artykułów

Zapraszam do lektury nowej serii artykułów z działu Laboratorium Bottega jaki prowadzimy od początku istnienia Magazynu Programista.

Aktualnie dostępne są dwa pierwsze teksty poświęcone naszym eksperymentom z "Brakującym elementem Agile": http://bottega.com.pl/artykuly-i-prezentacje#agile

Paweł Badeński dzieli się swoimi doświadczeniami na temat feedbacku, które zdobył jako coach zespołów w ThoughtWorks, gdzie był odpowiedzialny za "misje ratunkowe" polegające na zmianie systemowej kultury pracy np. w projektach IT rządu UK.

Statystyczny człowiek dostaje w ciągu roku ok 17 minut pozytywnych informacji na temat siebie i swego zachowania. Łatwo przychodzi nam krytykowanie (źle przeprowadzone działa na cały zespół niczym sarin), ale pozytywny feedback dostajemy zwykle jedynie od babci;)

Co może zdziałać pozytywny feedback? Np. wyciska łzy u dorosłych mężczyzn ostatniego dnia warsztatów, odbudowuje morale i motywację... i takie tam... kluczowe ze strategicznego punktu widzenia sprawy:)

//=============================

W kolejnych częściach serii zajmiemy się między innymi:
  • komunikacją z biznesem - miękkie techniki prowadzenia sesji modelowania wspierające DDD
  • odbudową morale i motywacji
  • problemami z utratą pracowników i pozyskaniem na ich miejsce nowych 

wtorek, 13 maja 2014

Microservices w kontekście DDD

Mamy nowy buzowrd: mokroserwis, który zdążył być już w typowy da naszej branży - Montypythonowy - sposób wypaczony:)

Autor artykułu Microservices: Usage Is More Important than Size stawia retoryczne pytanie:
czy mikroserwis to
- SOA, które wreszcie doczekało się poprawnej interpretacji (bez ESB i smutnego SOAP)
- czy może stara "dobra" CORBA i RMI tylko, że podana na REST wraz ze wszystkimi smutnymi konsekwencjami zbytniego rozproszenia?

Kolejne figury retoryczne pojawiają się w tekście Microservices? What about Nanoservices?: Sto linijek to jeszcze makro-serwis czy już nano-serwis (funkcjonalność a nie serwis), który jest antywzorcem?

Mierzenie linijek kodu od linijki to jak zwykle znak, że "coś się dzieje";)

Patrząc z dystansu widać to co zwykle: onanizm techniczny zamiast zrozumienia jaki problem próbujemy rozwiązać.

Wydaje mi się, że gdyby za definicję zakresu mikroserwisu przyjąć: API dla Bounded Context z DDD, to wszystko stałoby się jasne...