一、前言
題外:昨天看了某知乎用戶的回答頗為感慨,大意是說現在主流是框架程序員越來越多,原理、架構、底層方面的越來越少;依賴框架快速出活的程序員工作機會比較多,公司招聘的時候也比較受歡迎。
不能說哪種優秀或者比較low。只要需要就必然有存在的價值,尤其是在快速迭代的今天,速度慢半拍可能就意味着淘汰。
今天說命名可閱讀的代碼。
二、可閱讀的代碼
寫程序就像建造一棟高樓,包括方方面面,羅馬不是一天建成的。軟件開發領域,強調命名的重要性至今都不過時。代碼開發階段在大部分應用程序生命周期中占比都是很小的一個階段,維護階段是一個大頭,后來的人員需要閱讀你的代碼<也可能包括未來的你>才能完成工作。很多時候,維護運營階段閱讀前人的代碼,或者自己以前的代碼會有一個感覺一個頭兩個大。
什么是好的命名,沒有固定答案,不過有一個原則就是:遵循團隊或者項目的命名規范,如果團隊或者項目還沒有統一的命名規范,首先去創建她,然后貫徹到底。相信百分之九十九的組織都有自己的命名規范。
關於注釋也在存在爭議,有的組織規定代碼不能存在注釋,有的組織要求必須寫注釋。優劣沒有定論,不過好的命名可以是“自注釋”,可以明確傳達代碼意圖,描述邏輯。統一的命名規則可以使整個團隊保持一致。
三、命名的一些實踐
1、名字完整准確的表達其所代表的的含義、名字反應實際問題、名字“足夠長”、限定詞放在名字最后、
2、避免縮寫或對縮寫進行統一約定、使用約定對仗詞<begin/end、min/max、up/down>等、使用有意義的循環下標
3、命名規則能夠區分類名、常量、枚舉、變量
以上簡單羅列,更多實踐,Google 一下。
四、一些例子
1、常見的多層結構中:業務邏輯層,IxxService、xxService ;數據訪問層,IxxDao 、xxDao 等,當然每個組織可能不一樣
2、模式語言 xxFactory 、xxObserver、xxSingleton 等
3、.Net Framework 中API
4、代碼片段
string add; // person address int a; // person age string address; int age;
五、總結&推薦閱讀
強調命名是一個古老的話題,但是從來都不過時。最后用一個問答,強調一下命名的重要性。
問:如何寫出可閱讀的代碼,自注釋代碼? 答:遵循良好的命名實踐。
推薦閱讀:
1、《Code Complete》第11章 The Power Of Variable Names
2、How To Write Unmaintainable Code : https://github.com/Droogans/unmaintainable-code
3、阿里《Java 開發手冊》 https://github.com/alibaba/p3c
