變量、函數(shù)、類的命名規(guī)則
更新時(shí)間:2011年08月14日 15:22:05 作者:
在閱讀clean code書籍的時(shí)候,讓我體會(huì)很多,因此我也用文字記錄下這些有意義的知識(shí)。我認(rèn)為這本書讀十遍都不為過,下面我講解一下自己的關(guān)于變量、函數(shù)、類的命名規(guī)則筆記。
1、命名要名副其實(shí):
命名的時(shí)候一定要考慮他的顯示意義和語境,不要認(rèn)為把時(shí)間花費(fèi)在變量的命名上很浪費(fèi)。當(dāng)然如果你程序很短的話,就不需要考慮那么多了,埋頭就寫代碼。如果你的項(xiàng)目大,而且文件多的情況下,最好就是要花費(fèi)時(shí)間在命名上,因?yàn)槟愕拇a不僅僅只是你一個(gè)人看的。
2、避免誤導(dǎo):
也就是說不要把其他平臺(tái)的關(guān)鍵字拿來命名,比如說我使用javascript語言,而我設(shè)計(jì)了一個(gè)變量為int,這讓人會(huì)很頭疼,為什么要一個(gè)int變量呢,難道這段代碼是C++。這樣就會(huì)讓人產(chǎn)生誤導(dǎo)。如果你想一個(gè)整型變量你可以這樣,var intNumber;
3、做有意義的區(qū)分:
variable:永遠(yuǎn)不要拿來作為變量的名稱、table永遠(yuǎn)不要拿來作為表的名稱,等等。不要使用相似的命名,必須做有意義的區(qū)分,比如說:有一組變量,有些童鞋會(huì)這樣命名,a1、a2、a3...,而如果我們根據(jù)他們的作用來命名效果會(huì)好很多。
4、使用容易讀懂的名稱:
最好就是使用一段英文,或者英文短語,切莫一些中文,一些英文混合,或者單純的中文。比如:我們想寫一個(gè)函數(shù)作用是,切換語言:qieHuanYuYan,這樣的話大家讀起來就會(huì)一個(gè)個(gè)的去拼寫,而且最后還不一定能夠拼寫成功,如果改為:changeLanguage效果會(huì)好很多。
5、使用可搜索的名稱:
我建議大家在使用阿拉伯?dāng)?shù)字的時(shí)候,最好能在代碼的最開始,使用大寫加下劃線定義。比如說50度是一個(gè)人體能夠承受的電力最大福特越界值,那么我們可以命名為:PEOPLE_MAX_VOLTA;當(dāng)然我英語能力有點(diǎn)不好,但是基本是這個(gè)原理。如果單純的使用50的話,會(huì)讓人不知道這個(gè)是什么標(biāo)準(zhǔn),如果變成變量就容易閱讀。而且大家最好不要使用單個(gè)的英文字母,因?yàn)槟菢訒?huì)造成相當(dāng)大的麻煩,不僅僅是搜索,而且也難易理解。
6、避免使用編碼:
不要使用一些前綴命名,比如說加一個(gè)m_之類的,這樣雖然可以多次命名,但是會(huì)讓人難以讀懂。
7、避免思維映射:
避免單個(gè)名稱,明確才是王道,不要以為你的單個(gè)名稱別人看不懂,你就很牛逼。如果代碼看起來像看小說一樣,那才叫牛逼。
8、類名、方法名
類名應(yīng)當(dāng)是名詞、或者名詞短語。例如:Customer、WikiPage,避免使用Maneger、Perocessor這類帶有動(dòng)作的詞語;方法名,盡量的能夠體現(xiàn)出這個(gè)方法的動(dòng)作,所以最好使用動(dòng)詞,或者動(dòng)詞短語,例如:postMail、deletePage,等等。
9、每個(gè)概念對(duì)應(yīng)一個(gè)詞:
給每個(gè)抽象概念選一個(gè)詞并且一以慣之,例如使用get、方法,getMsg()、getUsername()、getUerId()等等。
10、不要使用雙關(guān)語:
避免同一個(gè)單詞用于不同的目的,比如說add這個(gè)就不是很好,可以使用append這類詞語替換他。
11、添加語境:
就是給一些變量或者函數(shù)一些語境,比如說:這段變量,firstName、lastName、street、state,這些東西看起來我們都明白,但是我們都不知道他是描述什么的,如果加上address,改為;addressFirstName、addressLastName、addressStreet、addressState,這樣的話就明朗很多了。
大家在對(duì)變量、函數(shù)、類命名的時(shí)候一定不要害怕他很長,只要能夠讀懂就好,當(dāng)然如果短能夠描述的清楚的話,還是必須得選擇短的,我是想說如果想描述清楚,不要害怕變量、函數(shù)、類的命名太長。
命名的時(shí)候一定要考慮他的顯示意義和語境,不要認(rèn)為把時(shí)間花費(fèi)在變量的命名上很浪費(fèi)。當(dāng)然如果你程序很短的話,就不需要考慮那么多了,埋頭就寫代碼。如果你的項(xiàng)目大,而且文件多的情況下,最好就是要花費(fèi)時(shí)間在命名上,因?yàn)槟愕拇a不僅僅只是你一個(gè)人看的。
2、避免誤導(dǎo):
也就是說不要把其他平臺(tái)的關(guān)鍵字拿來命名,比如說我使用javascript語言,而我設(shè)計(jì)了一個(gè)變量為int,這讓人會(huì)很頭疼,為什么要一個(gè)int變量呢,難道這段代碼是C++。這樣就會(huì)讓人產(chǎn)生誤導(dǎo)。如果你想一個(gè)整型變量你可以這樣,var intNumber;
3、做有意義的區(qū)分:
variable:永遠(yuǎn)不要拿來作為變量的名稱、table永遠(yuǎn)不要拿來作為表的名稱,等等。不要使用相似的命名,必須做有意義的區(qū)分,比如說:有一組變量,有些童鞋會(huì)這樣命名,a1、a2、a3...,而如果我們根據(jù)他們的作用來命名效果會(huì)好很多。
4、使用容易讀懂的名稱:
最好就是使用一段英文,或者英文短語,切莫一些中文,一些英文混合,或者單純的中文。比如:我們想寫一個(gè)函數(shù)作用是,切換語言:qieHuanYuYan,這樣的話大家讀起來就會(huì)一個(gè)個(gè)的去拼寫,而且最后還不一定能夠拼寫成功,如果改為:changeLanguage效果會(huì)好很多。
5、使用可搜索的名稱:
我建議大家在使用阿拉伯?dāng)?shù)字的時(shí)候,最好能在代碼的最開始,使用大寫加下劃線定義。比如說50度是一個(gè)人體能夠承受的電力最大福特越界值,那么我們可以命名為:PEOPLE_MAX_VOLTA;當(dāng)然我英語能力有點(diǎn)不好,但是基本是這個(gè)原理。如果單純的使用50的話,會(huì)讓人不知道這個(gè)是什么標(biāo)準(zhǔn),如果變成變量就容易閱讀。而且大家最好不要使用單個(gè)的英文字母,因?yàn)槟菢訒?huì)造成相當(dāng)大的麻煩,不僅僅是搜索,而且也難易理解。
6、避免使用編碼:
不要使用一些前綴命名,比如說加一個(gè)m_之類的,這樣雖然可以多次命名,但是會(huì)讓人難以讀懂。
7、避免思維映射:
避免單個(gè)名稱,明確才是王道,不要以為你的單個(gè)名稱別人看不懂,你就很牛逼。如果代碼看起來像看小說一樣,那才叫牛逼。
8、類名、方法名
類名應(yīng)當(dāng)是名詞、或者名詞短語。例如:Customer、WikiPage,避免使用Maneger、Perocessor這類帶有動(dòng)作的詞語;方法名,盡量的能夠體現(xiàn)出這個(gè)方法的動(dòng)作,所以最好使用動(dòng)詞,或者動(dòng)詞短語,例如:postMail、deletePage,等等。
9、每個(gè)概念對(duì)應(yīng)一個(gè)詞:
給每個(gè)抽象概念選一個(gè)詞并且一以慣之,例如使用get、方法,getMsg()、getUsername()、getUerId()等等。
10、不要使用雙關(guān)語:
避免同一個(gè)單詞用于不同的目的,比如說add這個(gè)就不是很好,可以使用append這類詞語替換他。
11、添加語境:
就是給一些變量或者函數(shù)一些語境,比如說:這段變量,firstName、lastName、street、state,這些東西看起來我們都明白,但是我們都不知道他是描述什么的,如果加上address,改為;addressFirstName、addressLastName、addressStreet、addressState,這樣的話就明朗很多了。
大家在對(duì)變量、函數(shù)、類命名的時(shí)候一定不要害怕他很長,只要能夠讀懂就好,當(dāng)然如果短能夠描述的清楚的話,還是必須得選擇短的,我是想說如果想描述清楚,不要害怕變量、函數(shù)、類的命名太長。
您可能感興趣的文章:
相關(guān)文章
linux系統(tǒng)使用vscode進(jìn)行qt開發(fā)的過程分享
最近在Linux上搞Qt,搞的一頭霧水,小編把整個(gè)過程記錄下,分享需要的朋友,如果大家對(duì)linux系統(tǒng)使用vscode進(jìn)行qt開發(fā)相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2021-12-12如何設(shè)計(jì)一個(gè)幾十萬在線用戶彈幕系統(tǒng)需求方案
這篇文章主要介紹了為大家如何設(shè)計(jì)一個(gè)幾十萬在線用戶彈幕系統(tǒng)的需求實(shí)現(xiàn)方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-05-05Git撤銷已經(jīng)推送(push)至遠(yuǎn)端倉庫的提交(commit)信息操作
這篇文章主要介紹了Git撤銷已經(jīng)推送(push)至遠(yuǎn)端倉庫的提交(commit)信息操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09手把手教你學(xué)會(huì)HBuilder打包APP
我們打包APP需要用到HBuilder,所以本文主要介紹了HBuilder下載安裝以及如何使用,最后介紹如何打包app,感興趣的可以了解一下2021-06-06