We use cookies to provide you with the best experience on our website. By clicking Accept Cookies, you agree to our Privacy Policy . To change this, manage your Cookie Preferences.
Patterns are a cornerstone of object-oriented design, while test-first programming and merciless refactoring are cornerstones of evolutionary design. To stop over- or under-engineering, balance these practices and evolve only what you need.