分析一套源代码的代码规范和风格并讨论如何改进优化代码
Posted nigo666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析一套源代码的代码规范和风格并讨论如何改进优化代码相关的知识,希望对你有一定的参考价值。
工程实践题目与自然语言处理相关,其中主要项目涉及到聊天机器人的实现,于是在Github上下载了一个封闭领域的聊天机器人,并据此进行源代码的分析
Github地址:https://github.com/dennybritz/chatbot-retrieval/
以下是项目的文件目录结构
可以看到,文件夹主要分为models,notebooks,scripts三部分,其中,主要的类存放在scripts文件夹中,命名很清晰,hparams,models,test,train,让人能够很清楚地知道该文件包含的内容及作用。
以下是部分代码片段
可以看到,作者拥有良好的编码风格,例如,将所需使用的库在文件开头统一导入,同时,也在关键步骤之前写明了注释字符串。函数命名,例如get_features,很清晰。
让人可以从函数名读出其作用,方便学习,大部分函数命名采取下划线连接相关词的形式。这也是我们编码时应当学会的,尽量避免使用指向不明的变量、函数名,这样也有利于后来的人阅读,维护代码。
关于Python的编码规范:
python编码规范可以由阅读PEP-8文档得知,其中比较著名的就是缩进四个空格了,这也是PEP-8规范之一,现在在Pycharm中也可以查看PEP-8编码规范
列举一些常用的代码规范:
1.文件名、模块名和包名采用小写字母并且以下划线分隔单词的形式;
以本文项目为例:udc_train,udc_hparams
2.类名或异常名采用每个单词首字母大写的方式
如:BaseServer,ForkingMixIn,KeyboardInterrupt
- 将相关的类和顶级函数放在同一个模块里. 这一点不像Java, 不必限制一个类一个模块.
3.全局或者类常量,全部使用大写字母,并且以下划线分隔单词;
如:MAX_LOAD
4.其余变量命名包括方法名,函数名,普通变量名则是采用全部小写字母,并且以下划线分隔单词的形式命名。
如:my_thread
- 私有函数在函数前加一个下划线_
5.以上的内容如果是内部的,则使用下划线开头命名。
如:__init__,__new__
6.虽然Python同时支持单引号以及双引号的字符串表示,但按约定俗成的规定,一般还是以单引号表示字符,双引号代表字符串。
7.每行行宽一般不超过80个字符,最长不超过120个字符,pycharm会在相应位置划线。
下图最右便是pycharm中的线
以上是关于分析一套源代码的代码规范和风格并讨论如何改进优化代码的主要内容,如果未能解决你的问题,请参考以下文章