Hej,
Co jakiś czas (błogosławione tramwaje) mam okazję dokształcić się w sposób trochę bardziej tradycyjny i sięgnąć po książkę. Generalnie swoje przemyślenia dotyczące pochłanianych publikacji zawieram w nieco innym miejscu. Ale te dotyczące tematów związanych z technologiami firmy Microsoft postaram się prezentować na stronach zine.net.
Tytuł: "Practical
Software Factories in .NET"
Autor: Gunther Lenz,
Christoph Wienands w współpracy z Jackiem Greenfieldem i Wojtkiem Kozaczynskim
Wydawnictwo: Apress
Inc., czerwiec 2006
ISBN: 1-59059-665-4
Stron: 240
Recenzja:
Gdy w 2004 roku przebrnąłem
przez potężną 500 stronnicową książkę “Software Factories:
Assembling Applications with Patterns, Models, Frameworks, and Tools”
(Jack Greenfield, Keith Short, Steve Cook, Stuart Kent) myślałem,
że w temacie fabryk oprogramowania (ang.software factories)
nieprędko pojawią się kolejne pozycje. Wspomniana publikacja bardzo
szczegółowo prezentowała koncepcję optymalizacji procesu tworzenia
systemów informatycznych, z wykorzystaniem metod takich jak: wyspecjalizowane
języki domenowe (DSL), programowanie zorientowane aspektowo (AOP),
architektury zorientowane na usługi (SOA), rozwiązania tworzone w
oparciu o komponenty (CBD), automatyczne stosowanie wzorców projektowych,
generowanie kodu, budowanie linii produkcji oprogramowania, integracji
usług webowych itd. Moim zdaniem, Autorzy, podchodząc do tematu czysto
teoretycznie i akademicko, wyczerpali go na długie lata, stawiając
bardzo wysoko poprzeczkę twórcom środowisk oraz narzędzi, które
miałbym wspierać procesy zachodzące w fabryce oprogramowania.
Wprawdzie firma Microsoft konsekwentnie
publikuje kolejne pakiety, które mogą służyć jako podwaliny do
budowania własnych zakładów przemysłu programistycznego, to o ile
w temacie np. SOA pojawiło się w ciągu ostatnich kilku lat bardzo
wiele mniej lub bardziej udanych publikacji, to tematyka poruszona w
książce „Practical Software Factories in .NET"
wciąż nie należy do zbyt popularnych. Tym bardziej wiedziony ciekawością
oraz magicznym słowem „praktyczne” sięgnąłem po tę pozycję.
Architekci z ośrodka badawczego
Siemens Corporate Research, Gunther Lenz i Christoph Wienands, przy
współpracy z architektami z firmy Microsoft odpowiedzialnymi za tworzenie
kolejnych wzorców fabryk oprogramowania, stworzyli książkę, która
swobodnie może zastąpić poprzednią, teoretyczną, rozprawę. Niestety
tematyka poruszona w ”Practical Software Factories in .NET”
choć zorientowana na prezentacje praktycznych aspektów tworzenia fabryk
oprogramowania, wciąż zawiera sporo elementów obrazujących koncepcję,
nie dostarczając zbyt wielu konkretnych wytycznych czy też gotowych
do zastosowania wzorców postępowania.
Z ośmiu rozdziałów wchodzących w skład publikacji, pierwsze dwa
swobodnie pozwolą osobom nawet niezaznajomionym z teorią fabryk oprogramowania,
na śledzenie rozwój wydarzeń – losów projektu-prototypu fabryki
oprogramowania ISpySoft.
Wykorzystując narzędzia dostarczane
głównie przez firmę Microsoft (Visual Studio .NET Team System, DSL
Tools), rozwiązania open-source, jak i firm trzecich, Autorzy opracowali
prototyp fabryki oprogramowania budowanego na potrzeby rynku detektywistycznego.
Projekt ten (dostępny na stronach serwisu CodePlex) posłużył za
kanwę pozwalającą na omówienie tak szerokiego spektrum zagadnień
jak: specyfikowanie fabryki (tworzenie modelów domeny, funkcji systemu,
problemów i ich rozwiązań, zakresu domeny oraz dyskusji wymagań),
budowanie szablonu fabryki (ang.
software factory schema), jej architektury, czy też tworzenie linii
produkcji oprogramowania. Omówiono także: zagadnienie definiowania
głównych elementów danej fabryki i ich budowania na potrzeby ostatecznego
procesu wytwarzania rozwiązania dostosowanego już do potrzeb konkretnego
klienta - z wykorzystaniem potencjału uprzednio stworzonej fabryki.
Wprawdzie w powyższym akapicie
zaledwie zarysowałem listę poruszonych w niniejszej publikacji tematów,
jak już widzimy każdy z nich jest dość pojemy i de facto doczekał
się osobnej publikacji. Trudno, więc oczekiwać aby książka „Practical
Software Factories in .NET
wyczerpująco odpowiedziała na pytanie jak powinien wyglądać nowoczesny
proces wytwarzania oprogramowania, czy też przedstawiła cały proces
oraz wszystkie narzędzia przy pomocy których zbudujemy fabrykę systemów
informatycznych. Nawet przyjmując założenie, że poruszamy się tylko
w zakresie wybranej technologii, czyli środowiska .NET, opis tego typu
praktycznej realizacji tej metodyki jest dziś po prostu niemożliwy.
Z jednej strony jest tak dlatego, iż nie istnieją jeszcze narzędzia,
które mogłyby w pełni spełniać wymagania narzucane przez twórców
koncepcji fabryk oprogramowania, z drugiej zaś strony dlatego, że
proces tworzenia fabryki oprogramowania wymaga dużego wysiłku i nakładu
pracy znacznie większej grupy osób niż stosunkowo małego zespołu
autorów niniejszej publikacji.
Niemniej jednak publikacja
ta jest niewątpliwie obowiązkową pozycją dla osób zainteresowanych
nowymi trendami w dziedzinie inżynierii oprogramowania. Wprawdzie praktycznych
porad, w niej zbyt wiele nie znajdziemy, to na pewno dużo łatwiej
(i przyjemniej) przyswajać wiedzę o fabrykach programowania na przykładzie,
niż śledząc teoretyczne prace autorów poprzedniej publikacji w tej
dziedzinie.
Ocena: 4 (warto przeczytać)
p.s. jeśli ktoś jest zainteresowany lekturą, nie mam nic przeciwko wymianie na inną ciekawą pozycję :-)
Recenzja ukaże się także w numerze 2007/09 czasopisma Software Developer Journal (www.sdjournal.org)