作者回复: 🤝感谢推荐
作者回复: 很抱歉我暂时没有好的建议。
可以尝试的是:
1. 首先强制Review才能合并是必须的;
2. 让PR小一点,减少Review的难度;
3. 时间进度上,考虑上代码审查的时间,毕竟代码审查是磨刀不误砍柴工;
4. 鼓励资深的程序员做好带头作用,可以把Review代码参与度和Review代码质量作为绩效的一部分;
5. 你可以每天检查一遍审查通过的代码,对于明显有问题的私下可以谈一谈。
作者回复: 👍很好的补充分享。
如果你现在人不多,这样的流程也不错的。另外不知道你们Code Review做的如何?这一环节也很重要!
作者回复: 对,merge和rebase也是一种合并的方式。
PR的主要目的是为了让你可以看到这个分支和你要合并分支的差异,然后方便的在网页上review。
PR不仅仅支持两个库的分支合并,同一个库的不同分支合并也一样支持。最简单就是你可以去GitHub创建一个库,然后创建一个分支,再提交更新到这个分支,你就可以创建PR了。
作者回复: 对,工具是辅助的,重要的还是能不能和人、流程结合起来。
Git确实有很多比SVN方便的地方,例如本地的代码管理确实很方便。
作者回复: 代码审查可以参考GitHub上一些开源项目的PR Review,通常网页上可以清楚的标记出代码修改,针对代码行可以写Review的评论,这就已经很方便了。
其他工具主要是Lint检查代码规范、语法错误等,这个一般在CI里面就集成了。
作者回复: 是的,这个我认同,找别人Review之前自己先确保代码是没问题的,自己先检查一遍,自己先测试一遍,不能寄期望于其他人的Review。
所以我会要求我们组的同时在提交代码的时候,附上截图,其实就是为了确认自己是测试过的。
另外很多工作确实可以借助工具完成,例如lint工具,就可以帮助检查甚至格式化代码风格。
作者回复: 版本管理除了开发分支主分支等常规做法,我觉得还有很关键的一个用法就是Pull Request(PR),每次开发一个新功能或者修复一个bug建一个分支,每次合并之前先提交PR,PR要有自动化测试结果(配合CI)和代码审查,自动化测试通过和代码审查通过才能合并。这样可以有效提高代码质量。
作者回复: 1. 一般自动化测试是运行在CI上的,所以提交后CI会接管测试,你可以做其他事情。如果时间太长,需要优化,比如应该尽可能提高中小型测试比例提高速度。
2. 可以通过代码审查来辅助;测试代码有bug就修复bug;
3. 建议你可以去了解一下git的分支管理,会帮助你解答这些疑惑。通常来说各个分支的提交是不受影响的,但是合并到主干(master)时要注意顺序和解决好可能的合并冲突;
4. 取决你的个人习惯或者团队规范,很多人喜欢TDD,先写测试用例;Review代码是属于磨刀不误砍柴工的事情,Review代码的时间应该作为项目进度的一部分。
5. git是可以同时修改的,提交的时候可以自动或手动解决合并冲突,并不是很麻烦
6. 主要还是要频繁合并,这样可以减少合并的冲突。合并后要重新运行自动化测试,以保证代码质量。合并后出现测试失败是正常现象,找出原因,并且加以修复,并看看是否能预防类似情况再次发生。
作者回复: 同感,最开始我也没用过,后来发现源代码管理太有用了。
后来Git的分布式协作方式,也是刷新了以前对版本管理工具的认知。
作者回复: 可以参考《29 | 自动化测试:如何把Bug杀死在摇篮里?》那一篇,代码合并之前在CI中运行的是小型测试和中型测试,不需要部署到真实环境,所有服务都在本机安装或者模拟,这样速度是可控的。
作者回复: 抱歉,我没理解你的问题,你说的Repo和Git仓库有什么区别?因为我经常看到人家用Repo指代Git仓库。
另外对于Git仓库,一般同一个团队大的规则流程是一样的,也就是基于不同Git仓库,开发流程是一致的。
作者回复: 谢谢支持,也欢迎你分享觉得好的资料:)