日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

對(duì)于代碼規(guī)范的一些總結(jié)

GReq_mcu168 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 2019-12-08 10:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為一個(gè)程序員,肯定希望能寫(xiě)出一手好代碼,看起來(lái)賞心悅目,又易于理解。雖說(shuō)好的代碼是在一定代碼量的基礎(chǔ)上積累起來(lái)的,但在寫(xiě)代碼之初就應(yīng)該有意識(shí)地去遵循一定的規(guī)范。

以下是兩位工程師對(duì)于代碼規(guī)范的一些總結(jié),很有代表性,分享給大家。+



代碼不是一次性的,要為未來(lái)寫(xiě)代碼

最近的幾件事情讓我對(duì)代碼規(guī)范的重要性有了更深的體會(huì),決定自己做些總結(jié)。
情景一:一個(gè)不大的項(xiàng)目,由幾個(gè)人共同完成。某日,由于業(yè)務(wù)需求變更,需要改動(dòng)我這邊的部分邏輯,但當(dāng)時(shí)我不在,項(xiàng)目組的成員決定由他們來(lái)改,但翻了我的代碼,硬是沒(méi)找到該邏輯在哪實(shí)現(xiàn)的^_^。后來(lái)聽(tīng)了他們的描述,很傷……
情景二:負(fù)責(zé)一個(gè)項(xiàng)目的源代碼流程測(cè)試,一期代碼并非模塊化實(shí)現(xiàn),6K多的shell腳本即使有注釋?zhuān)粗莻€(gè)頭疼,后來(lái)在我們提出該問(wèn)題后,開(kāi)發(fā)重新進(jìn)行了設(shè)計(jì)和規(guī)范,拿到代碼的那一刻頓時(shí)感覺(jué)清晰多了。
都說(shuō)代碼是程序員的第二張臉,長(zhǎng)時(shí)間下來(lái),寫(xiě)的好的代碼定會(huì)受到大家的尊重。遵循一些簡(jiǎn)單的規(guī)范,寫(xiě)干凈一致的代碼!把個(gè)性用在寫(xiě)出最簡(jiǎn)單易懂的代碼上面,而不是晦澀冗余無(wú)用的代碼,甚至自我簽名!設(shè)計(jì)良好的結(jié)構(gòu)和模式,撰寫(xiě)干凈易懂的代碼,對(duì)空間的尊重,對(duì)代碼的尊重。這樣能贏得別人的尊重!記住代碼不是一次性的,需要重復(fù)的修改和重構(gòu),為未來(lái)寫(xiě)點(diǎn)代碼!
1,寫(xiě)干凈整潔的代碼
1.1 代碼格式化,包括多級(jí)代碼縮進(jìn)、大括號(hào)(比如C系代碼),為了提高代碼的美觀型和易讀性,區(qū)間與區(qū)間之間最好以一行*或-之類(lèi)的間距;
1.2 合理運(yùn)用空行??招锌梢杂脕?lái)隔開(kāi)相對(duì)獨(dú)立的代碼塊,有利于閱讀和理解。但是不要使用超過(guò)一行的空行,對(duì)空間,別太奢侈了;
2,命名規(guī)范命名包括函數(shù)、變量、類(lèi)(面向?qū)ο笾?、命名空間等;
2.1命名需要遵循由其命名便知道其意義的原則; 變量命名區(qū)分全局變量、導(dǎo)出變量、常量、局部變量,最好區(qū)分類(lèi)型(如果有的話(huà));
2.2 可采用業(yè)界的一些命名規(guī)范,比如匈牙利命名,但同一個(gè)項(xiàng)目必須統(tǒng)一;
3,高效使用注釋
3.1 注釋代碼段,注釋邏輯選擇。上面提到運(yùn)用空行分割開(kāi)邏輯相對(duì)獨(dú)立的代碼,那么請(qǐng)?jiān)诳招械南乱恍幸矊?xiě)點(diǎn)下面代碼段要干什么的語(yǔ)句吧。如果有if else等邏輯選擇的時(shí)候,麻煩也花幾秒鐘寫(xiě)上判斷的依據(jù)和結(jié)果好嗎?邏輯難懂且關(guān)鍵,您懂的!
3.2 為不容易理解類(lèi)變量注釋。類(lèi)變量特別是私有的類(lèi)變量沒(méi)有人要求注釋?zhuān)菫榱四軌蚩焖俚牧私饽硎镜氖鞘裁矗€是寫(xiě)點(diǎn)什么吧!您知道我英文不算好!
3.3 獨(dú)立的代碼模塊、文件、函數(shù)需要撰寫(xiě)注釋以說(shuō)明其實(shí)現(xiàn)意圖、原理、怎么使用等(比如函數(shù)的輸入輸出參數(shù)等),獨(dú)立的代碼文件和模塊(比如類(lèi))最好寫(xiě)上作者、日期、聯(lián)系方式、版本號(hào)等信息,以便后期做追蹤;
3.4 并不是注釋越多越好,相反,完全模塊化、結(jié)構(gòu)化的程序很多地方注釋完全可以精簡(jiǎn);
4,程序結(jié)構(gòu)化、模塊化
4.1 程序設(shè)計(jì)中有很多原則、設(shè)計(jì)模式,不同的語(yǔ)言、不同的情景可能會(huì)有些差異,但整體需要支持高類(lèi)聚、低耦合的設(shè)計(jì)實(shí)現(xiàn)方案;
4.2 養(yǎng)成寫(xiě)開(kāi)發(fā)文檔的習(xí)慣。對(duì)于每一個(gè)頁(yè)面設(shè)計(jì)(前接頁(yè),后接頁(yè)),包括功能說(shuō)明,頁(yè)面設(shè)計(jì),頁(yè)面名稱(chēng),存放位置等,應(yīng)當(dāng)有相應(yīng)的文檔記載。對(duì)于發(fā)生改動(dòng)的地方,需要保留原來(lái)的部分(注釋或備份),并說(shuō)明備份文件存放的地方,改動(dòng)時(shí)間,修改人;對(duì)于程序部分,應(yīng)該有相應(yīng)的設(shè)計(jì)流程,改動(dòng)的時(shí)候,也需要設(shè)計(jì)改動(dòng)流程圖,以便以后進(jìn)行對(duì)比,和查找問(wèn)題所在位置,以及問(wèn)題的嚴(yán)重性分析。
4.3 始終要記住的是你寫(xiě)出的代碼并不是給你一個(gè)人看的,你需要保證你的代碼清晰、一致,別的程序員能夠讀懂,團(tuán)隊(duì)里面最好定期有code review環(huán)節(jié)。
5,多讀優(yōu)秀的源代碼、多實(shí)踐
5.1 看別人代碼時(shí)要汲取好的方法和技巧。
5.2 接觸一項(xiàng)技術(shù)要深入了解和實(shí)踐,請(qǐng)問(wèn)您做過(guò)的系統(tǒng)您現(xiàn)在都可以從零開(kāi)始搭建起來(lái)了嗎,我的意思是架構(gòu)搭建哦!(以上部分內(nèi)容摘自https://blog.csdn.net/bullbat/article/details/9265351,作者:bullbat)

代碼寫(xiě)多了,總結(jié)出適合自己的代碼風(fēng)格
1、類(lèi)型的宏替換1)要求要求用“#ifndef”判斷是否之前被定義過(guò)。2)舉例

