erlang spec

這里陸陸續(xù)續(xù)添加一些自己總結(jié)或借鑒的erlang代碼規(guī)約

[強制] [推薦] [建議]

=============================

命名

原則—— 命名首先應(yīng)該清晰耻矮,然后才是簡潔

模塊名:

[強制] 除了像util, time_util, list_util這種通用的util模塊外背伴, 項目里其他模塊的名字都要統(tǒng)一加上前綴要销,如: xs_......

函數(shù)名:

變量名:

[強制] 函數(shù)內(nèi)變量更新“賦值”金顿,后綴序號不取1,而是直接從2開始(1不如2明顯赛蔫,而且容易和字母 l 混淆)

反例: ? Player1 = ?Player#player{exp = ...},

? ? ? ? ? ? % 此處是一些邏輯處理

? ? ? ? ? ? Player2 = Player1#player{lv = ...},

正例: Player2 =? Player#player{exp = ...},

? ? ? ? ? ? % 此處是一些邏輯處理

? ? ? ? ? ? Player3 = Player2#player{lv = ...},



宏名:

進程字典的key名:

[推薦]


============================

函數(shù)相關(guān)

1. ?[推薦] ?除非有充分的理由炫惩, 否則不要拿“參數(shù)匹配某個特定值”這種做法來代替業(yè)務(wù)邏輯的case或if 判斷(這種寫法不直觀清晰扁瓢,不便于代碼閱讀和維護)

反例:

foo(#player{last_save_time=0}) ->

% 執(zhí)行l(wèi)ast_save_time為0時的處理

% ...;

foo(#player{last_save_time=LastSaveTime}) ->

% 執(zhí)行l(wèi)ast_save_time不為0時的處理

% ...

正例: 寧可直接在foo()函數(shù)里寫case? LastSaveTime == 0 of的判斷, 更好的則是封裝一些判斷的小函數(shù)堕战, 然后調(diào)用這些小函數(shù)坤溃。


===========================================================

進程字典

1. [強制] 進程字典的get, put調(diào)用,必須加erlang: 前綴嘱丢,避免和自定義的函數(shù)混淆薪介,也更清晰。

反例: ?get(xxx), ? put(xxx, yyy)

正例: ? erlang:get(xxx), ? ?erlang:put(xxx, yyy)


======================================================

注釋

1. [強制]?

所有位于行末的注釋屿讽,統(tǒng)一用%(一個%)

模塊(包括頭文件昭灵,配置文件)開頭的模塊說明吠裆,用%%%(三個%)作為注釋

?函數(shù)定義處的函數(shù)說明,用%%(兩個%)作為注釋烂完, 函數(shù)內(nèi)部統(tǒng)一用%(一個%)作為注釋

記錄體定義處的記錄體說明试疙,用%%(兩個%)作為注釋, 記錄體內(nèi)部統(tǒng)一用%(一個%)作為注釋

宏定義處用%%(兩個%)作為注釋抠蚣,但如果注釋是位于行末祝旷,則用%(一個%)


===========================================

頭文件

1. [強制] 避免頭文件被重復(fù)包含的寫法,統(tǒng)一如下:

假設(shè)有一個player.hrl文件嘶窄,則:

-ifndef(__PLAYER_HRL__).

-define(__PLAYER_HRL__, 0).

.........

-endif.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末怀跛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子柄冲,更是在濱河造成了極大的恐慌吻谋,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件现横,死亡現(xiàn)場離奇詭異漓拾,居然都是意外死亡,警方通過查閱死者的電腦和手機戒祠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門骇两,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人姜盈,你說我怎么就攤上這事低千。” “怎么了馏颂?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵示血,是天一觀的道長。 經(jīng)常有香客問我饱亮,道長矾芙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任近上,我火速辦了婚禮剔宪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘壹无。我一直安慰自己葱绒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布斗锭。 她就那樣靜靜地躺著地淀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪岖是。 梳的紋絲不亂的頭發(fā)上帮毁,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天实苞,我揣著相機與錄音,去河邊找鬼烈疚。 笑死黔牵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的爷肝。 我是一名探鬼主播猾浦,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼灯抛!你這毒婦竟也來了金赦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤对嚼,失蹤者是張志新(化名)和其女友劉穎夹抗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猪半,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡兔朦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年偷线,在試婚紗的時候發(fā)現(xiàn)自己被綠了磨确。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡声邦,死狀恐怖乏奥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亥曹,我是刑警寧澤邓了,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站媳瞪,受9級特大地震影響骗炉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛇受,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一句葵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兢仰,春花似錦乍丈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至察蹲,卻和暖如春请垛,著一層夾襖步出監(jiān)牢的瞬間催训,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工宗收, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞳腌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓镜雨,卻偏偏與公主長得像嫂侍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子荚坞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,455評論 2 359

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