一、编码原则
1、可读性原则
清晰第一:清晰性是易于维护程序必须具备的特征。维护期变更代码的成本远远大于开发期,编写程序应该以人为本,计算机第二。一般情况下,代码的可阅读性高于性能,只有确定性能是瓶颈时,才应该主动优化。
简洁为美:简洁就是易于理解并且易于实现。代码越长越难以看懂,也就越容易在修改时引入错误。提倡通过简洁明了的代码来提升代码可靠性。废弃的代码要及时清除,重复代码应该尽可能提炼成函数。
风格一致:所有人共同分享同一种风格,为后期维护,和代码交接带来便捷。
2、设计原则
开放封闭原则:对于扩展是开放的,对于修改是封闭的。
单一职责原则:每一个子函数或者类似的代码块应该只有一个职责,所以只有一个原因会使其改变。
接口隔离原则:接口尽量细化,同时接口中的方法尽量少。
最少知道原则:一个子模块应该与其它模块保持最少的了解。
依赖倒置原则:高层模块,低层模块,细节(实现)都应该依赖抽象(即接口)。
二、编码规范
1、文件头申明
◎ 新增.c必须添加注释,标注公司名称、文件功能说明,创建日期、作者,后续修改说明 范例如下:
/*********************************************************************
* Copyright (c) Hehe,Ltd. All rights reserved.
* Description:用于详细说明此程序文件完成的主要功能,
* 与其他模块或函数的接口依赖等关系
*
* History:修改历史记录列表,包括修改日期、修改者及修改内容简述
* Date Author Modification:
* 2023-11-25 embedded-system create v1.0
*********************************************************************/
可配置Source Insight 自动生成模板。
2、文件
◎ 所有.h头文件必须采取阻止内容被包含多于一次的机制。
#ifndef __XXX__
#define __XXX__
#endif /*__XXX__*/
◎ 头文件对外接口,应放置对外部的声明,如对外提供的函数声明、宏定义、类型定义等。
◎ 内部使用的函数声明不应放在头文件中。
◎ 内部使用的宏、枚举、结构定义不应放入头文件中。
◎ 变量定义禁止在头文件中,应放在.c文件中。
◎ 模块内使用的全局变量,不应通过在头文件中声明的方式直接暴露给外部。
◎ 头文件中只包含接口的声明,不含实现。
◎ 头文件应当职责单一,头文件过于复杂,依赖过于复杂是导致编译时间过长的主要原因。
◎ 每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口。
◎ 禁止头文件循环依赖,禁止包含用不到的头文件。
◎ 每个.c源文件内容片段按如下顺序,文件注释-包含头文件-宏定义-数据结构定义-变量定义-引用外部变量-引用外部函数-本地函数-全局函数。 |