最近在读一本技术类的书:朱赟——《跃迁:从技术到管理的硅谷路径》,其中聊了很多很有趣的观点,比如:技术管理、技术实践、硅谷文化、个人成长等。

读到关于硅谷人如何做code review这一篇时,不由想到了前段时间看过的一篇博客:如何写好Git commit log

之前的工作用Git做版本管理工具,因此每次提交改动时都会写注释,其中也踩了一些坑,现在回想起来还是觉得很有收获。

这篇博客,聊聊我个人关于code review和Git commit的一些认知和资料总结,仅供参考。。。

参考资料:《跃迁:从技术到管理的硅谷路径》

博客:如何写好Git commit log

一、聊聊code review

1、什么是code review

code review,即:代码审查。指在软件开发过程中,对源代码进行审查,目的是查找系统缺陷,保证软件总体质量,团队内部知识分享,提高开发者自身水平。

Code Review是轻量级代码评审,所需要的各种成本要明显低的多,如果流程正确,它可以起到更加积极的效果。

2、为什么要code review

①、提高软件代码质量;

②、及早发现潜在缺陷与BUG,降低风险成本;

③、促进团队内部知识共享,提高团队整体水平;

④、评审过程对于参与人员来说,也是一种思路重构的过程,帮助更多的人理解系统;

3、如何进行code review

①、code review目标和原则

发现代码的正确性

不仅是code review,更重要的是学习和分享

高效code review

②、有选择的进行code review

最近一次迭代开发的代码;

系统关键模块;

业务较复杂的模块;

缺陷率较高的模块;

③、code review的工作流

本篇博客主要介绍基于Git做版本管理工具的code review,因此以Git为例子说明。因为Git比较灵活,诞生了很多工作流,常见的有下面几种:

Forking工作流

Gitflow工作流

功能分支工作流

集中式工作流

Pull Request工作流

4、code review具体要做什么

检查代码设计体系的合理性和业务逻辑的正确性;

检查代码的可读性和可维护性;

检查代码的功能实现完整性;

检查代码的安全性;

5、code review注意事项

保持code review的目标单一性;

确保code review的代码都是经过测试且测试用例覆盖率较高;

不要刻意去寻找代码存在的缺陷;

不要强制别人遵循自己的编码风格和习惯;

不要抨击和批评,学会建议和学习;

不要在不确定的问题上花费太多时间;

学会倾听和理解别人的建议,同时经过思考再给别人提建议;

6、code review需要自顶向下的支持

制定统一的编码规范和风格;

统一代码管理和审核的流程与工具,并确保大家使用同样的工具,遵循既定的流程规范;

鼓励团队成员帮别人code review,甚至可以列入绩效评估之中;

二、聊聊Git commit

之前的博客介绍过Git基础使用教程和和Git分支管理规范,在每次代码改动之后,都需要将本地分支的代码提交到暂存区,编写commit log,然后推送到远程仓库。

所谓的commit log,就是对每次代码的改动进行说明和注释,示例如下:

编写commit log:

 $ git commit -m 'first commit'
2 [master (root-commit) d8fedf7] first commit
3 28 files changed, 396 insertions(+)

查看commit log:

 $ git log
commit d8fedf7548e2f1314e7bfc0ffc3a1d4612c83e9e (HEAD -> master, origin/master)
Author: laozhang <laozhang@163.com>
Date: Sat Aug 11 00:27:46 2018 +0800 first commit

编写commit log的好处有很多,比如:

提高code review的效率;

清晰的描述release分支内容,提升可读性;

......

总之,一个好的commit log可以对项目长期的进度提升以及质量管理带来很大帮助!

三、如何写Git commit log

1、对提交改动的代码做好分类

在进行code review之前,需要了解清楚这部分代码的核心功能是什么,然后针对性的进行审核 ,一般将提交的代码分为以下几种类型:

①、缺陷修复

②、代码优化

③、系统迁移

④、新功能实现

2、统一commit log的编写方法和规范

同一个团队,提交日志的方法应该一致 。为了创建一个清晰可用的修改历史,团队应该首先对提交信息的约定形成共识,至少明确以下三件事情:

①、风格:包含句语、自动换行间距、文法、大小写、拼写,最终的结果就是一份相当一致的日志,不仅可读性很好,而且可以定期阅读;

②、内容:哪些信息应该包含在提交信息的正文中,哪些不用,比如:文件的移动和拆分、函数重构等;

③、元数据:引用问题跟踪 ID,pull 请求编号等;

其他相关资料链接:

code review应该怎么做

我们是怎么做code review的

如何进行高效的code review

以上内容参考了很多其他同行的资料,个人做了一个整理和总结,仅供参考,如有更好的意见,请在评论区提出交流,谢谢。。。

