Smart-designed code is much easier to maintain, optimize, and extend. There are three high-level aspects to code design that are particularly important.
- System architecture
— the basic layout of the codebase. Rules that govern how various components, such as models, views, and controllers, interact with each other.
- Maintainability
— how code can be improved and extended
- Reusability
— how reusable are the application’s components and how easily can each implementation of a component be customized