分析一套源代码的代码规范和风格并讨论如何改进优化代码
Posted zxy1122
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析一套源代码的代码规范和风格并讨论如何改进优化代码相关的知识,希望对你有一定的参考价值。
我的工程实践选题是搜索引擎相关,所以我从github上下载了一个python构建搜索引擎的项目,试图从此项目展开分析代码规范和原则。
1. 目录结构及文件命名
2.函数名和变量名等命名
在python编程规范里,除类名使用驼峰法以外,其他模块、函数、方法、变量均使用全小写+下划线。项目中类的命名没有符合此项规范,函数和变量命名符合规范
class Doc
class IndexModule
class RecommendationModule
def is_number(self, s)
def clean_list(self, seg_list)
def write_postings_to_db(self, db_path)
def construct_postings_lists(self)
def write_k_nearest_matrix_to_db(self)
def construct_dt_matrix(self, files, topK = 200)
def construct_k_nearest_matrix(self, dt_matrix, k)
def gen_idf_file(self)
def find_k_nearest(self, k, topK)
def get_news_pool(root, start, end)
def crawl_news(news_pool, min_body_len, doc_dir_path, doc_encoding)
3. 接口定义规范和单元测试组织形式
在此项目中,使用unittest模块进行单元测试,TestCase 也就是测试用例,TestSuite 多个测试用例集合在一起,就是TestSuite,TestLoader是用来加载TestCase到TestSuite中的,TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了少,失败了多少等信息。
4. 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
项目中几乎没有注释文档,对后面读代码的人很不友好。开发者应该在编写代码的过程中加入必要清晰的注释,既帮助自己整理思路,也能方便后续的代码维护。部分模块没有使用面向对象的思想,个别变量命名只有一个单词,表意不够直观。接口不完全统一,无法直接生成接口帮助文档。此外,作者对代码的空格缩进和换行把握不好,没有符合python编程规范。
5. 总结同类编程语言或项目在代码规范和风格的一般要求。
a.只使用空格缩进
b.使用UTF-8编码
c.每行只写一条语句
d.使用行末反斜杠折叠长行,限制每行最大79字符
e.导入包:每行唯一、从大到小、绝对路径
f.类内方法空1行分隔,类外空2行分隔
g.运算符除
* 外,两边空1格分隔,函数参数=周围不用空格
h.除类名使用驼峰法以外,其他模块、函数、方法、变量均使用全小写+下划线
i.1个前导下划线表示半公开,2个前导下划线表示私有,与保留字区分使用单个后置下划线
j.开发时使用中文注释,发布时再写英文文档
以上是关于分析一套源代码的代码规范和风格并讨论如何改进优化代码的主要内容,如果未能解决你的问题,请参考以下文章