piątek, 22 stycznia 2016

21 lat po wzorcach

Na kanale JDD pojawiła się prezentacja Ralpha Johnsona - jednego z autorów klasycznej i znanej chyba każdemu programiści pozycji http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612

Książka (i jej pochodne) ukształtowała mnie, community Java i .NET, część pokolenia...
Dzięki niej zaczęliśmy myśleć innymi metaforami niż uczono nas na uczelni. U mnie osobiście "namacalne" metafory każdego wzorca rozwinęły spojrzenie kinestetyczno-wizualne na strukturę kodu, które do tej pory jest podstawą mojego poczucia estetyki. Z czasem wzorce odpinamy jak boczne kółka w rowerku, ale sam sposób budowania myśli i komunikowania się z zespołem pozostaje.



Ralph opowiada o tym co motywowało autorów oraz o zmianach jakie poczyniłby w drugiej edycji od strony merytorycznej jak i co do formy.

poniedziałek, 28 grudnia 2015

Generowanie diagramów architektonicznych w C4

Jestem wielkim fanem podejścia C4 w dokumentowaniu architektury - co widać na video w poprzednim poście:)

C4 sprawdza się nie tylko dla nowych projektów oraz do nadawania struktury myślom podczas szkoleń... przydaje się również jako "mapa" podczas misji ratunkowych w projektach ze spuścizną:)

Polecam świetną prezentację twórcy C4 na temat narzędzi do automatycznego generowania diagramów. Moim zdaniem generowane nie mają takiej wartości w opowiadaniu historii jak ułożone ręcznie, ale lepsze taki niż żadne aby przedzierać się przez spuściznę:)

Prezentacje jest wartościowa z uwagi na przemyślane komentarze autora z meta-poziomu: kiedy, dlaczego i po co warto stosować dany rodzaj informacji wizualnej oraz rysowanie czego nie ma żadnej wartości:)

https://www.youtube.com/watch?v=oDpdaXt0HQI


//=================
W dużych projektach dodaję M (jak Moduł) tworząc Context Container Module Component Class
gdzie moduł grupuje komponenty.
Moduł można sobie wyobrazić jako jednostkę logiczną (Bounded Context z DDD) czy jako produkt (np. moduł magazynowy czy sprzedaży w ERP) a komponent jako np jednostkę deploymentu (np. klienty, AI itd).
Traktowanie komponentu dosłownie jako @Component w Springu (jak pokazuje przykładowo Brown) wydaje mi się skrajnie niepraktyczne poza malutkimi systemami, ale każdy może sobie popróbować sam co ma dla niego wartość...

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ę.