2019-04-29 關(guān)于Mcu_PerformReset和API設(shè)計(jì)原則

學(xué)習(xí)AutoSAR的時(shí)候,看到在MCAL中有API名為Mcu_PerformReset贮懈,撇開AutoSAR對(duì)架構(gòu)本身的優(yōu)缺點(diǎn)匀泊,單說(shuō)Mcu_PerformReset這一個(gè)API。

直觀想到的朵你,是Mcu_PerformReset與Mcu_Reset在API命名上的區(qū)別各聘。Mcu_PerformReset從API名稱可以直譯為Mcu執(zhí)行Reset,很符合API設(shè)計(jì)的動(dòng)詞+名詞原則抡医,但是如果去詢問(wèn)100個(gè)軟件工程師躲因,我大概能確定有99個(gè)不能在這個(gè)API的名字中加上Perform,大家都會(huì)設(shè)計(jì)成Mcu_Reset忌傻,這是更符合習(xí)慣的API命名大脉,所以我很想知道設(shè)計(jì)這個(gè)API的人心里的想法。

講起API的命名水孩,其實(shí)有一套約定俗成而一以貫之的原則镰矿。比如大小寫混排加下劃線,因?yàn)樵诓煌膸?kù)中有不同的約定俘种,到還不至于太過(guò)悖于習(xí)慣秤标,但在命名的清晰易懂而有符合習(xí)慣上绝淡,委實(shí)會(huì)有常常令人摸不著頭腦的地方。還是以Mcu_PerformReset為例苍姜,本身的命名固然看起來(lái)還不錯(cuò)牢酵,不過(guò)可以類比一下其他廣泛使用的庫(kù),以及Linux本身的系統(tǒng)調(diào)用衙猪,這些庫(kù)中的API命名馍乙,基本上可以代表當(dāng)前廣泛傳播的函數(shù)命名約定和規(guī)范。

在cJSON庫(kù)中垫释,可以對(duì)拿到的json字符串進(jìn)行解析丝格,使用的API為cJSON_Parse】闷可以看到在命名規(guī)則上铁追,與AutoSAR使用的大小寫混排+下劃線一致。不過(guò)如果依照Mcu_PerformReset茫船,似乎命名為cJSON_PerformParse或者cJSON_DoParse會(huì)更加合理,然而如果這么命名扭屁,使用的人恐怕只會(huì)哭笑不得算谈,因?yàn)閷?shí)在是不能理解。pthread庫(kù)中也有同樣的情形料滥,如果按照Mcu_PerformReset的原則然眼,pthread的API應(yīng)該是諸如pthread_perform_create,pthread_perform_join之流葵腹。kernel的系統(tǒng)調(diào)用實(shí)現(xiàn)更加不可目視高每,因?yàn)樵竞?jiǎn)潔的open,需要編程perform_open践宴,而且對(duì)于kernel還不能變成do_open鲸匿,因?yàn)閮?nèi)核有do_open的實(shí)現(xiàn),同一系統(tǒng)中的多個(gè)do_open更加引起使用者的不適感阻肩。

那么在同一個(gè)Mcu模塊中的明明带欢,是不是能夠遵循同樣的原則呢?有圖為證:

整個(gè)模塊的API烤惊,只有Mcu_PerformReset顯得鶴立雞群乔煞,與其他API明明規(guī)則格格不入。德國(guó)人向來(lái)以嚴(yán)謹(jǐn)著稱柒室,何以如此渡贾?望有人解惑。

所以一份代碼的風(fēng)格雄右,如果不能一以貫之空骚,會(huì)引起參與者的極大不適感纺讲,且整篇代碼在主要API的排布上,應(yīng)該如流暢的散文一般行云流水府怯,在輔以內(nèi)部輔助函數(shù)刻诊,共同組成代碼的架構(gòu)。大體來(lái)說(shuō)牺丙,不外函數(shù)命名则涯,變量命名,空格規(guī)范冲簿,換行規(guī)范粟判,預(yù)處理規(guī)范,錯(cuò)誤規(guī)范幾樣峦剔。然而大部分人寫出來(lái)的代碼還是不忍卒讀档礁,甚至做不到格式一致,這固然是因?yàn)槟承㊣DE對(duì)格式不敏感吝沫,但是比如換行呻澜,空格等,工程師應(yīng)該形成手上的習(xí)慣惨险,在鍵入for之后羹幸,自然會(huì)空格,然后在鍵入(辫愉,不用依賴于IDE的格式整理栅受。IDE的格式整理,實(shí)際上培養(yǎng)了工程師的懶惰恭朗,以至于寫完代碼屏镊,經(jīng)由IDE一整理,代碼面目全非痰腮,他認(rèn)識(shí)你而芥,你不認(rèn)識(shí)他,則開發(fā)效率膀值,調(diào)試效率簡(jiǎn)直無(wú)從談起蔚出。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市虫腋,隨后出現(xiàn)的幾起案子骄酗,更是在濱河造成了極大的恐慌,老刑警劉巖悦冀,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趋翻,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡盒蟆,警方通過(guò)查閱死者的電腦和手機(jī)踏烙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門师骗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人讨惩,你說(shuō)我怎么就攤上這事辟癌。” “怎么了荐捻?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵黍少,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我处面,道長(zhǎng)厂置,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任魂角,我火速辦了婚禮昵济,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘野揪。我一直安慰自己访忿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布斯稳。 她就那樣靜靜地躺著醉顽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪平挑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天系草,我揣著相機(jī)與錄音通熄,去河邊找鬼。 笑死找都,一個(gè)胖子當(dāng)著我的面吹牛唇辨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播能耻,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼赏枚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了晓猛?” 一聲冷哼從身側(cè)響起饿幅,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎戒职,沒想到半個(gè)月后栗恩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洪燥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年磕秤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乳乌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡市咆,死狀恐怖汉操,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒙兰,我是刑警寧澤磷瘤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站癞己,受9級(jí)特大地震影響膀斋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜痹雅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一仰担、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绩社,春花似錦摔蓝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至朴沿,卻和暖如春猜谚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赌渣。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工魏铅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坚芜。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓览芳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鸿竖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沧竟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,089評(píng)論 1 32
  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語(yǔ)閱讀 3,622評(píng)論 0 7
  • 去年有段時(shí)間得空,就把谷歌GAE的API權(quán)威指南看了一遍缚忧,收獲頗豐悟泵,特別是在自己幾乎獨(dú)立開發(fā)了公司的云數(shù)據(jù)中心之后...
    騎單車的勛爵閱讀 20,444評(píng)論 0 41
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL闪水、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,429評(píng)論 0 4
  • 意想不到 1.每天是那么的美好魁袜,有好多人在一起開心的做事情,為什么開心呢,因?yàn)槲覀兓蚨嗷蛏俣加邢嗤恼J(rèn)知峰弹,我們彼此...
    漫步_d0d4閱讀 127評(píng)論 0 0