#ifndef GUA_U8

typedef unsigned char GUA_U8;

#endif

#ifndef GUA_U16

typedef unsigned short GUA_U16;

#endif

#ifndef GUA_U32

typedef unsigned long GUA_U32;

#endif

2、宏定義1)要求①宏全為大寫(xiě)的英文字母。 ②宏的名稱(chēng)應(yīng)能讀出其功能作用。2)舉例

#define GUA_RF_COMMUNICATION_JUDGMENT_FALSE 0

#define GUA_RF_COMMUNICATION_JUDGMENT_TRUE 1

3、變量1)要求①變量名稱(chēng)前的字母含義要求如下 g:global全局。 a:array數(shù)組。 s:static靜態(tài)。 c:const不變常數(shù)。 n:變量。 p:指針。 ②變量的名稱(chēng)應(yīng)能讀出其功能作用。2)舉例

GUA_U8 gaGUA_USART1_rx_buf[GUA_USART1_RX_SIZE] = {0};//全局?jǐn)?shù)組

GUA_U8 gnGUA_USART1_rx_buf = 0;//全局變量

GUA_U8 nGUA_USART1_rx_buf = 0;//局部變量

static GUA_U8 snGUA_USART1_rx_buf = 0;//靜態(tài)變量

const static GUA_U8 csnGUA_USART1_rx_buf = 0;//const類(lèi)型的靜態(tài)變量

GUA_U8 *gpGUA_USART1_rx_buf; //全局指針

3、if1)要求①“{”與“}”要對(duì)齊。 ②if與else的上方要注釋。2)舉例

//如果計(jì)數(shù)值大于10,則返回true

if(nGUA_Num > 10)

{

return true;

}

//如果計(jì)數(shù)值小于10,則返回false

else

{

return false;

}

4、switch1)要求①switch、case、default上都要注釋。 ②每種情況的具體處理由“{}”包含。2)舉例

//如果為0則關(guān)燈

switch(nbGUA_Char6[3])

{

//關(guān)燈

case 0x00:

{

P1_1 = 0; //拉低P11

P1SEL &= ~(1 << 1); //設(shè)置P11為IO口

P1DIR |= (1 << 1); //設(shè)置P11為輸出

break;

}

//開(kāi)燈

case 0x01:

{

P1_1 = 1; //拉高P11

P1SEL &= ~(1 << 1); //設(shè)置P11為IO口

P1DIR |= (1 << 1); //設(shè)置P11為輸出

break;

}

//其它

default:break;

}

5、文件及函數(shù)注釋1)文件注釋要求至少要包含文件名稱(chēng)、文件作用說(shuō)明、編碼人、最后修改時(shí)間。2)函數(shù)注釋要求至少要包含函數(shù)名稱(chēng)、函數(shù)作用說(shuō)明、形參含義、返回值含義、編碼人、最后修改時(shí)間。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4422

    瀏覽量

    67869
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4977

    瀏覽量

    74417

原文標(biāo)題:如何寫(xiě)出好代碼?附資深碼農(nóng)的個(gè)人代碼規(guī)范

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始實(shí)現(xiàn)中的一些功能?

    )。 如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始實(shí)現(xiàn)中的一些功能。 Example: I do not want to call arm_mat_trans_q15 powerquad
    發(fā)表于 04-03 06:37

    S32 Design Studio 有一些代碼文件示例,但它在本地計(jì)算機(jī)中不存在,為什么?

    S32 Design Studio 有一些代碼文件示例,但它在本地計(jì)算機(jī)中不存在。
    發(fā)表于 03-17 07:28

    【「龍芯之光 自主可控處理器設(shè)計(jì)解析」閱讀體驗(yàn)】+可測(cè)試性設(shè)計(jì)章節(jié)閱讀與自己的一些感想

    作為嵌入式底層開(kāi)發(fā),對(duì)第四章可測(cè)試性的內(nèi)容比較感興趣,因?yàn)榍度胧降讓娱_(kāi)發(fā)如何測(cè)試是個(gè)很重要的內(nèi)容,一些芯片的可測(cè)試性設(shè)計(jì)做得很好,就更方便調(diào)試與查找問(wèn)題有開(kāi)發(fā)。 所以就來(lái)閱讀下本章,分享下書(shū)中內(nèi)容
    發(fā)表于 01-15 23:30

    爬壁機(jī)器人磁鐵的一些常見(jiàn)問(wèn)題

    爬壁機(jī)器人近幾年比較火,它是類(lèi)能夠在垂直墻面、天花板、傾斜表面上移動(dòng)和作業(yè)的特種機(jī)器人,今天我們不聊其它,只聊下關(guān)于磁吸附應(yīng)用中的磁鐵,以下是小編整理的關(guān)于爬壁機(jī)器人中磁鐵的一些常見(jiàn)問(wèn)題。
    的頭像 發(fā)表于 01-09 10:06 ?458次閱讀
    爬壁機(jī)器人磁鐵的<b class='flag-5'>一些</b>常見(jiàn)問(wèn)題

    【「玩轉(zhuǎn)高速電路:基于ANSYS HFSS的無(wú)源仿真實(shí)例」閱讀體驗(yàn)】+本書(shū)概覽,內(nèi)容,特點(diǎn),問(wèn)題,與一些個(gè)人建議

    的羅列,那么書(shū)籍的價(jià)值就大大降低了, 這些基本操作看軟件文檔,搜索網(wǎng)絡(luò)即可獲取,所以出書(shū)還是要有一些樣的東西,要有作者自己的思考,總結(jié),經(jīng)驗(yàn),理論等層次的介紹。 缺乏必要的概念,理論,背景的介紹
    發(fā)表于 01-05 12:28

    C語(yǔ)言中一些令人震驚的結(jié)構(gòu)介紹

    C語(yǔ)言同意一些令人震驚的結(jié)構(gòu),下面的結(jié)構(gòu)是合法的嗎,如果是它做些什么? int a = 5, b = 7, c; c = a+++b; 考察點(diǎn): 這個(gè)問(wèn)題將作為這個(gè)測(cè)驗(yàn)的個(gè)愉快的結(jié)尾
    發(fā)表于 12-23 08:15

    關(guān)于六類(lèi)網(wǎng)線(xiàn)一些問(wèn)題的解答

    今天我們就圍繞網(wǎng)友一些常見(jiàn)的關(guān)于六類(lèi)網(wǎng)線(xiàn)的問(wèn)題進(jìn)行下匯總式解答: 問(wèn) 六類(lèi)網(wǎng)線(xiàn)可以當(dāng)電源用嗎? 答 六類(lèi)網(wǎng)線(xiàn)并不是設(shè)計(jì)用于傳輸電力的電纜,因此般不建議將其用于電源傳輸。 盡管六類(lèi)網(wǎng)線(xiàn)的線(xiàn)芯可以
    的頭像 發(fā)表于 12-09 11:13 ?780次閱讀

    貼片電容精度J±5%的一些詳細(xì)知識(shí)

    貼片電容精度J±5%表示電容的實(shí)際值與標(biāo)稱(chēng)值之間的偏差范圍在±5%以?xún)?nèi) ,以下是關(guān)于貼片電容精度J±5%的一些詳細(xì)知識(shí): 、精度等級(jí)含義 J±5% :字母“J”在貼片電容的標(biāo)識(shí)中通常表示標(biāo)稱(chēng)精度
    的頭像 發(fā)表于 11-20 14:38 ?1011次閱讀
    貼片電容精度J±5%的<b class='flag-5'>一些</b>詳細(xì)知識(shí)

    如果將蜂鳥(niǎo)的risc-v移植到其他的fpga中想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?

    請(qǐng)問(wèn)如果將蜂鳥(niǎo)的risc-v移植到其他的fpga中想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?
    發(fā)表于 11-10 06:35

    對(duì)浮點(diǎn)指令擴(kuò)展中一些問(wèn)題的解決與分享

    出現(xiàn)無(wú)法寫(xiě)的情況。 結(jié)論 以上就是我們組在擴(kuò)展浮點(diǎn)指令中出現(xiàn)的一些問(wèn)題,這些問(wèn)題總體上歸結(jié)于對(duì)蜂鳥(niǎo)的代碼沒(méi)有整體性的把握,對(duì)內(nèi)容的掌握程度還不夠。在后續(xù)的工作中應(yīng)注意理清功能的整體架構(gòu)而對(duì)所有的相關(guān)部分進(jìn)行修改。
    發(fā)表于 10-24 11:47

    蜂鳥(niǎo)E203的浮點(diǎn)指令集F的一些實(shí)現(xiàn)細(xì)節(jié)

    周期。 總結(jié) 本文介紹的內(nèi)容是為了完成基礎(chǔ)功能:對(duì)蜂鳥(niǎo)E203 RISC-V內(nèi)核的微架構(gòu)實(shí)現(xiàn)進(jìn)行定優(yōu)化,在添加F拓展的過(guò)程中的一些記錄。
    發(fā)表于 10-24 08:57

    Vivado浮點(diǎn)數(shù)IP核的一些設(shè)置注意點(diǎn)

    總結(jié) 本文介紹的內(nèi)容是為了完成基礎(chǔ)功能:對(duì)蜂鳥(niǎo)E203 RISC-V內(nèi)核的微架構(gòu)實(shí)現(xiàn)進(jìn)行定優(yōu)化,在添加F拓展的過(guò)程中的一些記錄。
    發(fā)表于 10-24 06:25

    求助,關(guān)于TC387使能以及配置SOTA 中一些問(wèn)題求解

    你好, 之前我拿到貴司給個(gè)demo,里面有一些使能以及配置SWAP的代碼, 這里有些疑問(wèn) 問(wèn)題1. 判斷SOTA功能是否生效,demo中使用的是 SCU_STMEM1中的bit位, 代碼
    發(fā)表于 08-08 07:31

    基于STM32 HAL庫(kù)與標(biāo)準(zhǔn)庫(kù)的ESP8266接入機(jī)智云方案(

    新手。在實(shí)際的開(kāi)發(fā)和移植過(guò)程中,還是會(huì)遇到不少問(wèn)題,當(dāng)前機(jī)智云平臺(tái)自動(dòng)生成的代碼與網(wǎng)上的一些舊的教程有差異?,F(xiàn)在,我將自己成功的開(kāi)發(fā)經(jīng)驗(yàn)總結(jié)出來(lái),手把手教大家如何進(jìn)
    的頭像 發(fā)表于 05-28 18:02 ?1348次閱讀
    基于STM32 HAL庫(kù)與標(biāo)準(zhǔn)庫(kù)的ESP8266接入機(jī)智云方案(<b class='flag-5'>一</b>)

    Debian和Ubuntu哪個(gè)好一些?

    兼容性對(duì)比Debian和Ubuntu哪個(gè)好一些,并為您揭示如何通過(guò)RAKsmart服務(wù)器釋放Linux系統(tǒng)的最大潛能。
    的頭像 發(fā)表于 05-07 10:58 ?1439次閱讀
    揭阳市| 遂溪县| 姜堰市| 鲁山县| 延边| 汝州市| 横峰县| 璧山县| 浑源县| 拜泉县| 博罗县| 嵊泗县| 巴彦县| 东丽区| 昌宁县| 唐海县| 安达市| 青海省| 本溪| 怀化市| 建德市| 屯门区| 鄂尔多斯市| 景东| 乐平市| 隆子县| 洪泽县| 吴江市| 乌拉特前旗| 福泉市| 甘孜| 温宿县| 九寨沟县| 紫金县| 灵山县| 太仓市| 镇坪县| 蒙山县| 临漳县| 高青县| 杭锦后旗|