优化计划(TBD)

Code Style

首先安装配置好自动化 pep8 格式化插件,确保所有新提交或有新修改的代码文件都严格的符合 pep8 格式要求。

然后逐步的完善代码注释。

评估:

是否影响线上 对代码的影响 对部署的影响

Package Dependence

分为两大部分,分别是对依赖打包,和对项目自身打包。

对依赖打包

首先可将 submodule 的依赖改为 package 形式,使用 pip 直接从 gitlab 安装。

这个的影响较小,但是线上的代码都需要重新安装一次(所以可以考虑和对项目打包一起做)。

需要:

评估:

是否影响线上 对代码的影响 对部署的影响
改结构,不改接口和功能 修改代码文件夹

对项目打包

我们现在的项目代码其实已经不仅仅是分别的脚本了,而是有独立的入口(如 run_task.py), 有复杂的逻辑和依赖关系。

这种情况下应该将项目做成标准的包格式,编写属于自己的 requirements.txt, 如果是可执行的,就应该编写 __main__.pyentry_point 实现命令行的运行接口。

这么做的优点是:

评估:

是否影响线上 对代码的影响 对部署的影响
改结构,不改接口和功能 需要修改 crontab 的语句

按功能拆分

现在的代码文件过于平坦,可以按功能拆分为不同的文件夹,将代码分门别类的放好。

这是一步相当大的改动,需要在理解代码逻辑的情况下逐步的分拆整理。 建议在稳定的前提下,逐步的一点点的修改。

建议在熟练掌握 OOP 设计模式后,按照对象设计的理念进行拆分。

可以先拆分巨型函数为数个小函数, 然后再拆分一个过长的文件为几个小文件,将不同的功能逻辑放到不同的文件里, 最后再将功能类似的文件放到相同的文件夹中。

良好的拆分可以更为灵活的开发新功能,而且为引入单元测试提供了方便。


面向对象设计

考虑到目前前后游的逻辑关系越来越复杂,最好开始着手进行对象关系的设计, 不然命令式脚本的编程方法恐怕无法应付日益复杂的需求变化。

在面对新需求时,在开始考虑业务代码实现以前,最好稍微多花一些时间讨论一下整体的逻辑设计。 业务虽然重要,但是必要的程序设计可以更好的服务业务。