更新時(shí)間:2017年12月29日16時(shí)25分 來(lái)源:傳智播客 瀏覽次數(shù):
代碼風(fēng)格有很多種,Windows 和Linux都有自己主流的代碼風(fēng)格,每個(gè)團(tuán)隊(duì)、每個(gè)公司也可能有自己的代碼風(fēng)格,爭(zhēng)論哪種風(fēng)格好哪種風(fēng)格壞根本沒(méi)有什么意義。有助于其他程序員理解的代碼風(fēng)格都是可以接受的,因?yàn)樽裱囟ùa風(fēng)格的目的就是為了便于交流。
1 命名要展示對(duì)象的功能(標(biāo)識(shí)符)
作用
給包,類(lèi),方法,變量等起名字
組成規(guī)則
由字符,下劃線(xiàn)_,美元符$組成(包括英文大小寫(xiě)字母,中文字符,數(shù)字字符等)。
注意事項(xiàng):
不能以數(shù)字開(kāi)頭
不能是Java中的關(guān)鍵字
命名原則:
盡量做到見(jiàn)名知意
1.1命名規(guī)則
a工程名
工程名一定要能傳達(dá)文件的內(nèi)容信息,別人一看到工程名就能知道文件中放的是什么內(nèi)容。把一個(gè)類(lèi)的代碼或者某一類(lèi)代碼放在一起是好的習(xí)慣,這樣就很容易給工程取一個(gè)直觀(guān)的名字。業(yè)余愛(ài)好者常常把很多沒(méi)關(guān)系的代碼糅到一個(gè)文件中,結(jié)果造成代碼雜亂無(wú)章,也很難給它取一個(gè)恰當(dāng)?shù)拿?
b包
最好是域名倒過(guò)來(lái),要求所有的字母小寫(xiě)
c類(lèi)或者接口
如果是一個(gè)單詞首字母大寫(xiě)
如果是多個(gè)單詞每個(gè)單詞首字母大寫(xiě)(駝峰標(biāo)識(shí))
d方法或者變量
如果是一個(gè)單詞全部小寫(xiě)
如果是多個(gè)單詞,從第二個(gè)單詞首字母大寫(xiě)
e常量
如果是一個(gè)單詞,所有字母大寫(xiě)
如果是多個(gè)單詞,所有的單詞大寫(xiě),用下劃線(xiàn)區(qū)分每個(gè)單詞
f面向?qū)ο竺绞?/p>
(1) 以對(duì)象為中心,采用“主語(yǔ)(對(duì)象)+謂語(yǔ)(動(dòng)作)”的形式來(lái)命名,取代傳統(tǒng)的“謂語(yǔ)(動(dòng)作)+賓語(yǔ)(目標(biāo))”的形式。
如:dlist_append
(2) 第一個(gè)參數(shù)為對(duì)象,并用thiz命名。
如:dlist_append(DList* thiz, void* value);
(3) 對(duì)象有自己的生命周期,因此都有相應(yīng)的創(chuàng)建和銷(xiāo)毀函數(shù)。
2 排版布局要美觀(guān)大方
2.1 合理使用空格
等號(hào)兩邊用空格。如:int a = 100;
參數(shù)之間用空格。如:test(int a, int b, int c)
語(yǔ)句末的分號(hào)與前面內(nèi)容不要加空格。如:test(a, b, c);
其他能讓代碼更美觀(guān)的地方。
2.2 合理使用括號(hào)
用括號(hào)分隔子表達(dá)式,不要只靠默認(rèn)優(yōu)先級(jí)來(lái)判斷。((a && b) || (c && d))
用括號(hào)分隔if/while/for等語(yǔ)句的代碼塊,那怕代碼只有一行。
2.3 合理縮進(jìn)
每一級(jí)都正??s進(jìn),用tab縮進(jìn)取代空格縮進(jìn)。用空格縮進(jìn)的目的是防止代碼因編輯器的tab寬度不同而變亂,這個(gè)擔(dān)心現(xiàn)在是多余的 了,代碼編輯器都支持tab寬度設(shè)置了。如果代碼縮進(jìn)的層次太多(比如超過(guò)三層),則可能是代碼設(shè)計(jì)上出了問(wèn)題。
2.5 遵從團(tuán)隊(duì)的習(xí)慣
這一點(diǎn)是最重要的,一個(gè)團(tuán)隊(duì)就要有一個(gè)團(tuán)隊(duì)的樣子,不管你的水平有多高,遵循團(tuán)隊(duì)的規(guī)則是一個(gè)程序員的基本素養(yǎng)。如果團(tuán)隊(duì)的規(guī)則確實(shí)不好,大家應(yīng)該一起完善它。做到這一點(diǎn),你已經(jīng)離成為專(zhuān)業(yè)程序員這個(gè)目標(biāo)更近一步了,重新做一遍練習(xí)吧。隨著后面的學(xué)習(xí),你就可以真正走進(jìn)專(zhuān)業(yè)程序員這個(gè)行列了。
傳智播客C/C++培訓(xùn)專(zhuān)家:漫談軟件編碼風(fēng)格
2017-11-21C/C++培訓(xùn)專(zhuān)家:C/C++中const的區(qū)別
2017-11-21C ++中四種類(lèi)型轉(zhuǎn)換方式
2017-11-21黑馬程序員C/C++培訓(xùn)專(zhuān)家:常用的9個(gè)字符串C標(biāo)準(zhǔn)庫(kù)函數(shù)之strstr實(shí)現(xiàn)
2017-11-21傳智播客C/C++培訓(xùn)專(zhuān)家:C++中GB2312字符串和UTF-8之間的轉(zhuǎn)換
2017-11-21C/C++函數(shù)指針簡(jiǎn)單講解
2017-11-21北京校區(qū)