開發(fā)經(jīng)驗漫談 -- 編碼規(guī)范

這幾期想和大家分享下我自己在開發(fā)時的一些經(jīng)驗描焰,這次來說說關(guān)于代碼規(guī)范母赵。

什么是代碼規(guī)范

我理解的代碼規(guī)范,是一個標準悠砚,讓寫代碼的人按照這個標準來開發(fā)。

例如php的psr1(https://www.php-fig.org/psr/psr-1/)和psr2(https://www.php-fig.org/psr/psr-2/

為什么需要代碼規(guī)范

萬事萬物必然有其存在的意義堂飞,這里說下我的理解:

  1. 這里先說明很重要的一點灌旧,那就是代碼是寫給人看的,并不是機器酝静,所以說代碼要讓別人好理解节榜。
  2. 我們多數(shù)情況下都是團隊開發(fā),所以大家都約定好一個標準别智,更加有利于團隊代碼的可維護性。
  3. 團隊中有老人離職稼稿、有新人加入薄榛,從代碼規(guī)范中是可以看到這個團隊的文化的傳承的讳窟。
  4. 對自己也是個約束,不要太隨意了敞恋。

如何制定規(guī)范

制定步驟:

  1. 首先看是否有官方規(guī)范丽啡。一些較新的編程語言通常會有自己的一些規(guī)范,例如Golang硬猫,大家可以參考官方的Effective Go(https://golang.org/doc/effective_go.html)补箍,建議遵守。
  2. 其次看是否有權(quán)威的啸蜜、認同度高的規(guī)范。通常使用較廣泛的語言會這樣做,如php的psr1抓督、2膳犹,建議遵守。
  3. 之后蜂林,才是我們團隊來制定自己的規(guī)范遥诉。

團隊規(guī)范注意:

  1. 盡量避免一言堂。因為是團隊規(guī)范噪叙,所以是需要得到大家的認同的矮锈。
  2. 要經(jīng)常反思,不好的地方和團隊成員討論不斷調(diào)整睁蕾。其實這也是要求團隊成員開發(fā)時不斷反思的一個過程愕难。
  3. 規(guī)范簡單易懂。

參與過的規(guī)范實例

這里舉兩個自己參與過的實例:

Golang項目

我們團隊第一次使用Golang開發(fā)項目時惫霸,當時制定了這樣的一套規(guī)范:

  • 變量
  1. 多個詞之間用"_"(下劃線)連接猫缭,如:prj_home
  2. 可導(dǎo)出全局變量每個詞的首字母均大寫,如:Prj_Home
  3. 包內(nèi)部全局變量用“_”(下劃線)開頭壹店,單詞小寫猜丹,如:_prj_home
  • 函數(shù)
  1. 函數(shù)名稱駝峰式,如:listPrj
  • 類型
  1. 類型名用“t”開頭硅卢,如:t_prj_item
  2. 可導(dǎo)出名稱用“T”射窒,如:T_Prj_Item
  3. 接口類型用“i”開頭,如:i_logger
  4. 可導(dǎo)出接口類型用“I”将塑,如:I_Logger
  5. 多名詞規(guī)則同“變量命名規(guī)則”

當時制定這套規(guī)范時脉顿,我們對Golang的使用還是剛剛起步,很多不理解的地方点寥,所以這套規(guī)范現(xiàn)在看來艾疟,很多地方都不合適,但在當時,還是起到了很大的作用蔽莱。

  1. 這套規(guī)范幫助我們這些初學(xué)者在當時統(tǒng)一了風(fēng)格弟疆,避免了混淆。
  2. 后續(xù)的同學(xué)也能很快理解當時的項目盗冷,所以項目雖早怠苔,但現(xiàn)在也很好的運行著。
  3. 隨著Go越用越多仪糖,我們不斷更新我們的規(guī)范柑司,從命名上,項目的組織上锅劝,都一直經(jīng)歷著變化攒驰,目前最新可參考gobox項目代碼(https://github.com/orgs/goinbox/dashboard

PHP項目

這個項目也是我們團隊的一個編碼規(guī)范的典型運用,規(guī)范如下:

  • 綜述

對于psr標準中已規(guī)定的部分鸠天,請遵照執(zhí)行讼育,這里不再贅述。
這里主要定義現(xiàn)有psr標準中未規(guī)范的部分稠集。

  • 變量

統(tǒng)一使用駝峰式

  • 數(shù)組key

使用下劃線分隔多詞

  • 判斷時常量在等號左邊還是右邊

統(tǒng)一放在等號右邊

if ($a === 0){}
  • 函數(shù)中參數(shù)如果提供默認值奶段,等號兩端是否有空格

function foo($a = 0){}

這個項目的編碼規(guī)范由當時我們團隊的五個人共同制定,我們列出psr中未規(guī)定的部分剥纷,每個人陳述自己的觀點痹籍,然后舉手表決。

結(jié)束語

規(guī)范不是目的晦鞋,只是一種手段蹲缠,好的規(guī)范十分有助于編程人員培養(yǎng)良好的編程習(xí)慣。

最后悠垛,請記住一點:代碼是寫給人看的线定,機器只需要0和1。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末确买,一起剝皮案震驚了整個濱河市斤讥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湾趾,老刑警劉巖芭商,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搀缠,居然都是意外死亡铛楣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門艺普,熙熙樓的掌柜王于貴愁眉苦臉地迎上來簸州,“玉大人鉴竭,你說我怎么就攤上這事∥鸷睿” “怎么了拓瞪?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵缴罗,是天一觀的道長助琐。 經(jīng)常有香客問我,道長面氓,這世上最難降的妖魔是什么兵钮? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮舌界,結(jié)果婚禮上掘譬,老公的妹妹穿的比我還像新娘。我一直安慰自己呻拌,他們只是感情好葱轩,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著藐握,像睡著了一般靴拱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猾普,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天袜炕,我揣著相機與錄音,去河邊找鬼初家。 笑死偎窘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的溜在。 我是一名探鬼主播陌知,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掖肋!你這毒婦竟也來了仆葡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤培遵,失蹤者是張志新(化名)和其女友劉穎浙芙,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體籽腕,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡嗡呼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了皇耗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片南窗。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出万伤,到底是詐尸還是另有隱情窒悔,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布敌买,位于F島的核電站简珠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏虹钮。R本人自食惡果不足惜聋庵,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芙粱。 院中可真熱鬧祭玉,春花似錦、人聲如沸春畔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽律姨。三九已至振峻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間线召,已是汗流浹背铺韧。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缓淹,地道東北人哈打。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像讯壶,于是被迫代替她去往敵國和親料仗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Welcome 目前網(wǎng)絡(luò)上充斥著大量的陳舊信息伏蚊,讓PHP新手誤入歧途立轧,傳播著錯誤的實踐和糟糕的代碼,這必須得到糾正...
    layjoy閱讀 21,676評論 7 118
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,138評論 25 707
  • 一天躏吊,正在一家小書店隨意翻看氛改,一個小男孩擠到了我旁邊,后面緊跟著他的媽媽比伏。男孩拿起了《侏羅紀公園》胜卤,媽媽拿起了另一...
    加加媽媽閱讀 4,064評論 10 12
  • 你還記得當年自己13歲時葛躏,做過什么值得記憶的事嗎澈段? 13歲?9歲讀書的我還在小學(xué)舰攒,懵懵懂懂败富,跳皮筋兒,玩迷藏這些游...
    藍蝶landie閱讀 771評論 1 3
  • 煮一壺茶摩窃;輕點一盞燈兽叮;細翻一冊書。閉上眼偶芍,在茶香書墨中充择,逆著時間的長河去回溯流年德玫。 在青春轉(zhuǎn)折的詩篇里匪蟀,我曾看過很...
    那只不喜歡吃魚的貓閱讀 435評論 0 2