结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;
我的工程实践题目是 低功耗高可靠文件系统的设计与实现,本项目基于ESP32嵌入式开发平台,设计与实现低功耗、高可靠的文件系统。乐鑫为用户提供完整的软、硬件资源,进行 ESP32 硬件设备的开发。其中,乐鑫的软件开发环境 ESP-IDF 旨在协助用户快速开发物联网 (IoT) 应用,可满足用户对 Wi-Fi、蓝牙、低功耗等方面的要求。因此可以从github上ESP-IDF中直接下载ESP32 使用的 API(软件库和源码)。其主要使用的语言为c语言。但由于是嵌入式开发,因此还需要编写很多的配置文件以及引入官方提供的SDK进行开发。如下图所示:
根据上图可以看到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等
其他:左大括号“{”后和右大括号前“}”均不可出现代码;每行只能写一条代码;常数应定义为宏、枚举或常量;