Code Design - Designing for Stability and Extensibility

Code design, or software design, is often thought of as a disjoint step in the development process of an application. A set of UML diagrams is the most common way to document designs. However, they will quickly become obsolete once the code has been written. There are differences between the implementation and the design, and those differences are not synced back to the design documents. The effort of keeping design documents up-to-date is considerable because there are always changes in the requirements. It feels like a battle that we keep losing.

So, should we do code design? Is it really necessary? Because we have the data models now, why don't we just start writing the code and get features implemented? We can refactor our code later, anyway. This sounds more Agile.

There is an old saying in China, Grinding a chopper will not delay the work of cutting firewood. Doing code design is like grinding a chopper where cutting firewood is like writing code.

So, let's talk more about code design, especially how to do it the correct way in an Agile project. In this chapter, you will learn about the following topics:

  • Agile code design
  • Design principles and design patterns
  • TaskAgile code design
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.141.19.185