- What is clean code
- "elegant and efficient" Bjarne Stroustrup, C++之父
寫的真好...
- "simple and direct" Grady Booch, OO大師
幾個字就說出精要,大師就是大師
為什麼會有bad code
程式不斷修改,保持clean,混亂的程式碼才不會越滾越大
導致沒辦法維護,記住童子軍的規則
The Boy Scout Rule
Leave the campground cleaner than you found it.
5S
- Sort 命名易辯識
- Systematize 歸類(知道到哪找)
- Cleaning 潔簡
- Standardization 一致的coding style
- Self-discipline 遵守規定
Each function, each class, each module
exposes a single-minded attitude
- "elegant and efficient" Bjarne Stroustrup, C++之父
- Meaningful Names
- Use Intention-Revealing Names
透過命名就能知其意圖,如果還需要註解來解釋它,就代表不夠清楚 - Use Pronounceable Names
使用可發音的Name幫助溝通 - Use Searchable Names
方便search及取代 - Use Problem Domain Names
沒有適合使用的term,就使用domain的term,讓接手維護的人至少還可以問domain專家,這代表什麼
- Use Intention-Revealing Names
- Functions
- Do One Thing(Small)
只做命名的事細節,包給其他function - Function Arguments The Ideal number of arguments is 0 有參數,增加理解困難
- Do One Thing(Small)
- Comments
Don’t comment bad code
rewrite it 註解沒太多幫助,不如重寫重新整理
程式持續修改演化
不可能一次把程式寫好
First, Make It Work
Then Make It Right
沒有留言:
張貼留言