总结的编码规范

1、宏定义格式:每个单词用下划线隔开。示例:

#define           XXX_YYY            20

#defineXXX_YYY20各用两个tab隔开

2、一律不得出现常量,对于出现的常量(指数字和字符串),用意义明显的宏定义(或枚举变量)代替。

3、每个函数体不能过长,原则上不超过200

4、每个文件不能过长,原则上不超过2500

5、类的规则:

(1)构造函数与析构函数放置在public下,并与其他public隔开

(2)消息映射函数统一放在一个public下,格式如下:

       LRESULT    

              OnXxx(

                              UINT uMsg,

                              WPARAM wParam,

                              LPARAM lParam,

         BOOL& bHandled);

3)函数的实现体格式:

BOOL

ClassName::FunctionA(CString strVal)

....................

6、函数中不出现复杂的计算公式,一律用宏定义代替,定义时,一定要注意变量加空格。

7、函数必须用意义明确的英文单词定义。

8、每个函数必须注释其功能(简单函数除外),重要变量也要注释其用处。

9、特殊变量的类型如果考虑到以后可能更改的话,用typedef来重定义一下,以后要该的话,只需更改一处就可以了。

注意要与模板编程联系到一起,做到类型“复用”。

10、CDCattachdetach要成对使用,GetDCReleaseDC成对使用。

切记,否则容易造成GDI句柄泄露

11、类指针的使用一定要判断当前指针是否为NULL

这个功能可以用一个宏定义来实现。如果类似的宏定义多的话,可以总结在一个单独的文件里

12、对于变量赋值二选一的操作,建议用三元操作符 ?:

15、如果一个宏是由两外两个宏计算得到一定要加括号。例如:

#define           MAX_CAND_NUM              (CANDCEL_ROW_NUM*CANDCEL_COL_NUM)

16、一个工程大致分为下面几部分:

(1)窗体的界面绘制类:负责子窗体的定位。

(2)消息处理类:绘制类中只负责接受消息,此类负责处理(12可以合并)。

(3)工具类:负责数据合法性校验。不能有成员变量,也不进行宏、常量的定义(除非必须),完全由传进来的参数,按照某种规则进行处理。

(4)数据处理类:负责数据的产生、处理。按照界面绘制类所需的格式进行返回,中间不需其他工具类的处理,但少量数据可以由工具类进行数据处理类和界面绘制类的中间转换。此类里不能有extern定义的全局变量的引用,如果需要则传引用。

  

17、在绘图函数中不要做与绘制不相关的一切操作,只允许对背景、图片、或显示的更改,其他任何操作都禁止,任何!

18、函数命名规则

1)获取某个字段。形式:修饰限定词 + Of + 字段名。 

