What do you think?
Rate this book
190 pages, Paperback
First published January 1, 2018
David Parnas' classic paper "On the Criteria to be used in Decomposing Systems into Modules" appeared in 1971, but the state of the art in software design has not progressed much beyond that paper in the ensuing 45 years.
Long methods aren't always bad. For example, suppose a method contains five 20-line blocks of code that are executed in order. (...) there's not much benefit in moving each of the blocks in a separate method.
Goto statements are generally considered a bad idea, and they can result in indecipherable code if used indiscriminately, but they are useful in situations like this where they are used to escape from nested code.
In the definition of abstraction, the word "unimportant" is crucial. The more unimportant details that are omitted from an abstraction, the better. However, a detail can only be omitted from an abstraction if it is unimportant. An abstraction can go wrong in two ways. First, it can include details that are not really important.... The second error is when an abstraction omits details that are really important."