1. 程式人生 > 其它 >編寫“可讀”程式碼的藝術

編寫“可讀”程式碼的藝術

寫程式碼的兩層含義:

一層是功能性,程式碼編譯得到類檔案,交給機器去執行,從而實現各種功能、效能、擴充套件性等特性;

一層是可讀性,這是給人看的,是軟體可維護性的重要部分;

程式碼是給人看的,類才是給電腦看的

1、命名

tmp僅作為臨時儲存,只要有業務含義,就不應該使用tmp命名;

迴圈裡的index,不單單使用i,m,n,可以加上業務字首,尤其是巢狀迴圈的時候;

命名數量詞變數的時候帶上單位更清楚;

變數的型別可以放在名字裡;

名字不能過長或過短,作用域小的變數命名可以短一些;

縮略詞一定是團隊統一的,約定俗成的;

整個團隊,整個系統使用統一的規範明確大小寫、中橫線、下橫線。

2、格式化

團隊內必須保持統一的佈局風格;

使用相同的佔位符(固定數量的空格)來規範程式碼的縮排;

將過長的方法進行分組,按照邏輯形成程式碼段,使用空行或者註釋進行分割;

3、註釋

不要解釋程式碼本身的事實,更多的記錄思想和原因;

好程式碼>壞程式碼+好註釋;

為程式碼的瑕疵寫詳細的註釋,因為瑕疵更不容易懂;

為系統、模組、元件增加全域性性註釋幫助新人迅速開始;

註釋包括:做什麼、怎麼做、為什麼;

不管你心裡想什麼,先寫下來,讀一讀,然後跟著程式碼的修改不斷改進註釋;

註釋要簡潔明確,宣告程式碼的高層次意圖,而不是明顯的細節;

4、簡化迴圈和邏輯

與其儘量追求最小化程式碼行數,不如追求最小化人們理解它所需的時間。尤其是在JAVA中的鏈式寫法或者同一行程式碼呼叫多個方法都不推薦,應該拆分成多行程式碼,每行呼叫一個方法給臨時變數賦值,然後下一行再對這個臨時變數進行下一個方法繼續運算;

儘量縮小變數的作用域,謹慎的使用全域性變數;

5、重新組織程式碼

工程學就是把大問題拆分成小問題,然後再將解決方案進行組合;

積極的發現並抽取獨立的、不相關的邏輯形成子方法,一段程式碼只做一件事

總結通用邏輯和工具程式碼,將通用程式碼與專案程式碼分離;

按需重構結構、重構介面,簡化引數;

讓程式碼更加符合思維順序;

能夠把想法給第三個人說明白再寫程式碼;

不要假想需求,不要過度設計,不要超前設計

刪除無用的、過時的、無效的註釋和程式碼;

軍隊通過這種日常最基本的小事來培養軍人的紀律性,而紀律性是任何大規模組織協同作戰最重要的因素。

養成習慣,培養自己的程式碼潔癖。

參考:灰鬍子老爺爺