更新時(shí)間:2017-12-29 來(lái)源:黑馬程序員 瀏覽量:
代碼風(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í)符)
作用
給包,類,方法,變量等起名字
組成規(guī)則
由字符,下劃線_,美元符$組成(包括英文大小寫字母,中文字符,數(shù)字字符等)。
注意事項(xiàng):
不能以數(shù)字開(kāi)頭
不能是Java中的關(guān)鍵字
命名原則:
盡量做到見(jiàn)名知意
1.1命名規(guī)則
a工程名
工程名一定要能傳達(dá)文件的內(nèi)容信息,別人一看到工程名就能知道文件中放的是什么內(nèi)容。把一個(gè)類的代碼或者某一類代碼放在一起是好的習(xí)慣,這樣就很容易給工程取一個(gè)直觀的名字。業(yè)余愛(ài)好者常常把很多沒(méi)關(guān)系的代碼糅到一個(gè)文件中,結(jié)果造成代碼雜亂無(wú)章,也很難給它取一個(gè)恰當(dāng)?shù)拿?
b包
最好是域名倒過(guò)來(lái),要求所有的字母小寫
c類或者接口
如果是一個(gè)單詞首字母大寫
如果是多個(gè)單詞每個(gè)單詞首字母大寫(駝峰標(biāo)識(shí))
d方法或者變量
如果是一個(gè)單詞全部小寫
如果是多個(gè)單詞,從第二個(gè)單詞首字母大寫
e常量
如果是一個(gè)單詞,所有字母大寫
如果是多個(gè)單詞,所有的單詞大寫,用下劃線區(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)建和銷毀函數(shù)。
2 排版布局要美觀大方
2.1 合理使用空格
等號(hào)兩邊用空格。如:int a = 100;
參數(shù)之間用空格。如:test(int a, int b, int c)
語(yǔ)句末的分號(hào)與前面內(nèi)容不要加空格。如:test(a, b, c);
其他能讓代碼更美觀的地方。
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)離成為專業(yè)程序員這個(gè)目標(biāo)更近一步了,重新做一遍練習(xí)吧。隨著后面的學(xué)習(xí),你就可以真正走進(jìn)專業(yè)程序員這個(gè)行列了。
本文版權(quán)歸黑馬程序員C/C++學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員C/C++培訓(xùn)學(xué)院
首發(fā):http://c.itheima.com/
C/C++面向?qū)ο蠛蚸ava面向?qū)ο蟮膮^(qū)別
2017-12-29C語(yǔ)言二維數(shù)組的定義和引用
2017-11-30C/C++技術(shù)知識(shí)點(diǎn):深入淺出-服務(wù)器高并發(fā)庫(kù)libevent(二)
2017-11-30C/C++:深入淺出-服務(wù)器高并發(fā)庫(kù)libevent(一)
2017-11-30C/C++技術(shù)知識(shí)點(diǎn): Qt和MFC比較
2017-11-30C/C++技術(shù):最容易犯錯(cuò)的知識(shí)點(diǎn)(一)
2017-11-30