星期五, 8月 19, 2011

書: Clean Code

  1. 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 遵守規定
    總而言之就是Keep it clean
    Each function, each class, each module
    exposes a single-minded attitude

  2. Meaningful Names
    • Use Intention-Revealing Names
      透過命名就能知其意圖,如果還需要註解來解釋它,就代表不夠清楚
    • Use Pronounceable Names
      使用可發音的Name幫助溝通
    • Use Searchable Names
      方便search及取代
    • Use Problem Domain Names
      沒有適合使用的term,就使用domain的term,讓接手維護的人至少還可以問domain專家,這代表什麼
  3. Functions
    • Do One Thing(Small)
      只做命名的事細節,包給其他function
    • Function Arguments The Ideal number of arguments is 0 有參數,增加理解困難

  4. Comments
    Don’t comment bad code
    rewrite it 註解沒太多幫助,不如重寫重新整理

程式持續修改演化
不可能一次把程式寫好
First, Make It Work
Then Make It Right


References

沒有留言: