在此期间主要负责app后端接口的开发,我所做的工作主要有:
代码结构的改造,完成app端页面的自动化配置。
成果:原来app端的页面是写死的,后端只需要为前端传送数据,但是这样并不适合运营同事做页面调整,或者每次页面调整都要改代码、发版。通过代码结构的修改,每次返回的信息包括“结构” + “数据”,运营同事可以根据需求来配置app页面。
将原来的app接口进行了梳理,按照RESTful标准规范了接口格式。
成果:对url的结构,动词和大小写进行规范,并整理出接口文档方便查阅和项目代码的维护。
改进代码结构,添加版本管理支持,使其可以更好的支持多版本的管理,当时面临的一个巨大问题就是代码复杂度不断提高,因为一个service需要支持多个版本,而每个版本的接口都是相同的,只是通过version参数来区分版本,代码中充斥着if else代码污染。
解决方案:将原来的controller拆分为data layer和logic layer,不同版本的同一个接口共用同一个data layer,使用不同的logic layer。
添加自动化测试功能,基于接口文档,使用goLang开发了一个自动化测试工具,配合PHP单元测试在发版前进行代码测试。
成果:提高代码的可靠性,减轻测试同学的压力
添加接口版本的过期提醒功能,通过定时分析nginx的weblog,判断哪些陈旧的接口不再被使用,为清洁代码,删除陈旧接口提供依据。