Build Superior Systems with
Simple Design – The Code
Agile
in a Flash by Jeff Langr and Tim Ottinger (card #41)
> All tests must pass
> No code is duplicated
> Code is self-explanatory
> No superfluous parts exist
--
As far as a prescriptive set of
design principles go, these four rules(11) of simple design, listed in order of
importance, are the simplest thing that might possibly work.
> Code must work and be
demonstrated by passing tests. A great paper model of a design is useless if
the software doesn’t work. Use TDD so that you know the code is working at all
times.
> Removing duplication is the
next most important design activity, because it directly lowers the cost of
system maintenance and drives you toward an appropriate level of abstraction.
> Contrary to popular belief,
it’s almost always possible to create code that others can understand and
maintain—particularly if your TDD-created tests clearly document intended
behavior. Maintenance costs rise dramatically with unclear code.
> Finally, YAGNI (You Aren’t
Going To Need It) tells us to remove all superfluous features and
complexity—anything not needed at this precise moment.
11. Extreme Programming
Explained, First Edition
"A simple design always
takes less time to finish than a complex one."
- extremeprogramming.org
"A man should look for what
is, and not for what he thinks should be."
Albert Einstein
No comments:
Post a Comment