design ideas he knows. The temptation is to put these design ideas in the system now because you just know you’ll need them eventually. http://pragprog.com/magazines/2009-09/responsive-design
design ideas he knows. The temptation is to put these design ideas in the system now because you just know you’ll need them eventually. http://pragprog.com/magazines/2009-09/responsive-design
of coding, but over the life of the project most design will be done in response to the changing needs of the system and the changing and growing understanding of the developers.”
exposes design mistakes before they're made. It translates coupling distributed throughout the module into mock setup centralized in the test, and it does that before the coupling is even written down.” Gary Bernhardt
substitution property: If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T”
substitution property: If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T”
testability, readability and elegance, are easy to follow but hard to communicate across observers. Then again, object-oriented design principles tend to be easy to communicate, but hard to follow.
them into a vicious loop of self-blame: “this should work, I’ve been told that SOLID/GRASP is a great idea, so it must be my fault that I don’t see how and why this still fails.”
longer than is comfortable, hoping that tolerating interim duplication will produce code that gives you better information about the problem as a whole.
that these two bits of identical code really do represent identical concepts. If you're wrong about this it can be very difficult to extend code later. - Sandi Metz