| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 编码规范笔记 -> 正文阅读 |
|
[开发测试]编码规范笔记 |
????????仅个人总结学习使用,实际以公司的编码规范为准,还在不断学习补充中... 一、版式? 1.1?程序块要采用缩进风格编写,缩进的空格数为4个 ????????由开发工具自动生成的代码可能不一致,但如果开发工具可以配置,则应该统一配置缩进为 4 个空格。使用Tab键需要设置Tab键的空格数目是4格。 1.2?相对独立的程序块之间、变量说明之后必须加空行 ? ? ? ? 1)函数之间应该用空行分开; ? ? ? ? 2)用空行将代码按照逻辑片段划分; 1.3?较长的语句(大于80字符)要分成多行书写 ????????操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 1.4?一行只写一条语句 ? ? ? ? 一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。 1.5?if、for、while、switch、case等语句自占一行,且if、for、while等语句的执行语句部分无论多少都要加括号{} 1.6?代码行之内应该留有适当的空格 ? ? ? ? 1)关键字之后要加空格; ? ? ? ? 2)","之后要加空格; ? ? ? ? 3)";"不是一行的结束符号时要加空格; ? ? ? ? 4)值、比较、算术、逻辑等二元操作符的前后应当加空格; 1.7?程序块分界符"{"和"}"应各独占一行并位于同一列,同时与引用他们的语句左对齐 二、注释 2.1 注释应该和代码同时更新,不再有用的注释要删除 2.2 注释内容要清楚明了,不能有二义性 2.3 避免在注释中出现非常用的缩写或者术语 2.4 避免非必要的注释 2.5 注释的目的应该是解释为什么这么做,而不是正在做什么。如果从上下文不容易看出作者的目的,说明程序的可读性本身存在比较大的问题,应考虑对其重构 2.6 注释版式也需要与代码一样整齐排版 ????????1)注释应与其描述的代码相近,对代码的注释应放在其上方或者右方; ????????2)注释与所描述内容进行同样的缩排; ????????3)将注释与其上面的代码用空行隔开; 2.7 对重要的变量需要编写注释,特别是全局变量,更应有较详细的注释,包括对其功能、取值范围、以及存取时注意事项等说明 2.8 注释不宜过多,也不能太少,源程序中有效注释量控制在20%~30%之间 三、标识符命名 3.1 变量的命名法 ????????1)驼峰命名法:标识符的首字母小写,而后面连接的每个单词的首字母都大写(推荐); ????????2)Pascal命名法:标识符的首字母和后面连接的每个单词的首字母都大写; ????????3)匈牙利命名法:变量名=属性名+类型+对象描述; 3.2 枚举类型enum常量应以大写字母开头 3.3 函数名以大写字母开头,采用谓-宾结构(动-名),且应反应函数执行什么操作以及返回什么内容 四、变量、结构 4.1 尽量少使用全局变量,尽量去掉没必要的公共变量 ? ? ? ? 公共变量是增大模块间耦合的原因之一,应减少不必要的公共变量以降低模块间的耦合度。 4.2 尽量减少没有必要的数据类型默认转换与强制转换 ? ? ? ? 当进行数据类型强制转换时,其数据的意义、转换后的取值等都有可能发生变化,而这些细节若考虑不周,很可能留下隐患。 五、函数、过程 5.1 函数的规模尽量限制在100行以内(不包括注释和空行) 5.2 一个函数仅完成一个功能 ? ? ? ? 多功能集于一身的函数,很可能使函数的理解、测试、维护等变得困难。 六、程序效率 6.1 在保证正确性、稳定性、可读性及可测性的前提下,提高代码效率 6.2 避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中 ? ? ? ? 减少判断次数。一般情况,与循环变量无关的判断语句可移到循环体外,有关的则不可以。 6.3 在逻辑清楚且不影响可读性的情况下,代码越少越好 6.4 尽量复用已有的质量较好的代码,直接调用已有的API |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 23:50:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |