HACKER Q&A
📣 jamestimmins

What programming design pattern book has had the biggest impact on you?


I own multiple well known design pattern books because I went on a buying-spree a while back (Gang of 4, Patterns of Enterprise Application Architecture, Clean Architecture, Head First Design Patterns). But as I look for advice on which are still worth reading, and which is likely to be the most impactful if I only read one, I find a lot of lists that are short on opinions.

I'm curious which of these or others have had the biggest impact on folks here, and which popular ones are worth skipping.


  👤 Jugurtha Accepted Answer ✓
David Mamet's Masterclass on "Screenwriting". It is about screenwriting, but I transposed so much to programming and writing it's ridiculous.

The way to create characters, plot, or get ideas. The plot is one problem and characters solve it. One thing and one thing only. The job to be done [of a movie] is to entertain an audience, don't get gradiose or too tied to it.

As a programmer, I watched the videos and with every video, there was a clear application to programming and design.

Advice on writing, in general, and observing good products evolutions lead me to increase my effectiveness: not building the wrong thing, better scoping, solving the right problem. This leads to a lot of code not written, and reduces unnecessary complexity.

I have of course read some of the books you mention, but I find that simplifying things delays the need to resort to some patterns. You often find code that does practically nothing but filled with observers and borgs and factories and whatnot. It's useless and doesn't solve a problem. If it were a display of patterns skills, maybe, but that's why I did Judo and not Aikido. I like things that work in real life against actual problems, not imaginary or compliant adversaries.


👤 pankajdoharey
Short Answer : How to Design Programs (By: Sriram Krishnamurthi) http://htdp.org/2003-09-26/

Long Answer : Design Patterns are useful only in an OO Setting, its utility is gone if you look at Functional Languages. In FP you would have to consider more fundamental things than trying to cosmetically map a classical model to a domain, and then write bunch of code to retrofit that model.


👤 matt_s
Head First did it for me, visuals and the format of that book helped with such abstract and dry concepts.

I have found over recent years not having to dip into those concepts much, there are a lot of these patterns built into libraries and frameworks these days.


👤 thecupisblue
SICP is probably one of the only ones worth reading.

Others are just implementations of abstract ideas about how things belong and communicate.


👤 bendee983
For me, nothing will replace the original GoF book: "Design Patterns: Elements of Reusable Object-Oriented Software" It's still worth reading. But I also recommend "Object-Oriented Analysis and Design with Applications" by Grady Booch. It's not strictly design patterns, but it's a classic that explores a lot of the fundamental concepts you'll need for DP.

👤 ArtWomb
Not a book. But if you are .NET / Azure centric I have found the team at MS Paterns and Practices to be very accessible ;)

http://aka.ms/mspnp

Game Programming Patterns is another resource that is quite clear

https://gameprogrammingpatterns.com/


👤 mimixco
Refactoring by Martin Fowler

👤 Poefke
Patterns of Software: Tales from the Software Community, by Richard Gabriel

👤 db48x
SICP

👤 aryehof
Patterns of Enterprise Application Architecture

👤 braisdom
Spring of Java ORM is here,

ObjectiveSQL is an ORM framework in Java based on ActiveRecord pattern, which encourages rapid development and clean, codes with the least, and convention over configuration.

Features

1) With one annotation your Class has fully featured capabilities of SQL programming

2) Easy to relational(has_one, has_many, beglongs_to) querying and paged querying

3 Java expressions(arithmetic, comparison and logical) can be converted into SQL expression directly