分析一套源代码的代码规范和风格并讨论如何改进优化代码

  • 要求:
  • 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;
  • 列举哪些做法符合代码规范和风格一般要求;
  • 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
  • 总结同类编程语言或项目在代码规范和风格的一般要求。

工程实践的主题是基于图片识别和深读学习的印章检测项目;在该工程实践中需要用到c++.Opencv对图片进行处理优化。在此列举Opencv的部分源码内容来完成本次作业内容。

 

Q1:该代码为opencv中缩放图片的一个函数,该类中所用到的其他类文件,由于篇幅问题不在赘述。在C++语言中,一般使用类创建对象,对对象的属性和行为进行抽象封装,从而更加方便的实现对象处理。

一般C++在创建项目时,都会对所需要用到的类文件进行创建,封装在头文件中方便在其他文件中打开和使用。

在图片所示的代码中,*sec表示目标文件,dst表示输出的文件,width表示宽度,cn表示缩放的比例。*src和*dst分别指向图片对象所在的多维数组,从而获取图片内容。

Q2:在opencv具体的源码中,对变量定义清晰明了,代码排列对齐方式规范简洁,注释内容清晰明了,无论对于整体代码的布局方式还是具体到函数调用封装都能够很好的达成代码规范的要求。

Q3:oepncv作为近年来热门的图像处理库,其代码在不断的更新和优化中已经趋于完备。暂时并没有发现有悖于“代码的简洁、清晰、无歧义”的基本原则的代码内容。

Q4:对于c++代码的规范,个人有以下几点看法:

1、变量的定义尽可能放在最开始处,功能相近的函数集中放在一起。

2、声明变量时对齐变量名,并在定义时写上注释。

3、函数间要使用空行分开,每个函数定义时写注释。

4、某一段代码写上具体的注释,标注具体完成什么功能。

5、函数或过程的开始、结构的定义及循环、判断等语句的代码都要采用缩进风格。

6、程序块的分界符“{”与“}”应各占一行。

7、工程项目中不起作用的文件、代码、变量等应删除。

8、说明性文件(如头文件.h文件、.inc文件、.def文件等)头部应写上注释。

9、程序要有作者信息、程序功能描述、版本信息、完成时间、修改日志等信息。

10、建议将常用头文件全部放入stdafx.h中,而每个cpp开始处嵌入stdafx.h。避免不必要的错误。

原文地址:https://www.cnblogs.com/Smarc/p/11660964.html