2018年主要参与了图形后端的开发,负责数据库模块的时间和开发。
(1)模块的扩展性
扩展性是做的比较好的地方。由于在架构设计时,对数据库模块扩展性有充分的重视,目前的代码虽然基于PostgreSQL,但未来可以方便的切换至MySQL等其他数据库。
(2)降低模块耦合性
低耦合是做的比较好的地方。在数据库模块内部,低耦合表现在隔离了PostgreSQL相关的代码和业务代码。另外数据库读写采用RPC技术,避免了与其他模块间直接调用。
在产品中,渲染模块,解析模块,数据库模块和前端模块等各个模块间,也实现了低耦合。模块间的低耦合方便调试和定位错误信息,也有利于产品的部署、升级和维护。
(3)遵循代码规范
代码规范没有绝对的好坏,但是团队内部要有共识。代码是程序员沟通的工具,统一的规范节约沟通成本,提高开发效率。数据库模块和中间服务器交互比较多,在开发中对代码达成了一致的认识:大的方面如日志,RPC通信,模块交互流程。细节方面如变量和函数命名,类型的选择等。遇到了很好的队友,合作非常愉快。
(4)文档的实用性
文档是做的比较好的地方。文档贵精不贵多。数据库模块提供了数据库实体关系图,二维数据库表,数据库读写消息等文档。极大的方便了团队成员间的交流。
(5)代码兼容性
兼容性是工作不足的地方。这是今年踩中的一个坑,在发布产品2.0时,渲染模块和数据库模块对以前版本的不兼容,给产品上线带来的很大的困难。
在目前开发的3.0版本中,团队十分重视兼容性。数据库模块也对表的增删改做了严格的限制,并做好了数据迁移的工作。
(6)单元测试
单元测试是工作不足的地方。由于前期完成代码后,只进行了手工测试,测试用例用完即扔,没有维护起来。使得后期代码的维护和重构非常费力,有时有更好的方案也不敢对代码轻易改动,生怕引入新的bug。如果有单元测试,就会对代码更好的维护。
目前正在筹备数据库模块的单元测试,初步方案是采用NUnit。
(7)集成测试
集成测试是工作不足的地方。由于团队分工协作,渲染模块,解析模块,数据库模块和前端模块各自独立开发。集成测试近仅在发布前执行,这使得一些bug没有在前期发现。
目前有采用jenkins做集成测试的想法,使得每天甚至每次代码提交都能有一次集成测试。