Martin Fowler är en i programeringskretar ganska känd person. Framför allt när det kommer till de mera agila grenarna systemutvecklingsprocessen. Boken jag har läst har dock ganska lite med XP, TDD eller parprogrammering att göra. Det är en bok där vi får ta del av Martins erfarenheter i form av olika patterns han har tagit till sig. Många hade jag hört talas om sedan tidigare och några är nya.
En bok av den här typen är inte helt lämpligt att försöka att sträckläsa utan man skummar igenom den för att kunna slå upp i vid senare tillfälle. För värdet som en bok av den här typen har är inte i första hand de idéer som samlats ihop utan att de som har läst boken får en gemensamt ordförråd. Precis som när man läst Design Patterns (GoF) och lärt sig vad en Facade eller en Abstract Factory är så får man i Martins bok fler ord för att beskriva mer eller mindre vanligt förekommande mönster man stöter på i livet som programmerare.
Boken är uppdelad i två större delar. Den första beskrivs de många val man har vid utvecklingen av en större applikation. Denna del är uppdelad i de olika delar applikationen består av. Web, sessioner, domänobjekt, databasaccess. De strategier som Martin ger är i denna del inte beskrivna på ett djuplodande sätt utan övergripande och hur de olika mönstrena hänger ihop.
Den andra delen är mer av referenstyp. Här får man läsa om varje pattern igenom för sig. Vilka fördelar och nackdelar de har och även vilka andra patterns som kan vara relevanta.
Jag tror att det här är en bok som man bör ha läst eller i var fall ha någon i närheten som läst. För även om det kommer nya framework så är det sällan de faktiskt har uppfunnit något riktigt nytt. Microsoft MVC är en Front Controller precis som Struts så inget nytt under himlen där. Lite mer hårdvara och erfarenhet har naturligvis drivit utvecklingen frammåt men det finns bara så många sätt att ta hand om ett http-anrop och göra något vettigt med det.
Boken har exempel i C# och Java vilket i princip borde göra att alla kan läsa den med god behållning även om man skulle ha drag av religon.
Nu en kort ordlista som kanske kan motivera någon att ta upp boken och börja läsa ett kapitel eller två:
- Active Record
- Application Controller
- Accociation Table Mapping
- Class Table Inheritance
- Client Session State
- Coarse-Grained Lock
- Concrete Table Inheritance
- Data Mapper
- Data Transfer Object
- Database Session State
- Dependent Mapping
- Domain Model
- Embedded Value
- Foreign Key Mapping
- Front Controller
- Gateway
- Identify Field
- Identify Map
- Implicit Lock
- Inheritance Mapper
- Layer Supertype
- Lazy Load
- Mapper
- Metadata Mapping
- Model View Controller
- Money
- Optimistic Offline Lock
- Page Controller
- Pessimistic Offline Lock
- Plugin
- Query Object
- Record Set
- Registry
- Remote Facade
- Repository
- Row Data Gateway
- Separated Interface
- Serialized LOB
- Server Session State
- Service Layer
- Service Stub
- Single Table Inheritance
- Special Case
- Table Data Gateway
- Table Module
- Template View
- Transaction Script
- Transform View
- Two Step View
- Unit Of Work
- Value Object
Inga kommentarer:
Skicka en kommentar