色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機(jī) ? 2019-12-08 10:21 ? 次閱讀

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

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



代碼不是一次性的,要為未來寫代碼

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

代碼寫多了,總結(jié)出適合自己的代碼風(fēng)格
1、類型的宏替換1)要求要求用“#ifndef”判斷是否之前被定義過。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)要求①宏全為大寫的英文字母。 ②宏的名稱應(yīng)能讀出其功能作用。2)舉例

#define GUA_RF_COMMUNICATION_JUDGMENT_FALSE 0

#define GUA_RF_COMMUNICATION_JUDGMENT_TRUE 1

3、變量1)要求①變量名稱前的字母含義要求如下 g:global全局。 a:array數(shù)組。 s:static靜態(tài)。 c:const不變常數(shù)。 n:變量。 p:指針。 ②變量的名稱應(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類型的靜態(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;

}

//開燈

case 0x01:

{

P1_1 = 1; //拉高P11

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

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

break;

}

//其它

default:break;

}

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

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

    關(guān)注

    3

    文章

    4333

    瀏覽量

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

    關(guān)注

    30

    文章

    4791

    瀏覽量

    68678

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一些關(guān)于ldc1000的spi通信的問題求解

    我有一些關(guān)于ldc1000的spi通信的問題。 應(yīng)用情況是spi16f887與ldc1000的spi通信 1.是否對(duì)于讀、寫,都是只需要把CSB變成低電平即可。 2.對(duì)于寫操作,寫地址時(shí)(例如
    發(fā)表于 12-26 08:23

    Java代碼之美,從遵循樣式規(guī)范開始

    至關(guān)重要。本文將帶你探索Java代碼的美學(xué),揭示那些能夠讓你的代碼既美觀又高效的樣式規(guī)范。無論是初出茅廬的新手還是經(jīng)驗(yàn)豐富的老手,都能從中獲得靈感,提升編碼的藝術(shù)。 、為什么要
    的頭像 發(fā)表于 11-27 11:42 ?212次閱讀
    Java<b class='flag-5'>代碼</b>之美,從遵循樣式<b class='flag-5'>規(guī)范</b>開始

    一些常見的動(dòng)態(tài)電路

    無論是模電還是數(shù)電,理論知識(shí)相對(duì)來說還是比較枯燥,各種電路原理理解清楚不算容易,換種生動(dòng)形象的方式或許會(huì)增加一些趣味性,也更容易理解這些知識(shí)。下面整理了一些常見的電路,以動(dòng)態(tài)圖形的方式展示。 整流
    的頭像 發(fā)表于 11-16 09:26 ?383次閱讀
    <b class='flag-5'>一些</b>常見的動(dòng)態(tài)電路

    分享一些常見的電路

    理解模電和數(shù)電的電路原理對(duì)于初學(xué)者來說可能比較困難,但通過一些生動(dòng)的教學(xué)方法和資源,可以有效地提高學(xué)習(xí)興趣和理解能力。 下面整理了一些常見的電路,以動(dòng)態(tài)圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發(fā)表于 11-13 09:28 ?324次閱讀
    分享<b class='flag-5'>一些</b>常見的電路

    LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:35 ?0次下載
    LED驅(qū)動(dòng)器應(yīng)用的<b class='flag-5'>一些</b>指南和技巧

    關(guān)于一些有助于優(yōu)化電源設(shè)計(jì)的新型材料

    眾所周知,人們對(duì)更高電源效率的追求正在推動(dòng)性能的全方位提升。材料科學(xué)的進(jìn)步對(duì)于優(yōu)化電源設(shè)計(jì)和開發(fā)更高效、更緊湊和更可靠的解決方案發(fā)揮著關(guān)鍵作用。下文列出了一些有助于優(yōu)化電源設(shè)計(jì)的新材料。
    的頭像 發(fā)表于 08-29 15:26 ?425次閱讀

    咨詢一些關(guān)于LED燈具的問題

    各位大佬,咨詢一些關(guān)于LED燈具的問題 120W的吸頂燈,用的非隔離式電源,用不到1年,燈具就會(huì)閃爍、頻閃或不亮,主要是什么原因造成的?是不是驅(qū)動(dòng)芯片太差?
    發(fā)表于 07-02 22:33

    華為PCBA檢查規(guī)范設(shè)計(jì)總結(jié)

    福利來啦! 給大家分享《華為PCBA檢查規(guī)范設(shè)計(jì)總結(jié)
    的頭像 發(fā)表于 06-15 16:25 ?2166次閱讀
    華為PCBA檢查<b class='flag-5'>規(guī)范</b>設(shè)計(jì)<b class='flag-5'>總結(jié)</b>

    細(xì)談SolidWorks教育版的一些基礎(chǔ)知識(shí)

    SolidWorks教育版是款廣泛應(yīng)用于工程設(shè)計(jì)和教育領(lǐng)域的三維建模軟件。它具備直觀易用的操作界面和強(qiáng)大的設(shè)計(jì)功能,為學(xué)生提供了個(gè)學(xué)習(xí)和實(shí)踐的平臺(tái)。在本文中,我們將詳細(xì)探討SolidWorks教育版的一些基礎(chǔ)知識(shí),幫助初學(xué)者
    的頭像 發(fā)表于 04-01 14:35 ?345次閱讀

    PLC常用專業(yè)英文詞匯翻譯總結(jié)

    PLC編程中我們經(jīng)常會(huì)遇到一些專業(yè)英文詞匯,對(duì)于入門的學(xué)員來說過理解起來是非常困難的。本文總結(jié)一些PLC常用專業(yè)英文詞匯,并做已翻譯。
    的頭像 發(fā)表于 03-19 11:40 ?2432次閱讀

    一些有關(guān)通信電路的資料?

    有關(guān)嵌入式之間DSP、ARM、FPGA三者之間和這三款芯片和外部電路之間通信的一些資料,比如說芯片之間的并行通信和芯片和外部電路之間的串行通信,MODBUS、DP、CAN等,一些一些常用的通信協(xié)議的
    發(fā)表于 03-03 18:53

    對(duì)于繪制USB DRP架構(gòu)的一些疑問求解

    我正在繪制新系統(tǒng)的架構(gòu),對(duì)此有一些疑問: 1) 通常左側(cè)板有 20V 固定電源,將通過 TypeC 端口向右板提供 20V。 a) Vbus 通過 Mosfets 直接連接到 20V,如果談判失敗
    發(fā)表于 02-23 06:31

    一些無功補(bǔ)償裝置SVG的資料

    一些SVG電路原理和功能碼相關(guān)的技術(shù)說明書,想了解一些SVG的工作原理和工作過程
    發(fā)表于 02-03 10:13

    PSOC Creator 4.4中是否有一些設(shè)置可以阻止strtok操作?

    我需要一些幫助才能開始使用這個(gè)功能。 我做了個(gè)簡(jiǎn)單的代碼,意圖用逗號(hào)作為分隔符來標(biāo)記字符串。 我嘗試在 PC 上模擬以下代碼并將其改編為 PSoc5LP: [i]int 主要 ()
    發(fā)表于 01-24 08:31

    有關(guān)通信協(xié)議時(shí)一些問題?

    工業(yè)上應(yīng)用到許多種協(xié)議,按通信同時(shí)刻發(fā)送的數(shù)據(jù)位數(shù)分為串行通信和并行通信,首先我見并行通信多在芯片之間進(jìn)行通信,而串行通信則在外部設(shè)備和芯片之間進(jìn)行的一些通信,對(duì)于常見的串行通信,比如
    發(fā)表于 01-14 00:58
    主站蜘蛛池模板: 性XXXXX搡XXXXX搡景甜| 又黄又肉到湿的爽文| 秋霞伦理机在线看片| 欧美一区二区三区激情视频| 青草在线观看视频| 色悠久久久久综合欧美99| 天天澡夜夜澡人人澡| 我们日本在线观看免费动漫下载| 亚洲成人黄色片| 伊人角狠狠狠狠| 97色伦图区97色伦综合图区| XXX国产麻豆HD真实乱| 国产不卡无码高清视频| 国语对白嫖老妇胖老太| 亚洲国产精品嫩草影院久久| 免费精品国产人妻国语| 欧美日韩精品一区二区三区四区 | 99热婷婷国产精品综合| 成人特级毛片| 国产一区二区高清| 麻豆产精品一二三产区区| 强奷乱码欧妇女中文字幕熟女| 桃隐社区最新最快地址| 夜夜躁日日躁狠狠| 99视频在线免费看| 国产国产人免费观看在线视频| 国产中文字幕乱码免费| 美女脱18以下禁止看免费| 肉伦禁忌小说np| 一本久道视频无线视频| 99热久久视频只有精品6| 国产精品久久自在自2021| 久久精品一区二区免费看| 人妻兽虐曲| 亚洲偷自拍精品视频在线观看 | 手机移动oa| 日本特黄网站| 亚洲毛片网| 一边亲着一面膜下的免费过程| 9久高清在线不卡免费无吗视频| 国产高清视频免费最新在线|