Hacker News new | ask | show | jobs
by spion 4425 days ago
They don't chafe because they convey truths about a intangible reality they may not even be able to perceive. They chafe because nothing is actually being conveyed. Its a bunch of words removed from any actual meaning - from the concrete problems that caused the person to arrive to the truth being "conveyed". They're like the conclusion part of an essay with all the rest left out. They tell nothing to people that don't already know, and nothing new to people that do.

Its no wonder people either tend to discard them or to apply them incorrectly.

2 comments

I remember first hearing about Uncle Bob's principles and the GoF patterns in a lunch meeting a company in town (Rogue Wave Software) held for anyone interested. When I heard those guys talking about object oriented design and system architecture in general I could just listen in awe. This was before the AbstractFactoryFactory antipattern (Java was just starting) and I thought if I could just gain the level of understanding the RW guys had I'd be golden.

15 years later I've written enough software to understand the principles but no amount of study got me there, just lots of practice and fixing my own mistakes.

Yeah, the actual context is rarely ever delivered. And that matters a lot. Sometimes I wonder how well it would be received, though. Not to mention many books on software engineering tend to be written in a more abstract style than most blog posts. I'm not sure of the precedent for this is there; it would certainly help.

The GoF book does a decent job balancing context with theory, IMO.

I liked the GOF book. But what I'd really love to read about are the descriptions and (architectural) histories of complete, real software systems, especially about the design decisions and the reasons behind those decisions.

I think such information will be received with great interest - it would be like receiving a shot of condensed experience in readable form. Not exactly the same with actual experience of course, but way better than just abstract principles that leave me unconvinced.

Have you seen the Architecture of Open Source Applications[1]? I think it fits very well with what you just described. It explains not only the what, but also the why, with real examples of successful applications.

[1] http://aosabook.org/en/index.html

I remember seeing it and promptly forgetting about it. Thats precisely what I needed. Thank you.