分析一套源代碼的代碼規範和風格並討論如何改進優化代碼

結合工程實踐選題相關的一套源代碼,根據其編程語言或項目特色,分析其在源代碼目錄結構、文件名/類名/函數名/變量名等命名、接口定義規範和單元測試組織形式等方面的作法和特色;git

個人工程實踐題目是 低功耗高可靠文件系統的設計與實現,本項目基於ESP32嵌入式開發平臺,設計與實現低功耗、高可靠的文件系統。樂鑫爲用戶提供完整的軟、硬件資源,進行 ESP32 硬件設備的開發。其中,樂鑫的軟件開發環境 ESP-IDF 旨在協助用戶快速開發物聯網 (IoT) 應用,可知足用戶對 Wi-Fi、藍牙、低功耗等方面的要求。所以能夠從github上ESP-IDF中直接下載ESP32 使用的 API(軟件庫和源碼)。其主要使用的語言爲c語言。但因爲是嵌入式開發,所以還須要編寫不少的配置文件以及引入官方提供的SDK進行開發。以下圖所示:github

 

 

 

 

根據上圖能夠看到components、docs、examples、make、tools五個文件夾,對它們的介紹以下所示:編程

components:ESP-IDF的核心組件編程語言

docs:ESP-IDF相關文檔函數

examples:ESP-IDF提供的示例程序,包括衆多外設、Wi-Fi、藍牙等demo工具

make:EPS-IDF工程管理目錄單元測試

tools:ESP-IDF提供的工具集測試

esp-idf裏面有一個名字example的文件夾,裏面有不少樂鑫例程,可經過裏面例程入門esp32,以hello_world爲例:優化

 

 

 

 

文件名、類名、函數名、變量名等命名
本項目的各類命名均十分符合命名的規範,單詞中間用_分隔,不管是函數名仍是變量名、類名、文件名都是用下劃線將英語簡寫鏈接起來,便於咱們知道含義。

接口定義規範設計

 在C語言中,或者說全部的編程語言中,接口就是Application Programming Interface(API)的中文說法,即一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工做機制的細節。在C語言中,接口就是函數。本項目的接口定義十分規範。
 

列舉哪些作法有悖於「代碼的簡潔、清晰、無歧義」的基本原則,及如何進一步優化改進;

不少同窗在入門編程時,有一些很很差的習慣,最突出的就是命名。命名要遵循簡潔明瞭的原則,令人一看就能明白這個變量或者函數是什麼意思。在經歷屢次練習以後 ,相信必定會有所改進的。

總結同類編程語言或項目在代碼規範和風格的通常要求。

 

註釋:程序中必須有清晰的註釋;每一個函數(除main函數外)都要註釋功能說明;代碼中要有適當的註釋說明代碼的做用。

縮進:用空格和Tab都可,可是二者不要混用

標識符命名:標識符由字母(A-Z,a-z)、數字(0-9)、下劃線「_」組成,而且首字符不能是數字,但能夠是字母或者下劃線,例如正確的標識符:abc,a1,prog_to;

                      不能把C語言關鍵字做爲用戶標識符,例如if ,for, while等

其餘:左大括號「{」後和右大括號前「}」均不可出現代碼;每行只能寫一條代碼;常數應定義爲宏、枚舉或常量;

相關文章
相關標籤/搜索