项目终于验收了,目前工作暂时算一个段落。
1 从进入公司开始就一直负责统计分析报表。近20个分析功能。刚开始是是对原表进行直接的统计,一个分析都需要2-3天的时间,采用amchart报表组件。之所以选择是amchart是采用2个配置文件,一个数据源一个样式。然后只需要对数据源用代码封装。官方demo中各种版本的报表也分开的完全,js或者flash。一直倾向与纯flash组件。js在某些浏览器下很卡..
刚开始做的时候每一个图形采用的一个jsp然后发送一个请求去获取数据。然后发现这么会导致页面爆炸,后来自定义一个struts2 result,在需要调用报表图形的地方发送一个请求到action并返回自定义的“amchart” result,这样就不需要为每一个视图都复制一个jsp页面。
后来需求变为新建立统计表存放原表统计之后的值,那么很多报表视图的模型都很相似,比如arpu值300-500各地州的分布图和100-200的分布图。仅仅是查询的字段不一样。
所以就做成一个通用的action方法,用字段作为一个变量,页面调用同一个action方法,传入需要统计的字段。
从这之后就做了很多通用的action方法,一天搞定几十个图形可以。后来发现跨模块的分析模型也一样的也建到一张统计分析表了,其实这么在后期维护上是很困难的。
目前的状况就是通过一个要找到生成它的action方法比较困难。因为采用的struts2注解配置,没有配置文件可查。
2 下一步产品化重构,决定采用fusionchart,图形绚点,数据源只有2种模型,可能的话我再封装成一个chart实体。这个的缺点就是数据源和样式的配置都在一个xml里面。
官方demo种js和flash的例子没分开,最后还是把以前项目的代码拿出来研究搞了出来了纯flash的实现和部分封装代码。现在报表组成了一个struts2的视图插件,简化了部分代码,接下来想朝标签方向发展,直接用标签传入数据源生成报表。
对于系统的统计分析模块,可以一个功能做成一张统计表,对于统计action的方法,可以根据报表需求设计几个通用方法,然后在请求中传入统计的表,字段,一些选择显示策略的参数,比如是横坐标显示地州还是月份之类的。
3.这个月还研究了smartgwt一些东西,目前已经和ssh +ralasafe整合,gwt的东西可以用java写js,对于很多后台开发的程序员前台显示一直是个问题,js不熟悉,也做不成类似java的一些封装的组件,而用gwt相关的东西可以解决这个问题。