1. Motivations and reasons to care about code quality:
Impact on quality on agility and productivity
Getting a sense of code quality
Identifying code Smells
Identifying Design Smells
Hands-on Exercises
2. Refactoring to deodorize code:
Approaching refactoring
Analyzing code
Incremental and iterative approach
Key elements for refactoring
Hands-on Exercises
3. Measuring quality code:
Tools and approaches
Individual efforts
Collaborative efforts
Reevaluating quality after refactoring
Design qualities
Perils of long methods
Hands-on Exercises
4. Object-Oriented code concerns:
Measuring cohesion
Dealing with coupling
Class level issues
Perils of improper and unnecessary state
Proper use of inheritance
Dealing with needless complexity
Hands-on Exercises
5. Functional Style code concerns:
Idioms of programming in Functional style
Patterns and antipatters of functional style
Dos and don’t of working with lambda expressions
Functional purity and perils of violation