从code review到Git commit log的更多相关文章

  1. 如何规范git commit提交

    相信很多人使用SVN.Git等版本控制工具时候都会觉得每次提交都要写一个注释有什么用啊?好麻烦,所以我每次都是随便写个数字就提交了,但是慢慢的我就发现了,如果项目长期维护或者修改很久之前的项目,没有一 ...

  2. git commit guidelines

    git-commit-guidelines AngularJS Development Setup Running Tests Coding Rules Commit Message Guidelin ...

  3. Git commit 信息标准和丢弃必须要的commit

    /***************************************************************************** * Git commit 信息标准和丢弃必 ...

  4. Git和Code Review流程

    Code Review流程1.根据开发任务,建立git分支, 分支名称模式为feature/任务名,比如关于API相关的一项任务,建立分支feature/api.git checkout -b fea ...

  5. Git Command之Code Review

    原文链接 准备 Step 1. Create a team and add a teammate Step 2. Create a repository with some content 应用 Cl ...

  6. git基本命令--status, add, diff, commit, log

    git status: git status命令的输出十分详细,但其用语有些繁琐. 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种更为紧凑的格 ...

  7. 在win7下使用git和gitlab进行code review

    1.安装 Git-2.6.3-64-bit.exe  下载地址:http://pan.baidu.com/s/1hqGvwnq 2.根据收到的邮件进入gitlab网站,并修改密码登陆 3.新建一个文件 ...

  8. Git学习01 --git add, git commit , git log ,git status, git reset --hard, head

    Git官方提供的快速入门教程:https://try.github.io/levels/1/challenges/1 特点:Git极其强大的分支管理:分布式版本 集中式版本控制系统,版本库是集中存放在 ...

  9. IDEA工具java开发之 常用插件 git插件 追加提交 Code Review==代码评审插件 撤销提交 撤销提交 关联远程仓库 设置git 本地操作

    ◆git 插件 请先安装git for windows ,git客户端工具 平时开发中,git的使用都是用可视化界面,git命令需要不时复习,以备不时之需 1.环境准备 (1)设置git (2)本地操 ...

随机推荐

  1. 2018-08-13 Head First OO分析设计一书略读与例子中文化

    注: 此笔记仅为个人学习此教程的布局和材料组织之用. 如有兴趣请自行详阅. 第一章是以吉他商店的存货系统作例子. 第二章设计有狗洞的门. 第三章对第二章基础上, 更改需求后对应设计. 第四章继续改进此 ...

  2. python地理处理包——Shapely介绍及用户手册

    本文主要是基于shapely官方文档翻译而成 shapely主要是在笛卡尔平面对几何对象进行操作和分析. 性能 Shapely中所有的操作都是使用GEOS库.GEOS是用C++写的,也被用在许多应用程 ...

  3. Python property使用简介

    property使用简介 by:授客 QQ:1033553122 功能简介 1) 把类方法变成只读属性 2) setter和getter的另一种实现 代码演示1 #!/usr/bin/env pyth ...

  4. 微信小程序中如何获取for循环的item相关值到JS页面的问题

    今天小程序开发过程中,遇到了这个棘手的问题.由于我没有前端基础,只是知道一点儿基本的HTML标签,所以卡了好久,特此分享,望后来的你,可以有所收获. measure  step 1  *.WXML: ...

  5. Spark应用【根据新df更新旧df】

    // 主键字段保持不变,再转换回来 var columnMap:Map[String, String] = Map() for(key <- keysOpt){ columnMap += (ke ...

  6. zabbix监控tomcat(使用jmx监控,但不使用系统自带模版)

    一,zabbx使用jmx监控tomcat的原理分析 1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据 2.Zabbix-Java-Gateway找Java程序(j ...

  7. SQL Server 索引重建手册

    注意: 索引重建前建议把数据库切换为完整模式,否则索引复制会在数据文件中进行,导致数据文件很大,而数据文件的收缩比日志文件的收缩要困难的多,且会对业务造成影响. 步骤一: 查询索引碎片,脚本如下,库比 ...

  8. mysql 数据库 命令行的操作——对库的操作

    1.查看所有数据库 show databaese; 2.查看当前所用的数据库 show databases(): 3.切换数据库 use(数据库名): 4.创建数据库 create database ...

  9. f.lux 自动调节显示器色温

    我的环境 f.lux 我的使用感受是让屏幕看起来舒服一些,因为我有近视,所以需要保护眼睛. f.lux官网:https://justgetflux.com/ f.lux v4.47 windows 1 ...

  10. Powershell批量安装SNMP服务

    我要给node5-8的节点都安装snmp服务 如果不知道要安装的服务的名字,用get-windowsfeature 能显示出来所有的名字 Invoke-Command -ComputerName no ...