python风控项目模块、类、函数、脚本编写的经验
1. 大框架
一般是输入输出接口一个模块(io_function_module),计算函数核心一个模块(calculation_function_module),品种对象类一个模块(product_module),如需要测算的证券、组合等,回测核心一个模块(backtest_module),运行脚本用ipynb控制。数据用pickles存储比较方便,读取存储用io_function_module控制。
2. 脚本转函数
一开始写可以先在ipynb中先写功能脚本,单元测试完成后再把函数写进模块里。按是否专属某一个类对象的功能函数,区分全局函数、静态函数、类函数和成员函数。
3. 关于抽象
经验是重复使用次数超过3考虑抽象,一开始先实现功能,重构时再考虑抽象。
4. 设计模式
从可维护(修改某一个功能,涉及对象范围最小)、可复用(新功能可直接使用原有对象)、可扩展(增加一个功能就是增加一个对象)、灵活性(原有功能重构无需解散最小单元)出发,应首先做到数据存储、读取、计算、展示分离。
5. 重构?扩展?
当发现原有代码的结构已经存在问题时,先用扩展的方法,把功能完成。通过测试后再进行重构。重构时注意用Git拉出来一个新的branch,测试完再合并到master上。
参考文献:
大话设计模式,程杰,清华大学出版社,2007。