When you first read through a piece of existing code, what does your nose tell you? Does it smell more like fresh-baked cookies, or rotting garbage? What may surprise you is the impact that difference in smell has on your ability to work with that existing code, and how directly that can translate to higher costs to the business. In this course, we will discuss the fundamental qualities that make code easy to read, and easy to maintain. We will talk through various concepts that affect the cleanliness of code such as the size of functions/classes, side effects, levels of abstraction, and command/query separation. Then, we will directly apply those concepts as we tackle a live, interactive refactoring of some really smelly code.
As techies, we like to focus on the “deep” topics in software development like object-oriented design principles (S.O.L.I.D.), and fancy design patterns. It is easy to fall into the trap of believing that to become a better software developer, you must master some complex new pattern or theory and find a way to shoehorn it into your next project. While good software design is important, however, this course will challenge you to look back to the basics (some of which you likely never properly learned). These basics can have a huge impact on your ability to make changes to existing code, whether to fix a defect or to introduce new business functionality in a timely manner.
Martin, Robert C., Clean Code, Prentice Hall, 2009