37DATA

手游报表:从重复到模块化

前言

不知道大家的印象中报表开发是怎么样的。对于我来说,之前的报表开发是每天做着重复的工作,除了业务取数逻辑需要调整外,其他的东西基本都是复制粘贴,而且十分耗费时间。

如果要完成一张如下图所示的报表需要多长的时间?

Image

在业务快速发展的环境下,用原来的开发模式工作效率肯定得不到保证的。正在此时,指标中心的出现,给开发工作上提供了很多的便利,省去了很多写SQL取数的时间,同时也给我们一些创新的灵感。

如果所有的环节都参照指标中心的抽象思维,那么很多重复的事情都可以不需要做,可以更加专注于业务逻辑和提高开发效率。

Image

模块拆分分层

指标中心的成功实践,给其他环节的模块化提供了指导,可以把其他环节进行模块拆分:

前端统一模板:前端组件化,组件可由后端控制输出。
报表配置页面:页面化管理报表前端页面,更改报表的前端选项可以在页面上操作,不必更改代码。
权限中心:根据不同用户返回对应权限,对接前端页面下拉列表&选项联动。
参数中心:页面化管理指标和参数,管理和控制指标输出。
数组中心:统一参数接收和表格格式化输出,数据处理功能统一&方便管理。

模块分层&整合实践

Image

报表配置页面实践:
可在页面进行报表前端的配置,节省在前端模块耗费的时间

Image

Image

参数中心实践:
页面化管理参数,指标导入

Image

Image

权限中心 & 数组中心 & 指标中心结合实践:
抽象接收参数和数据表格输出代码,兼容和前端统一模块的交互

Image

总结

从代码截图可以直观看出,当代码模块整合后,实际开发的时候以前重复的工作代码只需要20行左右,让开发人员可以更加专注于业务逻辑的编写。

从最开始做一张报表需要1-2工作日,到现在完成简单的报表只需要20分钟,这不仅是工作效率的提升,也能在过程中让自己的技术有所成长。

当然现在模块化只是在初级阶段,还有很多可以优化的方面,欢迎大家一起探讨。

最后

模块分层能一步一步完善优化,是整个产品开发组努力的结果。
同时也要感谢@佳新 @依婷 前端大佬的大力支持。

感谢各位的阅读!