whosbug经手了多个团队的近20人,历史团队中:大家分别负责插件和数据流转的设计实现和优化、责任归属算法的设计实现与优化、antlr语法AST分析的多语言适配实现以及项目协同的管理;当前主要由kevineluo和kevinmatthe负责维护以及开源相关的规划,同时也有这个开源小组的其它几位同学一起协作共建whosbug的开源版本
短期内优先支持完成whosbug内网版本的落地,同步进行一些架构上的调整,对齐开源标准等;长期来看则是对whosbug的其它落地场景的探索、Keyman算法的进一步优化等
根据收集到的问卷统计,暂定每周五的17:00-17:30,视情况调整
根据收集到的问卷统计来看,大部分同学除了周末都没有太多时间,这里我们初步设定每人每周发放约8小时的工作
-
Antlr-Golang语法解析框架目前部分缺失解析
python文件的处理库,无法进行语法解析 -
一个仓库中有多个子项目,不同目录下存在同名的方法:如目录
src/main和test/main下均有方法/类MainActivity,存在该方法调用的函数calling中无法准确定位调用来源,且会存在无法唯一标识的现象 -
导致语法树不完整,
Keyman算法无法得到较为可信的结果 -
目前仍采用传统的
DBMS数据库进行存储,更新操作较为繁琐,效率低下 -
由于测试数据的收集难度较高,
whosbug一直缺少一些系统测试;一个得不到验证的系统是没有说服力的whosbug在内网这边正在进行完整的更新和发布,这里或许可以在一些项目上得到验证,收取到一些认可度;但同时我们也可以主动的设计一些测试方案来“自圆其说”一下
-
用于观察数据库内的加密数据,(要做好鉴权,不然加密全部木大)
-
用于宏观数据的观察(各接口请求量,耗时等)、告警配置以及
SRE标准化的建设(监控插件接入数量、对流水线机器的性能消耗等) -
目前的算法在先验 / 后验概率维度上有改进的空间,可以与
rebucket算法 / TraceSim算法联动超参数训练模块还有待开发(可以参考
kevineluo写的rebucket超参数训练模块进行改进 / 使用灵活性较高的开源框架)
-
创建一个新的commit节点时,不能通过[new_commit:Commit:Release:Project]来继承关系,只能手动创建与Release的关系
-
例如:已创建节点Project、Release和关系Project-[:CONTAINS]->Release,每次有新的Release插入都需要一同创建一个关系。
-
参考AOF+RDB增量存储语法树
-
AST与webservice接口需要区分方法的
变动和移除 -
假设:单行变动且不在任意一个方法内
-
保底存储方案:对每个Release维护一个语法树