https://www.youtube.com/watch?v=ajFq31OV9Bk
John Ouserhout : Creating Great Programmers with a Software Design Studio
What are the Secrets?
o A few (somewhat vague) overall concepts
- “Working" isn’t good enough: must minimize complexity
- Complexity comes from dependencies and obscurity
- Classes should be thick
- Generic is simpler than special-purpose
- Comments should describe things that are not obvious from the code
- Define errors out of existence
- The Martyr Principle
0 Only constructive in the context of code reviews
0 Course is more about red flags than recipes
He recommends the Parnas paper (CMU) on decomposition.
The point? Don't decompose the problem based on a flow-chart - you'll end up up with something that's not maintainable. Rather, start with a list of difficult design decisions which are likely to change. Then, design your modules to hide these decisions from each other.
No comments:
Post a Comment