20、利用抽象类等技术尽量提高代码的可重用性。(见例子

21、出了函数功能单一外,变量功能也要单一。即变量要尽量保持只有在循环、递归或者结果收集等他殊情况下,赋值次数才能够超过一次。

22、界面主程序尽量不含有与界面控制相关的变量、函数,这些变量、函数一律组合成一个合适的对象。

23、If等表达式的条件尽量简单,如果过于复杂则将复杂表达式(或其中一部分)的结果存放到一个临时变量,以此变量名称来解释表达式的用途。

24、对于构造函数比较好的写法是,使用所谓的member intialization list(成员初值列表)替换赋值动作,例如:

ABEntry:ABEntry():theName(name),numTimesConsulted(0)

{     }

常规构造函数如下,但效率通常不如上面的高。

ABEntry:ABEntry()

{    

theName = name ; numTimesConsulted = 0;

}

25、写类或者函数时候,要充分考虑将来所有的可能性。例如参数、返回值的类型有可能变动。例如一个函数CString  GetText  ( int  index );其实这个函数在将来有可能返回其他类型例如ushort类型,这个时候函数名也要随着更改,如果这个函数返回的是ushort类型,函数名却潜意识告诉我们他返回一个Text,,而Text容易让我们想到Cstring(或与之兼容或可以转换的类型,例如char *)。另外这个函数的参数index,也有可能更改因为我们有可能用一个CString,去索引另外一个CString

26、所有的数据都应该初始化,不管这是一个内置类型还是自定义类型。

27、关于数据结构、宏定义和常量定义最好都定义在一个单独的文件中,这样方便后来扩展时候使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为代码规范,适用 C/C++ 1 概述 ................................................................................................................................................................... 5 1.1 编写目的 ........................................................................................................................................... 5 1.2 文档约定 ........................................................................................................................................... 5 1.3 预期的读者和阅读建议 ................................................................................................................... 5 1.4 参考文献 ........................................................................................................................................... 5 2 排版要求 ........................................................................................................................................................... 5 2.1 程序块缩进 ....................................................................................................................................... 5 2.2 程序块之间空行 ............................................................................................................................... 5 2.3 长语句和长表达式 ........................................................................................................................... 6 2.4 循环、判断等长表达式或语句 ....................................................................................................... 7 2.5 长参数 ............................................................................................................................................... 7 2.6 短语句 ............................................................................................................................................... 8 2.7 条件、循环语句 ............................................................................................................................... 8 2.8 语句对齐 ........................................................................................................................................... 8 2.9 函数、过程和结构等语句块 ........................................................................................................... 9 2.10 程序块分界符 ................................................................................................................................... 9 2.11 操作符前后空格 ............................................................................................................................. 10 2.12 其他 ..................................................................................................................................................11 3 注释 ..................................................................................................................................................................11 3.1 有效注释量 ......................................................................................................................................11 3.2 公司标识 ..........................................................................................................................................11 3.3 说明性文件 ..................................................................................................................................... 12 3.4 源文件头 ......................................................................................................................................... 13 3.5 函数头部说明 ................................................................................................................................. 13 3.6 注释与代码一致 ............................................................................................................................. 14 3.7 注释内容 ......................................................................................................................................... 14 3.8 注释缩写 ......................................................................................................................................... 14 3.9 注释位置 ......................................................................................................................................... 14 3.10 变量、常量注释 ............................................................................................................................. 15 3.11 数据结构的注释 ............................................................................................................................. 15 3.12 全局变量 ......................................................................................................................................... 16 3.13 注释缩排 ......................................................................................................................................... 16 3.14 注释与代码之间空行 ..................................................................................................................... 17 3.15 变量定义、分支语句 ..................................................................................................................... 17 3.16 其他 ................................................................................................................................................. 19 4 标识符命名 ..................................................................................................................................................... 20 4.1 命名清晰 ......................................................................................................................................... 20 4.2 特殊命名需注释 ............................................................................................................................. 21 4.3 命名风格保持一致 ......................................................................................................................... 21 4.4 变量命名 ......................................................................................................................................... 21 4.5 命名规范与系统风格一致 ............................................................................................................. 22 4.6 其他 ................................................................................................................................................. 22 5 可读性 ............................................................................................................................................................. 23 5.1 运算符优先级 ................................................................................................................................. 23 第 3 页 共 69 页 5.2 避免直接使用数字作为标识符 ..................................................................................................... 24 5.3 其他 ................................................................................................................................................. 24 6 变量、结构 ..................................................................................................................................................... 25 6.1 公共变量 ......................................................................................................................................... 25 6.2 公共变量说明 ................................................................................................................................. 26 6.3 公共变量访问说明 ......................................................................................................................... 26 6.4 公共变量赋值 ................................................................................................................................. 26 6.5 防止局部变量与公共变量同名。 ................................................................................................. 26 6.6 严禁使用未经初始化的变量作为右值。 ...................................................................................... 26 6.7 其他 ................................................................................................................................................. 27 7 函数、过程 ..................................................................................................................................................... 34 7.1 对所调用函数的错误返回码要仔细、全面地处理。 .................................................................. 34 7.2 明确函数功能,精确(而不是近似)地实现函数设计。 .......................................................... 34 7.3 局部变量 ......................................................................................................................................... 34 7.4 全局变量 ......................................................................................................................................... 34 7.5 接口函数参数 ................................................................................................................................. 35 7.6 其他 ................................................................................................................................................. 35 8 可测性 ............................................................................................................................................................. 44 8.1 调测开关 ......................................................................................................................................... 44 8.2 打印信息 ......................................................................................................................................... 45 8.3 单元测试 ......................................................................................................................................... 45 8.4 集成测试 ......................................................................................................................................... 45 8.5 断言使用 ......................................................................................................................................... 45 8.6 设置与取消有关测试手段时,不能影响软件功能功能 .............................................................. 48 8.7 版本维护 ......................................................................................................................................... 48 8.8 其他 ................................................................................................................................................. 48 9 程序效率 ......................................................................................................................................................... 50 9.1 编程时要经常注意代码的效率。 ................................................................................................. 50 9.2 提高代码效率 ................................................................................................................................. 50 9.3 全局效率高于局部效率 ................................................................................................................. 51 9.4 提高代码空间效率 ......................................................................................................................... 51 9.5 循环体内工作量最小化 ................................................................................................................. 52 9.6 其他 ................................................................................................................................................. 53 10 质量保证 ................................................................................................................................................. 56 10.1 在软件设计过程中构筑软件质量。.............................................................................................. 56 10.2 代码质量保证优先原则 ................................................................................................................. 56 10.3 只引用属于自己的存贮空间。 ..................................................................................................... 56 10.4 防止引用已经释放的内存空间。 ................................................................................................. 56 10.5 内存及时释放 ................................................................................................................................. 57 10.6 文件句柄及时关闭 ......................................................................................................................... 57 10.7 防止内存操作越界 ......................................................................................................................... 58 10.8 认真处理程序所能遇到的各种出错情况 ...................................................................................... 59 10.9 初始化变量 ..................................................................................................................................... 59 10.10 数据一致性检查 ............................................................................................................................. 59 10.11 严禁随意更改其它模块或系统的有关设置和配置 ...................................................................... 59 10.12 不能随意改变与其它模块的接口 ................................................................................................. 59 第 4 页 共 69 页 10.13 系统接口 ......................................................................................................................................... 59 10.14 编程时,要防止差 1 错误 ............................................................................................................. 61 10.15 操作符检查 ..................................................................................................................................... 61 10.16 分支语句写完整 ............................................................................................................................. 62 10.17 使用 return 语句 .............................................................................................................................. 62 10.18 不要滥用 goto 语句 ........................................................................................................................ 62 10.19 其他 ................................................................................................................................................. 62 11 代码编辑、编译、审查 ......................................................................................................................... 65 11.1 打开编译器的所有告警开关对程序进行编译 .............................................................................. 65 11.2 在产品软件(项目组)中,要统一编译开关选项 ...................................................................... 65 11.3 通过代码走读及审查方式对代码进行检查。 .............................................................................. 65 11.4 测试部测试产品之前,应对代码进行抽查及评审 ...................................................................... 65 11.5 其他 ................................................................................................................................................. 65 12 代码测试、维护 ..................................................................................................................................... 67 12.1 单元测试要求至少达到语句覆盖 ................................................................................................. 67 12.2 单元测试开始要跟踪每一条语句,并观察数据流及变量的变化 .............................................. 67 12.3 清理、整理或优化后的代码要经过审查及测试。 ...................................................................... 67 12.4 代码版本升级要经过严格测试 ..................................................................................................... 67 12.5 使用工具软件对代码版本进行维护.............................................................................................. 67 12.6 正式版本上软件的任何修改都应有详细的文档记录 .................................................................. 67 12.7 其他 ................................................................................................................................................. 67 13 宏 ............................................................................................................................................................. 68 13.1 用宏定义表达式时,要使用完备的括号 ...................................................................................... 68 13.2 将宏所定义的多条表达式放在大括号中 ...................................................................................... 68 13.3 使用宏时,不允许参数发生变化 ................................................................................................. 69
PEP8是Python编码规范的官方指南,它旨在提供一种一致的编码风格,以促进代码的可读性和可维护性。它涵盖了代码布局、命名约定、注释、导入语句等方面的规范。 根据PEP8指南[2],以下是一些主要的编码规范要点: 1. 代码布局:使用4个空格作为缩进,不要使用制表符,并将每行代码的长度限制在79个字符以内。适当的缩进和代码对齐可以增强可读性。 2. 命名约定:变量和函数名应该用小写字母,单词之间使用下划线分隔,而不是驼峰命名法。类名应该使用驼峰命名法。 3. 注释:对于复杂的代码块或算法,请添加适当的注释来解释代码的目的和功能。注释应该以句号结尾,并且应该避免在代码中使用无意义或过多的注释。 4. 导入语句:每个导入应该独占一行,并按照标准库模块、第三方库模块和本地应用程序模块的顺序排列。每个模块导入应该写在文件的顶部,并且应该将标准库导入放在其他导入之前。 这只是PEP8指南的一小部分,你可以参考原文了解更多细节和规范。但是需要注意的是,根据中提到的几个理由,有时候可以忽略特定的规则。当遵循规范会降低代码可读性,与周围代码不一致,或需要兼容老版本Python时,可以考虑忽略某些规则。 总结答案: PEP8是Python的编码规范指南,它包含了代码布局、命名约定、注释和导入语句等方面的规范。它帮助提高代码的可读性和可维护性,使得多人合作开发更加便利。你可以在PEP8的原文中找到更多详细的规范。不过,需要注意的是,有时候根据实际情况,可以忽略特定的规则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值