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

我的工程实践是脱机手写汉字识别相关的,准备借助GoogLeNet作为网络重要模块,在GitHub上找到了基于GoogLeNet的图像分类算法开源项目。

 

(一)在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点;

代码的目录结构如下:

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第1张图片

1.文件名命名

dataset中主要存放训练测试数据集,以及相关标签数据;

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第2张图片

tools中:create_tf_record.py——图片生成训练数据

                VGG、inception_v1、inception_v3、mobilenet_v、resnet_v1——训练文件

               README.md——项目概要,向读者快速介绍这项工程

               predict.py——根据图片预测类别

2.类名/函数名/变量名命名

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第3张图片

以最基本的读取图片的函数为例,函数名(read_image),变量名(filename/height/width)都清晰明了,注释也相当清晰。

3.接口定义规范

在Python中接口由抽象类和抽象方法去实现,接口是不能实例化的,只能被别的类继承去实现相应的功能。

4.单元测试组织形式

对于test_image中的图片,用predict.py对于网络训练结果进行预测,来测试模型的效果。

 

(二)哪些做法符合代码规范和风格一般要求;

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第4张图片

1.命名规范

命名可读性强,且对于变量的注释详尽,对于其功能和用途的说明清晰到位。

2.缩进规范

代码整体看起来清晰规整,排版缩进等非常整齐。

3.注释规范

注释内容详细,不仅准确描述了“做了什么”,也说明了“为什么这么做”。

 

(三)列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;

分析一套源代码的代码规范和风格并讨论如何改进优化代码_第5张图片

部分代码一行过长,每一行的代码尽量不要超出80个字的长度,超出的回车排版, 方法名的冒号对齐。

 

(四)总结同类编程语言或项目在代码规范和风格的一般要求。

1.编码

如无特殊情况, 文件一律使用 UTF-8 编码 
如无特殊情况, 文件头部必须加入#--coding:utf-8--标识

2.格式

缩进:统一使用 4 个空格进行缩进

行宽:每行代码尽量不超过 80 个字符(在特殊情况下可以略微超过 80 ,但最长不得超过 120) ;

3.空行

模块级函数和类定义之间空两行; 类成员函数之间空一行;

4.空格

在二元运算符两边各空一格[=,-,+=,==,>,in,is not, and];

5.注释

行注释:行注释是与代码语句同行的注释。行注释和代码至少要有两个空格分隔。注释由#和一个空格开始

块注释:“#”号后空一格,段落件用空行分开(同样需要“#”号)

文档注释:作为文档的Docstring一般出现在模块头部、函数和类的头部,这样在python中可以通过对象的__doc__对象获取文档.编辑器和IDE也可以根据Docstring给出自动提示.

6.命名

模块:模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)

类名:类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头

 

函数名:函数名一律小写,如有多个单词,用下划线隔开

变量名:变量名尽量小写, 如有多个单词,用下划线隔开

常量名:常量使用以下划线分隔的大写命名

 

你可能感兴趣的:(分析一套源代码的代码规范和风格并讨论如何改进优化代码)