Victor Rentea, an enthusiast Clean Coder, Senior Software Engineer at IBM, and independent Trainer.
The primary value of software is to be flexible. The secondary value of software is to do what business wants it to do.
Sounds insane? Just think a bit: what’s the difference between IT and regular engineering? What propulsated IT that much? The ability to evolve, to adapt to new business needs. And we all know how difficult it is to adapt and strech old, dirty, rigid code.
Financially, the fact that 80% of the costs of a software project are in maintenance may not concern you, the developer, directly. But the fact that you read 10x times more time than you write code should make it clear to you: do your very best to write clean, beautiful code that is easy to maintain. This module explains how to write such art.
Besides the bare act of writing code, the module also tackles the problematic of team work, code responsibility and cooperation necessary to any professional software engineer.
The module covers the most important practical aspects from the reference book ‘Clean Code’ by Robert C. Martin, along with many other sources. The training material was reviewed and discussed with numerous seniors to reach a wider consensus regarding the ideas and their nuances.
This is the module which is most likely to have the deepest impact on your day-to-day work, changing the way you exercise your profession.
What we learned ?
Part 1 – cleaning code
Cooperative cleaning up of Martin Fowler’s Video Store refactoring example
• What is Clean Code
• Express intent
• Parts of speech
• Function Size
• Extracting Method Objects
• Function Signature
• Side Effects & Temporal Coupling
• Command/Query separation
Part 2 – more abstract concepts
• Basic Shape
• True Encapsulation
• Data Structures vs. True Objects
• Switch+Data Structures vs. Polymorphic Objects
• ‘Tell, Don’t Ask’ Principle
• Feature Envy
• Code Formatting
• Comments are failures