Live data from Hacker News

Ask HN: What books had the greatest effect on how you structure your code?

news.ycombinator.com

111–120 of 162 posts

Re: Ask HN: What books had the greatest effect on how you structure your code?

#111
* Douglas Hofstadter - Gödel, Escher, Bach: an Eternal Golden Braid

* Fred Brooks - Design Of Design

* Fred Brooks - The Mythical Man month

* Eric J. Evans - Domain Driven Design

* Design Patterns: Elements of Reusable Object-Oriented Software

* Kent Beck - Extreme Programming Explained

* Kent Beck - Planning Extreme Programming

* Michael C. Feathers - Working Effectively with Legacy Code

* Daniel Kahneman - Thinking, Fast and Slow

[EDIT] Correct the author for legacy code

Re: Ask HN: What books had the greatest effect on how you structure your code?

#112

* Douglas Hofstadter - Gödel, Escher, Bach: an Eternal Golden Braid * Fred Brooks - Design Of Design * Fred Brooks - The Mythical Man month * Eric J. Evans - Domain Driven Design * Design Patterns: Elements of Reusable Object-Oriented Software * Kent Beck - Extreme Programming Explained * Kent Beck - Planning Extreme Programming * Michael C. Feathers - Working Effectively with Legacy Code * Daniel Kahneman - Thinking…

> * Bob Martin - Working Effectively with Legacy Code

Author is Michael C. Feathers

Re: Ask HN: What books had the greatest effect on how you structure your code?

#113

* Douglas Hofstadter - Gödel, Escher, Bach: an Eternal Golden Braid * Fred Brooks - Design Of Design * Fred Brooks - The Mythical Man month * Eric J. Evans - Domain Driven Design * Design Patterns: Elements of Reusable Object-Oriented Software * Kent Beck - Extreme Programming Explained * Kent Beck - Planning Extreme Programming * Michael C. Feathers - Working Effectively with Legacy Code * Daniel Kahneman - Thinking…

correction Working Effectively with Legacy Code is by Michael Feathers

Re: Ask HN: What books had the greatest effect on how you structure your code?

#114

* Douglas Hofstadter - Gödel, Escher, Bach: an Eternal Golden Braid * Fred Brooks - Design Of Design * Fred Brooks - The Mythical Man month * Eric J. Evans - Domain Driven Design * Design Patterns: Elements of Reusable Object-Oriented Software * Kent Beck - Extreme Programming Explained * Kent Beck - Planning Extreme Programming * Michael C. Feathers - Working Effectively with Legacy Code * Daniel Kahneman - Thinking…

> * Bob Martin - Working Effectively with Legacy Code Author is Michael C. Feathers

Nice catch, thanks :)

Re: Ask HN: What books had the greatest effect on how you structure your code?

#115

* Douglas Hofstadter - Gödel, Escher, Bach: an Eternal Golden Braid * Fred Brooks - Design Of Design * Fred Brooks - The Mythical Man month * Eric J. Evans - Domain Driven Design * Design Patterns: Elements of Reusable Object-Oriented Software * Kent Beck - Extreme Programming Explained * Kent Beck - Planning Extreme Programming * Michael C. Feathers - Working Effectively with Legacy Code * Daniel Kahneman - Thinking…

I've just recently bought "Gödel, Escher, Bach" -- looking shortly to start it. Curious, how did it influenced you in connection to programming?

Re: Ask HN: What books had the greatest effect on how you structure your code?

#116
Writing Basic Adventure Programs for the TRS-80. [1]

It contains this gem [2], which is pretty much how every program works. I occasionally riff off this diagram for work as an inside joke with myself.

1: http://www.trs-80.org/writing-basic-adventure-programs-for-t...

2: https://imgur.com/gallery/Vz63D

Re: Ask HN: What books had the greatest effect on how you structure your code?

#117

On LISP, by Paul Graham. LISP was the second language I learned in college, but only after 6 years programming Java and C# that I came back and really learned LISP. It was when I realized that I was doing everything wrong. For example design patterns exists because OO has serious problems that we don't find in a functional programming language and you only see this when you understand both paradigms.

OO doesn't have serious problems. Crap implementation of OO bolted onto Algol derivatives has problems.

Yeah, OO as commonly used is not the OO as originally envisioned and implemented: http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay...

Re: Ask HN: What books had the greatest effect on how you structure your code?

#118
post #115

* Douglas Hofstadter - Gödel, Escher, Bach: an Eternal Golden Braid * Fred Brooks - Design Of Design * Fred Brooks - The Mythical Man month * Eric J. Evans - Domain Driven Design * Design Patterns: Elements of Reusable Object-Oriented Software * Kent Beck - Extreme Programming Explained * Kent Beck - Planning Extreme Programming * Michael C. Feathers - Working Effectively with Legacy Code * Daniel Kahneman - Thinking…

I've just recently bought "Gödel, Escher, Bach" -- looking shortly to start it. Curious, how did it influenced you in connection to programming?

Just like the other non programming book on the list(Thinking Fast and Slow) GEB is a lot about perception to me.

Understanding that nothing is purely logical nor is it purely expressionistic; by pigeonholing your perception of any design whether it be Code, Math or Art to either Logic xor Expression you are blinding yourself

The other angle for GEB is design

I read GEB along with Design of Design years ago following my mentor at the times suggestion, I would highly recommend doing this. Think of it as the Gödel, Escher, Bach, Brooks (Although Brook's writing style can be laborious at times) Recognizing patterns in all design work helped my understand my own design process better.

Re: Ask HN: What books had the greatest effect on how you structure your code?

#119

Earlier quoted context omitted.

Design patterns exist because common solutions to problems exist, not because OO has serious problems. I understand both paradigms and Lisp is hardly free of design patterns. Every time you pass a lambda to a higher order function you're using a strategy pattern. If you only see design patterns as problems with OO, you're missing the point of design patterns. All languages have design patterns. Common design pattern…

Are Design Patterns really so out of fashion with the youth of today that nobody here mentions Design Patterns as their answer? Because it is mine, for better or worse. It took me from understanding OO to understanding how to build large systems with OO, writing maintainable code and using proper encapsulation. A much deeper work than Code Complete (though the latter is worth reading too). I have used functional lang…

I think there are two reasons Design Patterns have disappeared:

1. Being able to use functional programming concepts in OO languages made a lot of design patterns irrelevant (Python, Ruby, C# 3.5, C++11, Java 8). I feel Crockford's The Good Parts really introduced these concepts to the OO crowd with javascript acting as the bridging language for the concepts.

2. Many design patterns were terrible ideas in practice. Factory patterns were a disaster, as were many of the others. Good in theory, utterly useless in practice. There was a blog here recently about TDD that argued TDD is useless because you need to be a great architect to do TDD correctly, and most programmers aren't great architects. Design patterns had the same problem, it was very easy to get them wrong and create an utter mess. Ultimately it's more maintainable to have a complicated monolith method than some crazy pattern no-one understands or dare touch.

Post reply on HN