Na prośbę uczestników podaję materiały, które były wykorzystane:
- podczas prezentacji Rafała Jamroza na JDD
- podczas warsztatów prowadzonych przeze mnie i Rafała na Warsjawa
Behavior Driven Development, czyli Agile 2.0
Inżynieria oprogramowania w ujęciu systemowym.
Zintegrowane podejście do metodyk,
technologii (głównie Java EE), architektury i rozwoju ścieżki kariery programisty.
niedziela, 28 października 2012
sobota, 27 października 2012
Materiały z konferencji Java Developers Day
Dla wszystkich, którzy prosili o "slajdy" z JDD:
Ewolucyjna Destylacja Architektury - Myślenie wizualne na przykładzie architektury Ports & Adapters
Ścisły przewodnik po aspektach miękkich dla ekspertów IT
Wszelkie uwagi (szczególnie krytyczne) mile widziane:)
Ewolucyjna Destylacja Architektury - Myślenie wizualne na przykładzie architektury Ports & Adapters
Ścisły przewodnik po aspektach miękkich dla ekspertów IT
Wszelkie uwagi (szczególnie krytyczne) mile widziane:)
niedziela, 14 października 2012
Kalendarz na październik
Informacja
dla entuzjastów inżynierii oprogramowania
o nadchodzących wydarzeniach (które współorganizujemy):
Niekomercyjne:
- Warsjawa - 27.10.2012 warsztaty z zakresu Specification by Example oraz Behavior Driven Development
Podczas warsztatów będziemy demonstrować 2 uzupełniające się podejścia do modelowania wymagań: Behavior Driven Developemnt oraz Specification by Example. Dodatkowo nawiążemy do wynikającego z nich modelowania domeny z wykorzystaniem Building Blocks DDD. Przedstawimy również własne podejście do strategicznego testowania: mapowania rodzajów testów na warstwy aplikacji.
Od strony warsztatowej będziemy pracować nad 3-poziomowymi wykonywalnymi specyfikacjami:
3. Wykonywalne specyfikacje (cele biznesowe)
2. Wykonywalny flow (np. User Story)
1. Automatyzacja interakcji z systemem (abstrakcja nad ciężkimi w utrzymaniu skryptami testowymi: Agenty oparte na Selenium i Spring Remoting)
Podczas warsztatów będziemy pracować na istniejącym systemie demonstracyjnym: http://bottega.com.pl/ddd-cqrs-sample-project dążąc do modelowania wymagań na 2 i 3 poziomie wraz z implementacją wykonywalnych scenariuszy i specyfikacji z wykorzystaniem JBehave.
Komercyjne:
-Szkolenie Domain Driven Design - 22-24.10.2012
strona wydarzenia w ramach JDD
(uczestnictwo w konferencji jest obligatoryjne:)
- Java Developers Day - 25.10.2012 Prezentacja “Ports & Adapters – adaptacyjna architektura na miarę potrzeb”
Architektura Ports & Adapters jest syntezą współczesnej wiedzy na
temat rozwiązań stosowanych w systemach enterprise.
W jej giętkim mikro-jądrze znajdziemy miejsce na DDD, TDD, CqRS, Event
Sourcing i pluginy.
Jej twarda skorupa Portów oferuje skalowanie oraz zapewnia SAO Ready.
Natomiast zewnętrzna aura Adapterów umożliwia integrację przy pomocy:
receptorów zdarzeń, Sagi Biznesowej, Pipes and Filters, REST, WS
wspierając strategię rynkową multiscreen.
Całość w zintegrowanej formie, gdzie "wszystko jest na miejscu i
wszystko ma swoje miejsce".
Podczas prezentacji będę chciał przekonać Was do podejścia, w których wyłaniamy formę architektury systemu oraz aplikacji z treści przykładowych scenariuszy i wymagań. Wykorzystamy w tym celu techniki myślenia wizualnego oraz Building Blocks wchodzące w skład architektury Ports&Adapters.
Niekomercyjne:
- Warsjawa - 27.10.2012 warsztaty z zakresu Specification by Example oraz Behavior Driven Development
Podczas warsztatów będziemy demonstrować 2 uzupełniające się podejścia do modelowania wymagań: Behavior Driven Developemnt oraz Specification by Example. Dodatkowo nawiążemy do wynikającego z nich modelowania domeny z wykorzystaniem Building Blocks DDD. Przedstawimy również własne podejście do strategicznego testowania: mapowania rodzajów testów na warstwy aplikacji.
Od strony warsztatowej będziemy pracować nad 3-poziomowymi wykonywalnymi specyfikacjami:
3. Wykonywalne specyfikacje (cele biznesowe)
2. Wykonywalny flow (np. User Story)
1. Automatyzacja interakcji z systemem (abstrakcja nad ciężkimi w utrzymaniu skryptami testowymi: Agenty oparte na Selenium i Spring Remoting)
Podczas warsztatów będziemy pracować na istniejącym systemie demonstracyjnym: http://bottega.com.pl/ddd-cqrs-sample-project dążąc do modelowania wymagań na 2 i 3 poziomie wraz z implementacją wykonywalnych scenariuszy i specyfikacji z wykorzystaniem JBehave.
Komercyjne:
-Szkolenie Domain Driven Design - 22-24.10.2012
strona wydarzenia w ramach JDD
(uczestnictwo w konferencji jest obligatoryjne:)
- Java Developers Day - 25.10.2012 Prezentacja “Ports & Adapters – adaptacyjna architektura na miarę potrzeb”
Architektura Ports & Adapters jest syntezą współczesnej wiedzy na
temat rozwiązań stosowanych w systemach enterprise.
W jej giętkim mikro-jądrze znajdziemy miejsce na DDD, TDD, CqRS, Event
Sourcing i pluginy.
Jej twarda skorupa Portów oferuje skalowanie oraz zapewnia SAO Ready.
Natomiast zewnętrzna aura Adapterów umożliwia integrację przy pomocy:
receptorów zdarzeń, Sagi Biznesowej, Pipes and Filters, REST, WS
wspierając strategię rynkową multiscreen.
Całość w zintegrowanej formie, gdzie "wszystko jest na miejscu i
wszystko ma swoje miejsce".
Podczas prezentacji będę chciał przekonać Was do podejścia, w których wyłaniamy formę architektury systemu oraz aplikacji z treści przykładowych scenariuszy i wymagań. Wykorzystamy w tym celu techniki myślenia wizualnego oraz Building Blocks wchodzące w skład architektury Ports&Adapters.
wtorek, 9 października 2012
ORM - "The Vietnam of Computer Science"
...cytat Teda Newarda rozbawił mnie szczerze - ale to śmiech przez łzy. Martin Fowler natomiast pyta: Ale co w zamian?
Jednak są to rozwiązania specyficznych klas problemów (podróże w czasie, wektory uczące dla Sztucznych Sieci Neuronowych) lub problemów skali Googl/Twitter/Facebbok - mimo, że nie pracujemy w tych firmach, to lubimy się na nie powoływać w swych elaboratach architektonicznych:)
W razie problemów z wydajnością warto spróbować różnych form separacji z podejścia: Command-query Responsibility Segregation.
//==========================
Więcej w archiwalnym poście, natomiast rozwinięcie w najbliższym numerze programistamag.pl
Możemy uciec się do rozwiązań typu Datoms (Encja, Atrybut, Wartość, Timestamp) lub bardziej "semantycznego" Event Sorcingu.
Jednak są to rozwiązania specyficznych klas problemów (podróże w czasie, wektory uczące dla Sztucznych Sieci Neuronowych) lub problemów skali Googl/Twitter/Facebbok - mimo, że nie pracujemy w tych firmach, to lubimy się na nie powoływać w swych elaboratach architektonicznych:)
Natomiast w typowych systemach biznesowych wystarczy przyjęcie prostych i racjonalnych zasad doboru odpowiedniego młotka do odpowiedniej klasy problemu:
- Obiekty persystentne to Agregaty, których granice są wyznaczane wg dobrych praktyk DDD: np. modelowanie niezmienników oraz modelowanie jednostki zmiany biznesowej
- Do persystencji Agregatów używamy ORM, ponieważ dobrze zakreślone granice agregatów (w tym unikanie zbędnych połączeń) rozwiązują większość problemów
- Do wydajnego odczytu danych przekrojowych nie używamy ORM - nie służą do tego typu zadań
W razie problemów z wydajnością warto spróbować różnych form separacji z podejścia: Command-query Responsibility Segregation.
//==========================
Więcej w archiwalnym poście, natomiast rozwinięcie w najbliższym numerze programistamag.pl
Subskrybuj:
Posty (Atom)