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.

6 komentarzy:

Unknown pisze...

Sławek najlepszy post od dawna!

Sławek Sobótka pisze...

Od bardzo dawna:D

BartekL pisze...

Jeśli chodzi o Applying UML and Patterns to są duże rozbieżności między II, a III wydaniem? Dostałem od znajomego "dwójkę" i zastanawiam się, czy treści są w miarę aktualne oraz czy jest potrzeba wydawania tych 60 USD. ;) Pozdrawiam!

Sławek Sobótka pisze...

II nie czytałem, III ma już parę ładnych lat...

Anonimowy pisze...

Ciekawostka:
http://www.empik.com/domain-driven-design-zapanuj-nad-zlozonym-systemem-informatycznym-evans-eric,p1109075766,ksiazka-p

lethern pisze...

Prezentacje do mnie bardzo trafiają, dzięki za dzielenie się interesującą wiedzą
Pozwolę sobie zostawić 3 krótkie notki:
"Ukrywaj to czego nie wiesz, pokazuj to co wiesz"
API operuje na osobnej dziedzinie, np. posługujać się userID, docID. Implementacja (dziedzina) używa swojej dziedziny, np. wprowadzając różnice typu user-author, user-verifier, doc-draft, doc-signature)
Architekt w momencie kiedy musi podjąć wybór, przy którym ma za małą wiedzę żeby wybrać popranie (nie wie czegoś), powinien projektować tak, żeby zły wybór nie był kosztowny, tzn. żeby można było wprowadzić zmiany co do tej decyzji w "tani" sposób. (Przykład: ukrywaj niskopoziomowe typy we własnej strukturze, np. Cena zamiast float)