Obiekty to nie są proste „złączone dane i logika”. To obdarzone odpowiedzialnością elementy większej całości.
Mało jest w branży inżynierii oprogramowania książek, które praktycznie się nie starzeją. Jedną z nich, moim zdaniem, jest książka Object Design Roles, Responsibilities and Collaboration, autorzy: Rebecca Wirf-Brock i Alan McKean. Wydali ją pierwszy raz w 2002 roku. Autorzy w bardzo przystępny sposób pokazują zarówno teoretyczne jak i praktyczne aspekty analizy obiektowej (OOA, Object-oriented Analysis ) i projektowania obiektowego (OOD, Object-oriented design, łącznie często stosowany skrót OOAD).
Mimo, że od pierwszego wydania minęło już 17 lat, książka – a raczej opisane w niej metody – nie straciły na aktualności i skuteczności. Cztery lata temu nawiązywałem już do niej w artykule Jak identyfikować klasy? (polecam także artykuł i metodę: Class Responsibility Collaborator). Ogromną zaletą tej książki jest to, że diagramy UML, ilustrujące omawiane w książce przykłady, są poprawne i na wysokim poziomie abstrakcji, co powoduje, że mimo iż w 2015 specyfikacja UML uległa znacznym zmianom, diagramy w książce praktycznie nie straciły nic na aktualności.
W pierwszej części autorzy opisują mechanizm jakim jest współdziałanie komponentów, zwracają uwagę na fakt, że oprogramowanie obiektowe to współpraca elementów (obiektów). Posługując się analogią, jaką są urządzenia mechaniczne i komponenty sprzętowe każdego komputera, bardzo przystępnie opisano paradygmat obiektowy.
Kolejny rozdział to opis tego czym jest rola i odpowiedzialność komponentu, i jak pojęcie to pomaga nam projektować architekturę oprogramowania.
W kolejnych rozdziałach, opisano i pokazano, na wielu przykładach, jak sobie radzić z podejmowaniem decyzji o architekturze i z jakich wzorców i zasad korzystać.
Jest to, ten wpis na blogu, nie tyle recenzja, co gorąca zachęta do włączenia tej książki do swojej biblioteki. Niestety polskie wydanie już tylko w antykwariatach, ale książka – oryginalne wydanie – jest nadal dostępna w sklepach internetowych.
Rebecca Wirfs-Brock, Alan McKean, Object Design Roles, Responsibilities, and Collaboration, Addison-Wesley 2003.
P.S. Dlaczego ta książką tyle lat czekała na moją recenzję? Bo od lat codziennie rano sobie mówiłem: jutro na pewno o niej napisze 🙂
Na koniec dość świeża prezentacja autorki: