在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

對于代碼規范的一些總結

GReq_mcu168 ? 來源:玩轉單片機 ? 2019-12-08 10:21 ? 次閱讀

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

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



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

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

代碼寫多了,總結出適合自己的代碼風格
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數組。 s:static靜態。 c:const不變常數。 n:變量。 p:指針。 ②變量的名稱應能讀出其功能作用。2)舉例

GUA_U8 gaGUA_USART1_rx_buf[GUA_USART1_RX_SIZE] = {0};//全局數組

GUA_U8 gnGUA_USART1_rx_buf = 0;//全局變量

GUA_U8 nGUA_USART1_rx_buf = 0;//局部變量

static GUA_U8 snGUA_USART1_rx_buf = 0;//靜態變量

const static GUA_U8 csnGUA_USART1_rx_buf = 0;//const類型的靜態變量

GUA_U8 *gpGUA_USART1_rx_buf; //全局指針

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

//如果計數值大于10,則返回true

if(nGUA_Num > 10)

{

return true;

}

//如果計數值小于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、文件及函數注釋1)文件注釋要求至少要包含文件名稱、文件作用說明、編碼人、最后修改時間。2)函數注釋要求至少要包含函數名稱、函數作用說明、形參含義、返回值含義、編碼人、最后修改時間。

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

    關注

    3

    文章

    4346

    瀏覽量

    62974
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69054

原文標題:如何寫出好代碼?附資深碼農的個人代碼規范

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

收藏 人收藏

    評論

    相關推薦

    AN29-關于DC-DC轉換器的一些想法

    電子發燒友網站提供《AN29-關于DC-DC轉換器的一些想法.pdf》資料免費下載
    發表于 01-08 13:57 ?0次下載
    AN29-關于DC-DC轉換器的<b class='flag-5'>一些</b>想法

    一些關于ldc1000的spi通信的問題求解

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

    Java代碼之美,從遵循樣式規范開始

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

    一些常見的動態電路

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

    分享一些常見的電路

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

    LED驅動器應用的一些指南和技巧

    電子發燒友網站提供《LED驅動器應用的一些指南和技巧.pdf》資料免費下載
    發表于 09-25 11:35 ?0次下載
    LED驅動器應用的<b class='flag-5'>一些</b>指南和技巧

    關于一些有助于優化電源設計的新型材料

    眾所周知,人們對更高電源效率的追求正在推動性能的全方位提升。材料科學的進步對于優化電源設計和開發更高效、更緊湊和更可靠的解決方案發揮著關鍵作用。下文列出了一些有助于優化電源設計的新材料。
    的頭像 發表于 08-29 15:26 ?502次閱讀

    二進制處理中的一些技巧

    在二進制和十進制的處理中,有時候一些小技巧是很有用的。 1、把十進制數轉換成二進制數 (1)在MATLAB中有個函數dec2bin,可以把正整數轉換為2進制 (2)對于負數有這樣
    的頭像 發表于 07-05 11:51 ?629次閱讀

    咨詢一些關于LED燈具的問題

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

    華為PCBA檢查規范設計總結

    福利來啦! 給大家分享《華為PCBA檢查規范設計總結
    的頭像 發表于 06-15 16:25 ?2241次閱讀
    華為PCBA檢查<b class='flag-5'>規范</b>設計<b class='flag-5'>總結</b>

    細談SolidWorks教育版的一些基礎知識

    SolidWorks教育版是款廣泛應用于工程設計和教育領域的三維建模軟件。它具備直觀易用的操作界面和強大的設計功能,為學生提供了個學習和實踐的平臺。在本文中,我們將詳細探討SolidWorks教育版的一些基礎知識,幫助初學者
    的頭像 發表于 04-01 14:35 ?394次閱讀

    PLC常用專業英文詞匯翻譯總結

    PLC編程中我們經常會遇到一些專業英文詞匯,對于入門的學員來說過理解起來是非常困難的。本文總結一些PLC常用專業英文詞匯,并做已翻譯。
    的頭像 發表于 03-19 11:40 ?2551次閱讀

    關于DPDK的一些常見問題

    對于單核多CPU部署,個CPU分配給操作系統,另個分配給基于DPDK的應用程序。對于多核部署,無論是否使用超線程,都可以為每個端口分配多個內核。
    的頭像 發表于 03-05 11:44 ?937次閱讀
    關于DPDK的<b class='flag-5'>一些</b>常見問題

    一些有關通信電路的資料?

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

    對于繪制USB DRP架構的一些疑問求解

    我正在繪制新系統的架構,對此有一些疑問: 1) 通常左側板有 20V 固定電源,將通過 TypeC 端口向右板提供 20V。 a) Vbus 通過 Mosfets 直接連接到 20V,如果談判失敗
    發表于 02-23 06:31
    主站蜘蛛池模板: 婷婷五月在线视频 | 一级特黄特黄的大片免费 | 免费不卡毛片 | 国产人成精品香港三级古代 | 久久精品免费观看视频 | 天天拍夜夜添久久精品中文 | 黄色拍拍拍| 在线精品91青草国产在线观看 | 日本三级网站在线线观看 | 国产在线美女 | 欧美一级视频在线高清观看 | 久久美女精品国产精品亚洲 | 色视频2| 天天激情站| 在线免费色| 成人欧美一区二区三区视频 | 三及毛片| 人人天天夜夜 | 视频 在线 | 亚洲一区二区三区免费 | 中文字幕在线播放不卡 | 一级一级一片免费高清 | 欧美巨波霸乳影院67194 | 午夜精品视频任你躁 | 福利视频一区二区牛牛 | 夜夜操夜夜骑 | 午夜免费福利视频 | 成年网站在线观看 | 精品手机在线 | 一级国产特黄aa大片 | 经典三级四虎在线观看 | 亚洲精品蜜桃久久久久久 | 欧美性久久久久 | 欧美一级欧美三级在线观看 | 人人爽人人澡 | 欧美亚洲综合另类型色妞 | 一级特黄aaa大片免色 | 天天综合射 | 久久国产乱子伦精品免费看 | 夜夜夜爽爽爽久久久 | 操夜夜|