Entuzjastów inżynierii oprogramowania (niekoniecznie związanych z Javą), zapraszam na 3 prezentacje, które odbędą się w ramach lokalnych JUGów (wstęp wolny również dla uczestników spoza JUG)
Wrocław 4 grudnia:
Tematy: Techniki strukturyzacji architektury oraz rozwinięcie do Architektury Ports & Adapters.
Szczegóły pojawią się na stronie grupy.
Szczecin 10 grudnia:
Tematy: Techniki strukturyzacji architektury oraz rozwinięcie do Architektury Ports & Adapters.
Szczegóły pojawią się na stronie grupy.
Kraków 13 grudnia:
Temat i miejsce ustalamy na grupie dyskusyjnej Polish JUG. Więcej info pojawi się gdy ustalimy szczegóły.
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, 2 grudnia 2012
niedziela, 11 listopada 2012
DDD krok po proku - dostęp do artykułów i plany kolejnej serii
Ostatnie pół roku działalności bloga można podsumować krótko: marazm:)
Przyczyną jest oczywiście nawał pracy. Miesięczny "zasób weny" inwestowałem w projekt tworzenia serii artykułów "DDD krok po kroku", która ma na celu przedstawienie technik z zakresu architektury systemu, architektury aplikacji oraz implementacji projektu opartego na podejściu DDD.
Artykuły są publikowane co miesiąc w programistamag.pl, natomiast dzisiaj - dzięki uprzejmości redakcji - możemy je udostępnić w formie niekomercyjnej - do pobrania tutaj.
W serii zaplanowane są jeszcze 2 artykuły:
Oba artykuły zostaną również udostępnione na blogu i będą ekstraktem całej naszej aktualnej firmowej wiedzy, którą stosujemy w projektach i pracy coachingowej z zespołami.
//=====================================
W planach mam kolejną serię artykułów, tym razem przeznaczoną dla początkujących programujących projektantów i programujących architektów. Seria będzie miała na celu wprowadzenie początkujących w świat podstawowych pojęć jak również zaawansowanych koncepcji oraz konkretnych rozwiązań typowych problemów.
Tematy z założenia nie będą ze sobą powiązane, jednak chciałbym wprowadzać bazowe pojęcia w początkowych artykułach aby na ich bazie budować bardziej złożone struktury.
Przykładowe tematy:
Przyczyną jest oczywiście nawał pracy. Miesięczny "zasób weny" inwestowałem w projekt tworzenia serii artykułów "DDD krok po kroku", która ma na celu przedstawienie technik z zakresu architektury systemu, architektury aplikacji oraz implementacji projektu opartego na podejściu DDD.
Artykuły są publikowane co miesiąc w programistamag.pl, natomiast dzisiaj - dzięki uprzejmości redakcji - możemy je udostępnić w formie niekomercyjnej - do pobrania tutaj.
W serii zaplanowane są jeszcze 2 artykuły:
- Kompendium testowania automatycznego - problemy, strategie, taktyki i techniki
- Kompleksowy proces modelowania DDD "Modeling Whirlpool" (z elementami BDD i Specification by Example)
Oba artykuły zostaną również udostępnione na blogu i będą ekstraktem całej naszej aktualnej firmowej wiedzy, którą stosujemy w projektach i pracy coachingowej z zespołami.
//=====================================
W planach mam kolejną serię artykułów, tym razem przeznaczoną dla początkujących programujących projektantów i programujących architektów. Seria będzie miała na celu wprowadzenie początkujących w świat podstawowych pojęć jak również zaawansowanych koncepcji oraz konkretnych rozwiązań typowych problemów.
Tematy z założenia nie będą ze sobą powiązane, jednak chciałbym wprowadzać bazowe pojęcia w początkowych artykułach aby na ich bazie budować bardziej złożone struktury.
Przykładowe tematy:
- Trzy smaki odwracania (i utraty) kontroli
- Programowanie funkcyjne w Javie - kiedy i po co?
- Fabryka dekorowanych strategii - czyli o trójpodziale logiki
- Deus ex Machina Stanów - dlaczego potrzebujesz jej w modelu biznesowym i jak zrobić ją źle
- Lazy Loading w pułapce czasu - błędy logiczne, które prawdopodobnie masz i o których prawdopodobnie nie wiesz
- Emulacja Traits w Javie - Role Object Pattern
- Mock czy Stub? - Command-query Separation prawdę Ci powie
czwartek, 1 listopada 2012
A teraz coś z zupełnie innej beczki: Mózg
Długi jesienny weekend może być okazją do refleksji, tak więc chciałem zaproponować temat. Temat poniekąd branżowy, jednak nie związany z systemami klasy Enterprise tudzież robieniem "internetów", nie związany z metodykami ani dywagacjami nad tym, który język "wąsaty" (wywodzący się z C++) jest słabszy ani z tym który framework przeszkadza bardziej lub czy testy lepiej pisać przed czy po:)
Temat pozwalający oderwać się od klas problemów z jakimi zmagamy się na co dzień (np. praca nad tym aby czyjś biznes działał lepiej) i nabrać do nich nieco dystansu...
Na podstawie rozmów ze znajomymi postawię tezę, że niemal każdy kto zetkną się na studiach z tematyką Sztucznych Sieci Neuronowych był nią zauroczony. Wyjątkiem mogą być nieszczęśnicy, którzy trafili na inwalidę pedagogicznego, który skutecznie tematykę obrzydził - ale pomińmy smutne wyjątki.
Jeżeli zaliczasz się do grona zauroczonych, to polecam prezentację Jeffa Hawkinsa Computing Like the Brain. Jej tytuł jest przewrotny, bo już na wstępie dowiecie się, że wg najnowszej wiedzy mózg nie jest "maszyną wykonującą obliczenia" a "jedynie" pamięcią. I to bardzo sprytną pamięcią o ciekawej charakterystyce. W dalszej części dowiecie się, że generalnie "szkolne" SSN jedynie w nazwie używają metafory sieci neuronowej, natomiast z mózgiem nie mają nic wspólnego.
Po wchłonięciu wiedzy z prezentacji zachęcam do refleksji nad: paradygmatami programowania (czy wszystko jest na pewno obiektem/funkcją?) nad paradygmatami modeli danych (sql/nosql),... Ciekawe jak nasze mózgi przyswoiły sobie paradygmaty, które są zupełnie inne niż ich wewnętrzna implementacja:P
//======================================
Sam Jeff Hawkins sam w sobie jest postacią inspirującą.
Z noty biograficznej zawartej w jego książce On Intelligence dowiedziałem się, że jako student został owładnięty rządzą zrozumienia jak działa mózg.
Jego pomysły zostały wyśmiane w kilku korporacjach, co zatem zrobił? Przez kilkanaście lat zbudował kilka biznesów niezwiązanych z mózgiem, które przynoszą mu niezłe dochody. Jeff jest na przykład człowiekiem, który opatentował algorytm rozpoznawania pisma odręcznego - prawdopodobnie używasz go na co dzień.
Po kilkunastu latach powrócił do swej pasji wyposażony w wiedzę i kapitał, który sam sobie zdobył na ten cel. Jedne z jego firm wypracowują dochód, który inwestuje w inne swe firmy prowadzące przełomowe badania nad mózgiem. Na początku z czystej ciekawości (niektórzy na prawdę tak mają), natomiast aktualnie jego rozwiązania wygrywają wyścigi tradingowe z innymi automatami. Epic Win!
Temat pozwalający oderwać się od klas problemów z jakimi zmagamy się na co dzień (np. praca nad tym aby czyjś biznes działał lepiej) i nabrać do nich nieco dystansu...
Na podstawie rozmów ze znajomymi postawię tezę, że niemal każdy kto zetkną się na studiach z tematyką Sztucznych Sieci Neuronowych był nią zauroczony. Wyjątkiem mogą być nieszczęśnicy, którzy trafili na inwalidę pedagogicznego, który skutecznie tematykę obrzydził - ale pomińmy smutne wyjątki.
Jeżeli zaliczasz się do grona zauroczonych, to polecam prezentację Jeffa Hawkinsa Computing Like the Brain. Jej tytuł jest przewrotny, bo już na wstępie dowiecie się, że wg najnowszej wiedzy mózg nie jest "maszyną wykonującą obliczenia" a "jedynie" pamięcią. I to bardzo sprytną pamięcią o ciekawej charakterystyce. W dalszej części dowiecie się, że generalnie "szkolne" SSN jedynie w nazwie używają metafory sieci neuronowej, natomiast z mózgiem nie mają nic wspólnego.
Po wchłonięciu wiedzy z prezentacji zachęcam do refleksji nad: paradygmatami programowania (czy wszystko jest na pewno obiektem/funkcją?) nad paradygmatami modeli danych (sql/nosql),... Ciekawe jak nasze mózgi przyswoiły sobie paradygmaty, które są zupełnie inne niż ich wewnętrzna implementacja:P
//======================================
Sam Jeff Hawkins sam w sobie jest postacią inspirującą.
Z noty biograficznej zawartej w jego książce On Intelligence dowiedziałem się, że jako student został owładnięty rządzą zrozumienia jak działa mózg.
Jego pomysły zostały wyśmiane w kilku korporacjach, co zatem zrobił? Przez kilkanaście lat zbudował kilka biznesów niezwiązanych z mózgiem, które przynoszą mu niezłe dochody. Jeff jest na przykład człowiekiem, który opatentował algorytm rozpoznawania pisma odręcznego - prawdopodobnie używasz go na co dzień.
Po kilkunastu latach powrócił do swej pasji wyposażony w wiedzę i kapitał, który sam sobie zdobył na ten cel. Jedne z jego firm wypracowują dochód, który inwestuje w inne swe firmy prowadzące przełomowe badania nad mózgiem. Na początku z czystej ciekawości (niektórzy na prawdę tak mają), natomiast aktualnie jego rozwiązania wygrywają wyścigi tradingowe z innymi automatami. Epic Win!
niedziela, 28 października 2012
Materiały o BDD i Spec by Example z Warsjawa i JDD
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
- 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
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)