【干货】Gerrit代码Review入门实战

上传人:ji****72 文档编号:37537511 上传时间:2018-04-18 格式:DOC 页数:14 大小:2.18MB
返回 下载 相关 举报
【干货】Gerrit代码Review入门实战_第1页
第1页 / 共14页
【干货】Gerrit代码Review入门实战_第2页
第2页 / 共14页
【干货】Gerrit代码Review入门实战_第3页
第3页 / 共14页
【干货】Gerrit代码Review入门实战_第4页
第4页 / 共14页
【干货】Gerrit代码Review入门实战_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《【干货】Gerrit代码Review入门实战》由会员分享,可在线阅读,更多相关《【干货】Gerrit代码Review入门实战(14页珍藏版)》请在金锄头文库上搜索。

1、Gerrit 代码 Review 入门实战代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被 Delay 甚至是忽略。在实践中,给大家推荐一款免费、开放源代码的代码审查软件 Gerrit。1、Why Code ReviewCode Review 是什么Code Review 最直观的解释即看代码。常规的做法为自己看,有时代码逻辑问题可能自己看不出来,需要找同事一起看,在大家知识体系相对平均的情况下可能需要花钱专门的公司帮助查看。Code Review 需要看哪些?对于刚入职场或者刚接触到 Coding 的新人来说,代码风格是比较重

2、要的一块。除此之外,编码规范及代码结构写法,框架和工具的选型,具体项目的业务逻辑,安全隐患,性能问题等都可以通过 review 的方式发现。Code Review 从前往后大致分为结对编程,提交代码后,测试之前,发版之前,发版之后等几个阶段,越往后,Code Review 的效果越差,修复的成本也越来越高。为什么一定要做入库前 Code Review首先,代码审查的最大的功用是纯社会性的。如果你在编程,而且知道将会有同事检查你的代码,你编程态度就完全不一样了。你写出的代码将更加整洁,有更好的注释和程序结构。其次,偷懒是人的天性,从节约成本的角度考虑,大家一般会选择在测试之前无限制的Delay

3、Code Review。入库前做 Code Review 便是成本和效果之间最佳平衡点,它能及时发现问题,进行修改后确保代码质量。最后,代码审查能传播知识。在很多开发团队里,经常每个人负责一个核心模块,每个人都只关注自己的模块。除非是同事的模块影响了自己的程序,他们从不相互交流。这种情况的后果是,每个模块只有一个人熟悉里面的代码。如果这个人休假或辞职了,其他人则束手无策。通过代码审查,至少会有两个人熟悉这些程序作者,以及审查者。审查者并不能像程序的作者一样对程序十分了解,但至少他会熟悉程序的设计和架构,这是极其重要的。2、Gerrit 简介Gerrit 是 Google 为 Android 系

4、统研发量身定制的一套免费开源的代码审核系统,它在传统的源码管理协作流程中强制性引入代码审核机制,通过人工代码审核和自动化代码验证过程,将不符合要求的代码屏蔽在代码库之外,确保核心代码多人校验、多人互备和自动化构建核验。Gerrit 之前的系统架构Gerrit 之后的系统架构通过 Gerrit 机制将代码做分隔。Gerrit 适用性几乎任何需要正式发布的项目都应当使用 Gerrit 来进行代码审查,如果 Team 中有新人,必须使用 Gerrit 确保代码质量。Gerrit 效果整体上来说,个推使用的标准配置为 Gerrit+Jenkins+Sonar,整个系统搭建完成后得到的效果为:100%

5、Code Style 问题避免入库,80% 设计问题避免入库,40% 逻辑错误避免入库,20% 安全隐患避免入库,100% 人员互备。3、Gerrit 入门实战Gerrit 部署和运行JDK 环境配置java -jar gerrit-2.12.war init -d review_siteGerrit 人员角色配置使用 OpenID 登录,第一个登录的用户为 admin,创建 dev 帐号、review 帐号和 verify帐号,创建 dev、review 和 verify 用户组并添加相应用户,注意设置 Username,代码同步时需要用到。创建第一个项目,配置权限管理添加 project,

6、选择 Inherit From All-Projects,当然也可以自定义 Parent Project。添加 Verified 标签支持,这里修改 All-Project 项目的 project.config,所有继承自 All-Project 的项目自动添加 Verified 标签,也可针对项目自定义是否 verify。创建用户组添加相关用户权限将代码库同步到本地(SSH/Http)HTTP 方式:HTTP Password 密码在 账户 - - Settings HTTP Password 处获取。SSH 方式:添加 SSH Public Key。Clone 代码到本地commit-ms

7、g ,提供自动写入 change-Id 至 git log 内功能提交第一个 changeGerrit 上进行代码审查,确认入库Verify:工程里面接入了 jenkins 自动 verify,结果可在上图红框内展示 verify 结果。review 代码,提交入库。本地代码库更新,获取最新入库代码代码 submit 后通过 git pull - - rebase 更新代码。Gerrit 入门实战-初级修补如果所有代码提交均被打回,可以进行暴力回滚:git reset ,接着重新提交Gerrit,再进行 Gerrit 审查入库。Gerrit 入门实战-高级修补如果单个提交打回,则可交互式回滚:

8、git rebase -i ,修改指定 commit 点:git commit -amend,完成所有 commit 点处理:git rebase -continue,然后重新提交 Gerrit,最后 Gerrit 审查入库。Rebase 前Rebase 后rebase 在同一个点上修改,不会产生审核点,多个 commit 点同时存在是尤其有用。Gerrit 经验谈第一,Git 别名绑定,添加别名字段,通过 git review master 这样简单语法提交到master 源端分支,可以省去很多工作。修改系统目录或者项目目下的.gitconfig 文件,添加 也可通过 git config

9、-global alias.review 命令修改第二,工具只是一部分,更重要的是人与人当面的沟通交流,大家讨论一个好的解决方案,才能更好的解决问题。没有交流,工具也就失去了意义。最后,关于 review 积压问题,要避免提交积压,代码审核过程要及时完成,避免 Code Review 流于形式。从个推实际使用效果看,Gerrit 在核心代码质量控制、知识传承、团队培养等方面都具备很高的实用价值,推荐给广大开发团队用。活动预告2016 年 07 月 01 日 20:00 - 21:00,CSDN 线上公开课,个推高级技术总监董霖将带来Gerrit 代码 Review 高阶实战分享。学习要点一、Gerrit 高阶实战1. 一个 change 被打回,如何处理?2. 多个 change 被打回,如何处理?3. Gerrit+Jenkins 集成4. Gerrit 权限组管理二、CR 经验谈1. 避免一次性提交多功能性代码,减轻 Reviewer 压力2. 避免提交积压,导致 CR 流于形式3. format 等非核心代码提交,可以请求 Reviewer 直接过4. 安排多位 reviewer,一位负责最终+2 入库5. Git 别名设置

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号