背景
最近,部门新leader和之前的leader打算搞一个codereview平台,在这个平台上可以看出谁提交了多少commit,谁提出了多少merge request,谁帮别人合并了merge request,一些merge时的评论等等等诸多数据。
之前也有类似的平台,但是太鸡肋,没使用起来。加上最近线上问题频出,测试反馈开发人员自测效果差,bug率高,两位leader终于决定重新搞一个平台,向全公司几百个研发人员推广起来(KPI)。
过程
动员大会
前leader:金廷,我们不仅要搞平台,我们还要搞一些工具。因为推广codereview的前提就是让开发人员爱上codereview。如果没有快捷便利的工具,codereview这个平台很难推进下去。你想法多,想想办法,看看能不能让开发人员积极参与codereview,更完善我们的开发体系。
我:好吧 leader,我觉得首先最大的痛点就是那个preview工具(npm包,需要安装node,功能是命令同时创建开发分支与测试分支,并且可以指定人员进行merge<输入OA账号>,生成merge request,操作者私发merge request地址给指定人员,指定人员进行merge ),不太好用。除了我们组几乎没怎么有人想用,而且还要安装node,我们公司的后端和其他语言的开发根本不能接受。如果我们能做出vscode插件或者IDEA插件,摒弃preview工具,这将是一个伟大的进步。
前leader:好想法,你来带头做吧,一个月,我要看到成果。

方案设计
- vscode或IDEA工具内部 gitlab token登录
- preview工具功能移植
在vscode或IDEA内部实现(非命令)快速创建开发分支与测试分支
在vscode或IDEA内部实现(非命令)快速创建merge request - vscode或IDEA工具内部 merge request请求合并消息通知 与 merge request合并成功消息通知
方案流程

优点
优点是相对于之前工具进行对比的
- 之前npm包工具初始化时需要输入OA账号,密码,gitlab接入token登录,
我们的code preview工具初始化只需要输入gitlab接入token登录,更方便,更简单。 - 之前gitlan创建merge request或合并merge request后,相关人员会在企业微信收到提醒推送,但是大多数人不会去看消息推送,或者第一时间看不到消息推送,或者直接屏蔽消息推送,我们的code preview工具在开发界面弹出消息通知,不怕第一时间看不到,并且可以直接点击此消息,跳转到相关gitlab地址。
- 创建分支,创建merge request,更快 更方便,之前npm包工具创建分支需要输入命令行,现在只需要鼠标点一点就可以快速创建分支与merge request
- 安装。之前的npm包需要安装node,下载npm包,我们的code preview工具只需要在vscode商城进行下载或者工具导入即可。对于后端来说,更不需要安装node环境了,IDEA商城下载即可。
后期规划
后期针对性能上的一些优化
- websocket建立数过多,可能针对node端是非常大的负载,后面有可能会同时存在几百个甚至上千个websocket连接数(不排除有人打开多个vscode或IDEA),那消息也有可能丢失,不在线的话,消息会被消费。后面真正出现了性能问题,我们再进行优化。
- 消息过滤,后面我们会针对node端进行消息指定人推送,而不在插件端进行指定人接收。这里我们可以用redis,使得socketId和用户名形成键值对,在node端进行消息过滤,这样的话,性能方面会有一定的提升。
未完。。。。