1.分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点
我的工程实践题目是人脸识别相关的题目,于是我找了几个这方面的代码项目查看学习了一下。
如上图所示是一套源代码的目录,目录结构清晰,一目了然,文件文件名也比较规范,里面也有单元测试内容,项目采用python,python因为简洁易用,拥有强大的科学库,数据处理库,广泛应用于视频处理分析。
2.列举哪些做法符合代码规范和风格一般要求;
我们来看一下项目里面的部分代码,视频分析首先要进行人脸的识别,这部分代码就是人脸采集的部分代码展示,我用jupyter notebook打开运行从代码规范来看,代码清晰,变量命名易于理解,注释详细,可读性强,容错性强,比较优秀。对于程序学习者来说来说,每一个函数都有详细的说明注释,这使得学习更加快速方便,方便代码的共享。
3.列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
代码采用模块的方式来编写,每一段代码都有明确的意义,看起来整洁,一目了然,基本没啥有悖于代码简洁、清晰的原则,可能刚刚学习这块,没能发现,接下来学习阅读比较多的代码应该会更加好掌握代码规范。
4.总结同类编程语言或项目在代码规范和风格的一般要求。
Python作为一种程序语言,追求简单,保持简单,以下为Python的常见代码规范要求。
1.命名
函数、变量及属性都应该用小写单词拼写,只见用_连接,不遵循驼峰命名法
类与异常应该首字母大写,不要用_连接
受保护的实例属性,应以单下划线开头
实例的私有属性,应以上下划线开头
模块级别的变量单词都要大写,中间以单下划线隔开
变量要尽可能有意义
2.空白
和语法相关的每一层缩进都用4个空格表示
赋值时等号两边都要有一个空格
每一行所占用的字符数应不超过79,实际操作中应当尽量不让代码编辑器的行滚动条显示出来
在使用函数进行函数式编程时,函数之间要空两行
3.语句
判断变量是否为None、False或True时不要用==,要用is,例如,if a is None
import语句应放在句首,导入时要尽量使用绝对导入不要使用相对导入,并且导入时最好指定相应的模块的某一具体功能,例如,from datetime import datetime
模块导入时应根据标准库模块、第三方模块以及自用模块进行分类
检测容器不为空时,应使用if 容器名,例如,lists = [] if lists
采用内联形式的否定词,不要把否定词放在整个表达式的前面,例如,应该if a is not None 而不是 if not a is None
4.注释
对某些重要的代码块的功能说明,应使用单行注释
对整个模块功能的说明应使用多行注释
对类或函数的功能及使用方法的详细说明应使用文档字符串
python的注释尽量使用英文