91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

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

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



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

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

代碼寫多了,總結(jié)出適合自己的代碼風格
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)要求①宏全為大寫的英文字母。 ②宏的名稱應能讀出其功能作用。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:指針。 ②變量的名稱應能讀出其功能作用。2)舉例

GUA_U8 gaGUA_USART1_rx_buf[GUA_USART1_RX_SIZE] = {0};//全局數(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)要求①“{”與“}”要對齊。 ②if與else的上方要注釋。2)舉例

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

if(nGUA_Num > 10)

{

return true;

}

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

else

{

return false;

}

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

//如果為0則關燈

switch(nbGUA_Char6[3])

{

//關燈

case 0x00:

{

P1_1 = 0; //拉低P11

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

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

break;

}

//開燈

case 0x01:

{

P1_1 = 1; //拉高P11

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

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

break;

}

//其它

default:break;

}

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

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

    關注

    3

    文章

    4417

    瀏覽量

    67538
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73999

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    爬壁機器人磁鐵的一些常見問題

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

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

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

    C語言中一些令人震驚的結(jié)構介紹

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

    關于六類網(wǎng)線一些問題的解答

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

    貼片電容精度J±5%的一些詳細知識

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

    對浮點指令擴展中一些問題的解決與分享

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

    蜂鳥E203的浮點指令集F的一些實現(xiàn)細節(jié)

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

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

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

    求助,關于TC387使能以及配置SOTA 中一些問題求解

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

    Debian和Ubuntu哪個好一些?

    兼容性對比Debian和Ubuntu哪個好一些,并為您揭示如何通過RAKsmart服務器釋放Linux系統(tǒng)的最大潛能。
    的頭像 發(fā)表于 05-07 10:58 ?1157次閱讀

    如何添加一些網(wǎng)絡上的庫到mpy固件的說明或手冊教程?

    下有沒有關于如何添加一些網(wǎng)絡上的庫到mpy固件的說明或手冊教程? 問題2: 關于mpy的image庫在哪里能了解學習內(nèi)部代碼,只了解一些python,想知道怎么從c轉(zhuǎn)換成mpy能調(diào)用的,自己寫的c也能轉(zhuǎn)成py調(diào)用
    發(fā)表于 04-29 08:16

    11節(jié)PCB實際案例課程+大廠內(nèi)部PCB設計規(guī)范文檔(13920字)

    資料介紹 每個課程1個半小時左右,都是講具體設計案例,非常詳細,需要的朋友自取~ 設計規(guī)范就更基礎一些!尤其對于新手來說,從PCB的設計步驟到阻抗計算、bom分析全部都有涉及,還有一些
    發(fā)表于 04-02 15:28

    樹莓派在自動化控制項目中的一些潛在應用

    自動化控制項目中的一些潛在應用。之前,我們已經(jīng)為Arduino平臺探討了相同的話題。我們確定Arduino是個出色的教育工具,但由于一些限制,它無法在工業(yè)環(huán)境中完全
    的頭像 發(fā)表于 03-25 09:45 ?625次閱讀
    樹莓派在自動化控制項目中的<b class='flag-5'>一些</b>潛在應用

    在i.MX RT 1176上正常運行代碼時與使用IAR調(diào)試代碼時存在一些奇怪的差異,為什么?

    我在 i.MX RT 1176 上正常運行代碼時的行為與使用 IAR 調(diào)試代碼時的行為之間存在一些奇怪的差異,并注意到這是由于堆棧指針的初始化方式造成的。 我的重置向量表將其指向 DTC 的頂部
    發(fā)表于 03-17 07:26