连载四:养成良好的编程习惯
写代码要做到达则兼济天下,穷则独善其身,如果你是一个在做一个教程,代码要保证有良好、统一的风格,这样让用户看着舒服,增加用户的阅读体验,如果你只是给自己看,那也要做到现在的自己和之前的自己的一个兼容性,以提高写的代码的复用率,提高工作效率。
我简述下eBox中代码编写过程的一些规则,旨在提供参考,让用户更容易理解代码的内容。用户在编写驱动文件的时候希望也采纳这种风格,以确保在今后长期的发展中保持代码的兼容性。
eBox中的命名规则
最重要的一致性规则是命名管理,命名风格直接可以直接确定命名实体是:类型、变量、函数、常量、宏等等,无需查找实体声明,我们大脑中的模式匹配引擎依赖于这些命名规则。
命名规则具有一定随意性,但相比按个人喜好命名,一致性更重要,所以不管你怎么想,规则总归是规则。
1.变量命名
所有单词全部使用标准的小写单词,单词与单词之间使用下划线进。名字的命名要是一个具有描述性的名字,不要过度缩写,类型和变量应该是名词,
类型和变量名:一般为名词:如num_errors。对象名词在前,描述性名词、形容词在后。
全局变量:少用,可以加g_修饰,使他易与局部变量区分。
常用局部变量:i、j、k、m、n不要在使用别的奇葩的单字母局部循环变量。
缩写:除非放到项目外也非常明了,否则不要使用缩写。
常用的缩写: ret、err、tmp、recv等;
在eBox中出现特定的缩写:
GPIO: General Purpose Input Output
SPI: Serial Peripheral Interface
I2C: Inter-Integrated Circuit
USART: Universal Synchronous/AsynchronousReceiver/Transmitter
2.函数命名
所有单词全部使用标准的小写单词,单词与单词之间使用下划线进。不要过度缩写,函数名可以用“命令性”动词。
函数名:通常是指令性的,如set_alarm()、set_num_errors(),访问函数需要描述的更细致,要与其访问的变量相吻合。动词在前,名词在后。
3.类型命名
类型命名每个单词以大写字母开头,不包含下划线:MyExcitingClass、MyExcitingEnum。
所有类型命名——类、结构体、类型定义(typedef)、枚举——使用相同约定。
注意:由于最开始写固件库的时候没有太注意这个规则。目前ebox在的所有类型名称都是以全部大写命名。以后会根据需要进行适当的规范化。
4.枚举命名(Enumerator Names)
枚举值应全部大写,单词间以下划线相连:MY_EXCITING_ENUM_VALUE。
枚举名称属于类型,因此大小写混合:UrlTableErrors。
5.宏命名(Macro Names)
一般采用全部大写,多个单词之间添加“_”以作区分。
#define UART_MAX_SEND_BUF 128
只有有良好的传承才会有更好的发展!
我的众筹项目地址:http://z.elecfans.com/30.html 期待大家一起来完善和发展eBox,打造国人自己的库,不仅仅支持STM32,更能支持飞思卡尔MCU、NXP MCU······
好的编程习惯很重要,多谢小编分享
谢谢小编分享,!讲的很好!