三面(总监面):项目中碰到的技术难点和解决方案

发布时间 2023-07-17 20:58:04作者: 时间羚羊

这问题还真不是很好答,我准备几个大家可以去看看:

1、关于数据权限的统一配置和处理方式

第一种,简单方案,针对具体场景,比如项目成员配置,用的项目id加成员id的方式,再用拦截器经过对应controller都提前进行校验

2、没有大数据框架下的数据同步与统计

需求:比如研发绩效考核平台,从jira中同步研发、设计、测试的故事点数、任务数,从gitlab同步研发代码提交行数,最后计算和汇总得到健康度、效能和排行榜数据,还要从统计图进入对应jira和gitlab的项目主页。

问题:一个部门的所有人的任务数量、代码提交数量,圈复杂度、健康度、效能、排行榜的计算太过庞大,如果是季度数据的统计,从12点到早上上班时间定时任务都跑不完。

解决:第一步先执行没有改动过的代码,观测服务器性能是否完全使用,主要看内存

第二步用多线程分开统计不同角色的数据,把load data infile的数据文件造出来,再一次性入库

第三步查询快照表统计健康度、效能、排行榜用forkjoin的方式

第四步取消非必要日志的打印,比如取消每个用户数据采集开始和结束的日志

效果:八九个小时的统计缩短了一半

3、