码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-08 22:18:19      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:end   项目   san   导入   alt   raw   rest   变量命名   最大   

  我的工程实践选题是搜索引擎相关,所以我从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.开发时使用中文注释,发布时再写英文文档

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

标签:end   项目   san   导入   alt   raw   rest   变量命名   最大   

原文地址:https://www.cnblogs.com/zxy1122/p/11637937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!