Most of the time, when we talk about doing code design, or software design, the first thing that pops up is drawing UML diagrams. UML diagrams are part of a design, but it is not the design. So, what is code design exactly?
Agile code design
What is code design?
Robert C. Martin said the following in his book, Agile Software Development: Principles, Patterns, and Practices (Martin, 2002):
The design of a software project is an abstract concept. It has to do with the overall shape and structure of the program as well as the detailed shape and structure of each module, class, and method. It can be represented by many different media, but its final embodiment is source code. In the end, the source code is the design.
Wait...