Of all the pr inc iples of programm ing , Don’t Repeat Yourself (DRY) is
perhaps one of the most fundamental. The principle was formulated by Andy Hunt
and Dave Thomas in The Pragmatic Programmer, and underlies many other wellknown
software development best practices and design patterns. The developer
who learns to recognize duplication, and understands how to eliminate it through
appropriate practice and proper abstraction, can produce much cleaner code than
one who continuously infects the application with unnecessary repetition.