Sunday, February 11, 2007

FAGBOK: "Head First Design Patterns" av Eric Freeman og Elisabeth Freeman

Patterns er standardiserte, objektorienterte løsninger på problemer som man ofte møter som programmerer. Løsninger som ligger på et designnivå og som ikke kan reduseres til et sett med blibioteker og API-er

Standardverket på patterns er "Design Patterns: Elements of Reusable Object-Oriented Software" av The Gang of Four: Gamma, Helm, Johnson og Vlissides. De beskriver et sett med patterns - GOF-patterns. Problemet med denne boken er at den er ganske tung og akademisk. Det kan være vanskelig å forstå alle patterne, og det kan være vanskelig å se situasjoner hvor de er nyttige.

Så da er det interessant å lese en bok som har et helt annet utgangspunkt. "Head First"-serien har som utgangspunkt at de skal hjelpe oss å lære. Det gjør de med å bruke bilder, humor, eksempler og dialoger. Og små enetaler fra "Friendly Pattern Guru". Og NB: de holder et høyt faglig nivå - dette er ikke "Design Patterns for Dummies"!

Boken går gjennom GOF-patterne og forklarer dem slik at du forstår dem når du er ferdig. Å lese den er nesten som å sitte med en dyktig kollega og diskutere seg frem til en forståelse.

Første pattern i boken er Strategy. Eksempelet de bruker en en andeapplikasjon hvor ender implementerer to interfacer: Quackable og Flyable. De begynner med en enkel løsning. Så plukker de den fra hverandre og forbedrer den trinn for trinn, helt til den tilfredsstiller Strategy-patternet. For hver forbedring så argumenterer de for den og sammenligner den med forrige versjon. Og de snakker detaljert om de objektorienterte designmålene som de ønsker å nå.

Dette er en utrolig bra bok! Jeg kan anbefale den til alle som ønsker å bli en bedre programmerer. Den har til og med en pen blondine på forsiden.
Jeg har nå lest om følgende patterns: Strategy, Observer, Decorator, Factory (nye mere omfattende enn jeg trodde!), Singleton, Command, Adaptor, Facade og Template Method. Jeg har mange flere å lære, men jeg ville ikke vente lenger med å blogge om denne boken. Løp og kjøp!

Kan kjøpes på play.com.

Amazon sier:
You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design paddle pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.


Terningkast 6

No comments: