我的工程实践选题是“加密类图章的智能检测”。下面结合工程实践选题分析这个项目源代码的代码规范与编程风格。
(1)目录结构
由于是一个python项目,所以采用pycharm软件进行编程实现,下面是代码的在pycharm下目录结构:目录结构符合一般项目结构布局,较为简洁明了。
(2)类名/函数名/变量名等命名采用的是 Snake Case方式这是书写复合词或短语的一种惯例(practice)。复合词或短语中的各个单词之间用下划线(_)分隔并且没有空格。复合词中的每一个单词的首字母通常都是小写的,并且复合词的第一个字母既可以是大写的又可以是小写的,例如:“foo_bar”和“Hello_world”。一般认为 Snake Case 的可读性要比 Camel Case 要强。而文件名采用的是按照存放的内容进行命名。下面两张图分别展示了文件名命名方法和类名/函数名/变量名等命名等命名方法。
(3)接口定义规范,以其中一个函数为例,函数封装了功能实现,调用时给出指定参数即可,部分参数给出默认参数,缺省时可按默认值传入。直接将功能封装在函数内部,调用函数传递指定参数即可实现。程序开发过程中,写代码是为了实现需求。当我们的代码通过了编译,只是说明它的语法正确,功能能否实现则不能保证。 因此,当我们的某些功能代码完成后,为了检验其是否满足程序的需求。可以通过编写测试代码,模拟程序运行的过程,检验功能代码是否符合预期。单元测试的特点就是开发者编写一小段代码,检验目标代码的功能是否符合预期。通常情况下,单元测试主要面向一些功能单一的模块进行。所以在此项目项目中,每当实现一部分功能,就测试具体的要求是否能实现。
(4)下面的一些做法符合代码规范和风格一般要求,比如
4.1 代码中的命名没有使用拼音与英文混合的方式,也没有直接使用中文的方式
4.2 类名/函数名/变量名等命名采用的是 Snake Case方式
4.3 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词
(5)下面做法有悖于“代码的简洁、清晰、无歧义”的基本原则
比如常量并没有采用写方式,类名/函数名/变量名等命名有点混乱,有个别采用驼峰命名规范,另外程序的注释太少。
优化方法就是,改进常量的命名方式,规范类名/函数名/变量名的命名。可以按照一个命名规范统一改进。
(6)同类编程语言或项目在代码规范和风格的一般要求如下
6.1 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束
6.2 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式
6.3 类名使用UpperCamelCase风格,必须遵从驼峰形式(某些情况诸如领域模型相关的命名除外);方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式
6.4 常量命名全部大写,单词间用下划线隔开
6.5 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词