发 帖  

[经验] 【eBox生态圈】连载四:养成良好的编程习惯

2015-9-29 18:29:33  1623 STM32
收藏 0 收藏 推荐 0 推荐
分享
养成良好的编程习惯及其重要性

写代码要做到达则兼济天下,穷则独善其身,如果你是一个在做一个教程,代码要保证有良好、统一的风格,这样让用户看着舒服,增加用户的阅读体验,如果你只是给自己看,那也要做到现在的自己和之前的自己的一个兼容性,以提高写的代码的复用率,提高工作效率。

我简述下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······


cat_li 2015-11-24 09:31:44
好的编程习惯很重要,多谢楼主分享
回复

举报

michael_llh 2015-11-25 21:11:57
谢谢楼主分享,!讲的很好!!
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表