@yiranphp
2017-01-13T00:48:52.000000Z
字数 1774
阅读 1836
迭代总结
GOODS-3373:免登录分享查看,最上方logo应不可点击
总结:分享的功能,影响范围比较广,仪表盘的页面有个特殊性,那就是免登录分享查看的时候,不能调用需要登录授权的 api;仪表盘的数据结构变更或者新增的时候,后台一定要同步更新;至于缓存的问题需要进一步深入学习了解,浏览器的缓存机制,程序的缓存机制,后台的缓存机制
总结:通配符那一块,先前的判断逻辑不健壮;列表成员重复渲染的问题,也是代码不健壮;列表成员数超过2000,搜索报错是代码本身就有错误,但是,一直没有暴露出来,原因是在仪表盘的过滤器的联动下,很少有维度的列表数能达到2000,所以一直没发现
总结:报表在浏览状态下(报表浏览 or 仪表盘),受过滤器的影响最终可以转换成一个对象:
{
replace: [{filter}, ...],
remove: [filterId, ....]
}
『报表浏览状态下』:将报表的某些过滤器设置为快速过滤器后 ,在浏览视图下就可以操作快速过滤器,值发生改变且有过滤条件的过滤器会放进replace列表中,而被清除了过滤条件的过滤器的id则放进remove列表中
『仪表盘中』:因为没有快速过滤器,但是仪表盘本身会有过滤器,仪表盘中的过滤器会和报表原有的过滤器发生融合形成replace列表和remove列表
融合机制:当仪表盘中某个过滤器的cube和报表的cube相同时,该过滤器有过滤条件时,就会放入replace列表 中,无过滤条件时,就会放入remove中,这么做和报表浏览中还是有区别的,报表浏览中的replace和remove一定不会超出报表原有过滤器的范畴,但是仪表盘中的过滤器就很有可能超出报表原有过滤器的范畴,所以,在仪表盘中,调用报表的只读接口时,多加了一个参数, isQuickFilter=false,表示这个时候,不会对replace和remove中是否超出报表过滤器的范畴做校验
在浏览状态下的穿透,点击某个度量时,需要将该单元格对应的行列维度值作为过滤器与融合后的replace、remove做进一步的融合,形成最终的replace、remove
当某个remove列表中的维度恰好是点击单元格对应的行列维度之一,需要放进replace中,并且在remove中移除,才是正确的做法,之前的逻辑遗漏了从remove移除的操作
总结:代码写的不够健壮,在排除度量值维度(id= -99)的时候,使用了 id<0的判断,而不是精确的id === -99
总结:花了较多的时间和经历做了代码的重构,我觉得很有价值,在于让代码更有组织性,逻辑更清楚,更易读,更容易调试
总结:总是会有些事情,比想象中的复杂一点,同时也暴露出,以前的代码还是有不足之处,有优化的空间
1、联调的流程还是有问题,涉及到接口增删改的功能 ,必须确保后端合并代码后,前端才能合并代码
2、代码注释写的少
3、报表设计日期过滤器的bug,是因为自己简单草率的修改了以前的通用日期组件的某个方法引起的,忘记了自己写的方法的正确使用姿势,改成了另外一种用法,就破坏了之前的功能了
4、在做自动查询的功能时,考虑的不全面,主要是自动查询的涉及范围也比较广,造成这个功能的issue反复reopen
5、
1、学习,写文档(关于如何搭建科学上网服务shadowsocks)
2、为了发布的进度,某些童鞋做出了很大的投入和付出
3、