[amazon 0201633612 thumbnail] Tulipa luettua näin talvilomalla vihdoinkin läpi Design Patterns: Elements of Reusable Object-Oriented Software (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides).

Tämä kirja on varmasti tuttu kaikille ohjelmistosuunnittelijoille, jotka ovat tehneet töitä muunkin kuin kevyiden webbisaittien parissa. Gamma ja kumppanit ovat kartoittaneet OO-patterneja 90-luvun alusta lähtien. Tämäkin kirja on julkaistu jo 1995.

Tieto ei ole lainkaan vanhentunut. Koodiesimerkit ovat C++:aa, mutta sinänsä ne pätevät yhtälailla vaikkapa PHP:hen tai Pythoniin. Aika monet tässä kirjassa dokumentoidut patternit ovat tuttuja esimerkiksi Javasta, jonka kautta erilaiset factory-metodit, singleton-objektit ja iteraattorit ovat tulleet monille meistä tutuiksi. Nykyään monet näistä pattereneista ovat osana kaikkia OO-frameworkkeja tavalla tai toisella.

Kuten kirjassa itsesäänkin todetaan, se ei ole kovin hyvä opus OO-ohjelmoinnin opiskeluun. Sen tarkoitus on lähinnä antaa nimet olemassaoleville suunnittelukäytännöille, joita kutsutaan patterneiksi. Itse näkisinkin tämän kirjan yleissivistävänä teoksena, joka kannattaa lukea ainakin kertaalleen, jos työskentelee tällä alalla.