piątek, 6 listopada 2015

Architektura dla średnio zaawansowanych programistów

Na początku tego roku stworzyłem prezentację, która podsumowuje kilka ładnych lat mojej pracy i zamyka tym samym pewien etap: "Co było pierwsze: kod czy architektura?"

Została zarejestrowana podczas tegorocznej edycji http://dotnetconf.pl/ (również: Devoxx, Infoshare i kilka mniejszych) i możecie obejrzeć ją w całości poniżej:


Slajdy:




Prezentacja z uwagi na brak czasu omawia wyłanianie się kodu z architektury. Natomiast podejście Emergent Design gdzie architektura wyłania się z kodu można zobaczyć tutaj począwszy od 50. minuty (w nieco gorszej jakości audio i video):





Wiele osób pytało o materiały, więc pomyślałem, że warto zrobić moją prywatną listę książek, które polecam na początek:

  • S. Brown Software architecture for developers - prosta i skuteczna metodyka rysowania diagramów, które mają sens i wnoszą wartość do projektu; dzięki tej książce dowiecie się, że słowo architektura nie ma sensu w IT jeżeli nie dodasz do niego przymiotnika
  • V. Vernon Implementing DDD - nawet jeżeli nie interesujesz się DDD, to znajdziesz tutaj kompendium wiedzy o współczesnych stylach arch w kontekście nietrywialnego przykładu dziedzinowego
  • C. Larman Applying UML and Patterns - tytuł jest zmyłką;) książka nie traktuje o UML, została napisana w czasach gdy UML dodawał +20 do sprzedaży;) autor przedstawia kompletny zwinny proces produkcji softu 
  • Seria Pattern oriented software architecture - to po prostu trzeba mieć w domu na półce... początkowe tomy są dla  wszystkich, końcowe są zorientowane na specyficzne problemy
Swego czasu popełniłem również serię artykułów dla programistamag.pl Receptury projektowe - niezbędnik początkującego architekta, którą można pobrać całkowicie darmowo tutaj: http://bottega.com.pl/artykuly-i-prezentacje#receptury

Tutaj można znaleźć projekt, który ilustruje omawiane techniki https://github.com/BottegaIT/ddd-leaven-v2

Polecam również Udi Dahan.



Mam do Was prośbę: podajcie w komentarzach swoje propozycje "must read" wraz z krótkim komentarzem dlaczego warto.

środa, 1 lipca 2015

Konkurs na Confiturze

Bottega jako partner tegorocznej Confitury zaprasza uczestników konferencji do konkursu (a właściwie dwóch).

Konkurs 1: Rozśmiesz nas

1. Wchodzisz na stronę, której adres znajdziesz w sobotę w naszej ulotce znajdującej w materiałach dla uczestników. Znajdziesz tam aplikację (cloud, rest, node.js:), która pozwala na tworzenie memów. Konkurs przeznaczony jest tylko dla uczestników konferencji, dlatego musisz podać maila (nie zbieramy maili, organizatorzy przekazali nam hashe waszych maili)

2. Dokończ mema:


przykład:

3. Autor mema, który zebrał najwięcej głosów wygrywa drona Syma X8C (z kamerką HD:)

Konkurs 2: Głosuj na memy

1. Wchodzisz na stronę, której adres znajdziesz w sobotę w naszej ulotce znajdującej w materiałach dla uczestników. Znajdziesz tam aplikację (cloud, rest, node.js:), która pozwala na głosowanie na stworzone w Konkursie 1 memy. Konkurs przeznaczony jest tylko dla uczestników konferencji, dlatego musisz podać maila (nie zbieramy maili, organizatorzy przekazali nam hashe waszych maili)

2. Głosujesz na memy, które są śmieszne/nie są czerstwe (wyłaniając tym samym zwycięzcę Konkursu 1)

3. Wśród głosujących rozlosujemy 3 egzemplarze książki:


piątek, 8 maja 2015

Video: Jesteś ekspertem i co dalej?

Prezentacja "Jesteś ekspertem i co dalej? Ścisły przewodnik po materii miękkiej dla ekspertów IT - część II", którą pokazywałem na JUGach w Poznaniu, Wrocławiu, Lublinie i Łodzi oraz na 4Developers doczekała się porządnych slajdów i video (na warszawskim JUG).

Zajawka: https://www.facebook.com/BottegaITSolutions/videos/vb.213242472061197/964224023629701/?type=2&theater


Prezentacja 2h 20 min:)


Prezi: https://prezi.com/dllleqt07g33/jestes-ekspertem-i-co-dalej

Zainteresowanych dalszym zgłębianiem tematu odsyłam do źródeł: http://art-of-software.blogspot.com/2015/01/materiay-ze-spotkania.html 

Prezentacja jest ekstraktem z szerszego, zakrojonego na kilka dni programu: Projektowanie kariery z uwzględnieniem architektury Twojego mózgu. Tutaj opis: http://bottega.com.pl/pdf/program_architektura_kariery.pdf



środa, 8 kwietnia 2015

Szkolenie DDD do wygrania na drabinie ekspertów.

Podczas tegorocznej konferencji 4Developers zorganizowaliśmy własną ścieżkę firmy Bottega: "Drabina ekspertów".

Plan dostępny tutaj http://4developers.org.pl/pl/agenda/agenda/
Strona nie jest do końca restful;) więc wklejam plan:



Jak widać pomysł na ścieżkę jest prosty: nasi trenerzy omawiają kolejne "szczeble" stosu architektonicznego. Elementami drabiny są zarówno technologie i metodyki jak również style architektoniczne. Całość w formie spójnej narracji, gdzie koniec prezentacji jednego eksperta jest punktem wyjścia do prezentacji kolejnego.

Moje pierwsze (i ostanie, obiecuję :) ) video:
https://www.facebook.com/video.php?v=942724792446291&set=vr.947246991994071&type=2&theater

A tutaj Mateusz pokazuje jak powinno wyglądać video promujące ścieżkę
https://www.facebook.com/video.php?v=947246991994071&set=vb.213242472061197&type=2&theater


Konkurs!
Uczestnicy naszej ścieżki będą mogli wygrać udział w szkoleniu otwartym z zakresu Domain Driven Design, które odbędzie się w dniach 5-7 maja w Lublinie.

Podczas każdej z prezentacji na naszej ścieżce padnie pytanie. Wśród osób, które odpowiedzą na wszystkie pytania wylosujemy nagrodę.

piątek, 27 lutego 2015

Połączenie BDD z DDD

Community Behavior Driven Development zaczyna się reflektować, że metodyka daje bardzo płytkie rozumienie domeny.
W artykule  http://www.infoq.com/news/2015/02/bdd-ddd znajdziecie link do prezentacji https://skillsmatter.com/skillscasts/6240-taking-back-bdd która pokazuje jak i dlaczego integrować BDD i Domain Driven Design.

O ile zgadzam się co do idei, to prezentowana implementacja wydaje się być po prostu szkodliwa. Historyjka akceptacyjna operuje na obiektach domenowych, zamiast na wyższej warstwie, czyli serwisach aplikacyjnych lub CommandHandlerach.

Jaka jest konsekwencja? Historyjka powiela logikę wyższej warstwy. Nie tędy droga... Pomylono po prostu Domain Story z User Story i stąd taki kuriozalny efekt. Może gdyby prelegent napisał nieco kodu, to by uświadomił sobie błąd w rozumowaniu;)

O powierzchowności User Story mówiłem tutaj: https://www.youtube.com/watch?v=z0y3IPJDyp0


//======================
Podobne problemy napotkamy stosują Spec by Example. Nie chcę być źle zrozumiany, nie twierdzę, że BDD czy SBE są błędne, są po prostu niewystarczające dla nietrywialnych domen.

Inna obserwacja: czy ludzie biznesu na pewno potrafią dobrze operować przykładami? Ile przykładów można zmieścić w pamięci podręcznej mózgu? Może przykłady są dobre w początkowej fazie poznawania domeny a później wygodniej od nich abstrahować? Odpowiedź brzmi oczywiście: "to zależy". Ale zależy od czego? Od nawyków kognitywnych konkretnego człowieka. Niektórzy preferują abstrakt a inni konkret, jeszcze inni najpierw jedno, później drugie.

Więcej na ten temat można zacząć eksplorować np tutaj: http://en.wikipedia.org/wiki/Learning_styles#David_Kolb.27s_model

Modeling Whirlpool z DDD idealnie integruje wszystkie style uczenia (poznawanie domeny jest uczeniem się jej) z Cyklów Kolba.

poniedziałek, 16 lutego 2015

Przykład problemów z ubiquitous language

Piękny przykład na problemy w komunikacji świata IT, medycyny i inżynierii przesyłu cieczy. Moim zdaniem prezentacja jest ciekawa sama w sobie merytorycznie, ale pokazuje też, że inne branże mają problemy tej samej klasy:)

Warto obejrzeć aby mieć świadomość jakie jeszcze siły działają na projekt oprócz wycieków pamięci;)

http://www.ted.com/talks/tal_golesworthy_how_i_repaired_my_own_heart