寫代碼的兩層含義:
一層是功能性,代碼編譯得到類檔案,交給機器去運作,進而實作各種功能、性能、擴充性等特性;
一層是可讀性,這是給人看的,是軟體可維護性的重要部分;
代碼是給人看的,類才是給電腦看的。
1、命名
tmp僅作為臨時存儲,隻要有業務含義,就不應該使用tmp命名;
循環裡的index,不單單使用i,m,n,可以加上業務字首,尤其是嵌套循環的時候;
命名數量詞變量的時候帶上機關更清楚;
變量的類型可以放在名字裡;
名字不能過長或過短,作用域小的變量命名可以短一些;
縮略詞一定是團隊統一的,約定俗成的;
整個團隊,整個系統使用統一的規範明确大小寫、中橫線、下橫線。
2、格式化
團隊内必須保持統一的布局風格;
使用相同的占位符(固定數量的空格)來規範代碼的縮進;
将過長的方法進行分組,按照邏輯形成代碼段,使用空行或者注釋進行分割;
3、注釋
不要解釋代碼本身的事實,更多的記錄思想和原因;
好代碼>壞代碼+好注釋;
為代碼的瑕疵寫詳細的注釋,因為瑕疵更不容易懂;
為系統、子產品、元件增加全局性注釋幫助新人迅速開始;
注釋包括:做什麼、怎麼做、為什麼;
不管你心裡想什麼,先寫下來,讀一讀,然後跟着代碼的修改不斷改進注釋;
注釋要簡潔明确,聲明代碼的高層次意圖,而不是明顯的細節;
4、簡化循環和邏輯
與其盡量追求最小化代碼行數,不如追求最小化人們了解它所需的時間。尤其是在JAVA中的鍊式寫法或者同一行代碼調用多個方法都不推薦,應該拆分成多行代碼,每行調用一個方法給臨時變量指派,然後下一行再對這個臨時變量進行下一個方法繼續運算;
盡量縮小變量的作用域,謹慎的使用全局變量;
5、重新組織代碼
工程學就是把大問題拆分成小問題,然後再将解決方案進行組合;
積極的發現并抽取獨立的、不相關的邏輯形成子方法,一段代碼隻做一件事;
總結通用邏輯和工具代碼,将通用代碼與項目代碼分離;
按需重構結構、重構接口,簡化參數;
讓代碼更加符合思維順序;
能夠把想法給第三個人說明白再寫代碼;
不要假想需求,不要過度設計,不要超前設計
删除無用的、過時的、無效的注釋和代碼;
軍隊通過這種日常最基本的小事來培養軍人的紀律性,而紀律性是任何大規模組織協同作戰最重要的因素。
養成習慣,培養自己的代碼潔癖。