CodeReview流程梳理

  • 第一部分:开场小游戏(2-3分钟,非必须)
  • 第二部分:CodeReview主题、目的介绍(3-5分钟左右,初次之后可不再进行)
  • 第三部分:CodeReview
  • 第四部分:CodeReview回顾总结(1-2分钟)
  • 第五部分:会议收尾(1-2分钟)
  • 第六部分:会后
  • 关键词及注意点

本文旨在梳理前两次的CodeReview流程,用于总结、分享、反思

第一部分:开场小游戏(2-3分钟,非必须)

游戏名称:大胃王
游戏简介:每个同事按次序说出之前同事吃饭的内容加上自己次序数量的食物,如:
第一个同事:我中午吃了一碗饭
第二个同事:我中午吃了一碗饭,喝了两瓶啤酒
第三个同事:我中午吃了一碗饭,喝了两瓶啤酒,吃了三碗面
第四个同事:我中午吃了一碗饭,喝了两瓶啤酒,吃了三碗面,又啃了四只烧鸡
第五个同事:同事,我中午吃了一碗饭,喝了两瓶啤酒,吃了三碗面,
又啃了四只烧鸡,还吃了五盒胃痛丸
以此类推。

游戏意义

这块上篇文章有梳理过,本篇文章就直接拿来用了,目的一样的,如下:
由于日常培训或会议大部分都是直接将大家从工作中抽离出来,
提前预定会议室,一般培训只会有两三个小时,
并不会专门抽出整天或好几天让大家全身心的参与到培训中,
因此往往前几分钟可能大家还在处理问题,
后几分钟就因为会议提醒直接被动的参与培训去了,
但此时很多人并不能很快的进入培训角色,
处于身在曹营心在汉状态,
因此通过各种小游戏,让大家转移注意力,
切换状态,转变角色,不再留恋之前的工作,
以提高培训质量

第二部分:CodeReview主题、目的介绍(3-5分钟左右,初次之后可不再进行)

阐述会议主题:代码评审、旨在提高团队代码质量-最核心且最基本的这里可以问下大家之前codeReview的感受和对CodeReview的印象,进而推出本次CodeReview的主题和目的。以下是第二次会议的大家对codeReview的感受和对CodeReview的印象发言记录:1.codeReview就是找问题,找bug,找茬甚至批斗会2.被Review的对象压力较大(用某位同事的话说:像是被扒光了裤子给人看一样)以上也是codeReview展开的核心痛点、难点:枯燥、有压力、氛围紧张,这些因素凑在一起就让大家比较抵触codeReview了,毕竟谁也不愿意‘被人看’,而这几点也是我们需要针对去解决的

问题转化

1.找问题、找bug 转化为 优化代码,怎样做更好?那样做没错,如何更好一旦不再是找bug、找茬,被review对象压力会小许多,但这还不够
2.会议主题再扩展、升华:不仅仅是优化代码的过程,更重要的是学习与交流的过程,学什么?既学当前review对象的设计也学习其编码上的亮点,甚至参会同事提出的好方案,好想法以下为前两次会议板书记录:

亚光老师板书:

第二次会议小熊同学板书(和亚光老师差的有点远哈):

板书上还是突出展示了本次会议的主题,非找bug、非批斗会、目的是优化、学习、交流,这点需要阐述清楚

第三部分:CodeReview

第一个环节:选人,选谁?
虽说上面说了那么多,还是避免不了选人问题,对于初次会议如何公平又有趣的选人(我刚开始以为公平重要,后来觉得有趣更重要,哈哈),变得有意思了,在这里列举亚光老师的选人方式作为参考:

每个人选个数字1-6之间,然后摇骰子,摇中谁就是谁了,人更多就是俩骰子。
人员选定后就可以正式开始codeReview了

第二个环节:看的是什么功能?
选定人员后并不是直接开始review代码,而是先搞清楚做了个什么功能
再去review代码,这里理解做什么功能,包括两方面,讲师或会议组织者,更重要的是参会同事理解在做什么

具体步骤:1.先请被review对象,简述功能,如果能演示最好演示出来2.讲师根据理解复述总结同时伴随其他人的交流,最好能给出图示,可视化出来3.参会同事理解、确认,达成共识背景功能阐述等很重要,理解要解决什么问题才能更好的review

第三个环节:如何review?

1.这次的是更新还是新开发的代码?更新的要看不同
2.代码如何看?2.1 先看流程2.2 再看细节

第四个环节:如何组织记录?

review的过程是全体成员共同参与的过程,是集思广益的过程
一旦开始review,大家思维开始发散,组织者需要
1.及时记录可优化点,
2.及时指出被review对象可被大家学习、借鉴的点
3.在某位同学思维发散过远时及时制止,例如过于纠结业务逻辑脱离review主题就应
及时阐明主题,控制会议时间,保障会议正常进行

大家思维发散提出很多可改进的点,组织者需要及时记录(收敛),便于后边回顾总结

第四部分:CodeReview回顾总结(1-2分钟)

带着大家通过板书简单回顾本次会议收获:可优化点及本次review对象可被大家
学习的点

第五部分:会议收尾(1-2分钟)

个人总结:一般是给大家一两分钟的准备时间,然后谈谈本次收获、以及会议建议
等两个方向这是一个收敛过程:在这一两分钟大家会回忆整个会议,思维再次收敛,
强化会议效果最后由本次review对象指出下次review对象(解决了下次选人问题)

第六部分:会后

以下是个人目前的做法做为参考:我是将大家提出的可优化点记录在《编码共识思维导图》和另一篇文档中(名字记不大清楚了),放在神兵知识库维护(类似语雀文档),每次codeReview会议后更新,参会人员都有编辑权限,有好的想法都可以及时更新。给大家作为编码前后参考、自检。

关键词及注意点

发散、收敛、可视化、讲师重在引导

CodeReview流程梳理相关推荐

  1. .16-浅析webpack源码之编译后流程梳理

    这节把编译打包后的流程梳理一下,然后集中处理compile. 之前忽略了一个点,如下: new NodeEnvironmentPlugin().apply(compiler); // 引入插件加载 i ...

  2. 【EventBus】EventBus 源码解析 ( 注册订阅者总结 | EventBus 注册订阅者流程梳理 )

    文章目录 EventBus 注册订阅者流程梳理 EventBus 注册订阅者流程梳理 EventBus 注册订阅者流程梳理 : ① 在 客户端 调用 EventBus.getDefault().reg ...

  3. 【Binder 机制】AIDL 分析 ( AIDL 通信完整流程梳理 )

    文章目录 AIDL 跨进程通信完整流程梳理 1.AIDL 文件编译 2.注册服务 3.IMyAidlInterface.Stub.asInterface 方法获取远程服务 4.IMyAidlInter ...

  4. 在流程梳理的过程中,OA工作组应采用国际先进方法

    进行OA服务建模 服务建模是通过对全部业务流程的全面分析,初步确定业务服务和应用服务,包括服务封装的业务/应用逻辑和对外提供的操作候选. 服务建模的前提是需对业务流程和系统功能非常了解.服务建模的工作 ...

  5. android p wifi一直在扫描_(一百六十八)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理②...

    接(一百五十五)Android P wifi 扫描失败结果上报流程梳理-扫描上报梳理 扫描失败上报梳理发现梳理的差了很多,特补充 1.WificondScannerImpl @Override pub ...

  6. jeecg流程梳理学习

    jeecg 流程梳理 角色 admin 管理员 fgld 学校分管领导 bgs 学校办公室 xbld 系部领导 xbky 系部科员 jxky bmld 部门领导 发文申请 applyUserId ad ...

  7. MFC 学习笔记(一):MFC单文档程序运行流程梳理与总结

    MFC 学习笔记(一):MFC单文档程序运行流程梳理与总结 1.MFC单文档程序运行流程 1.首先利用全局变量对象 theApp 启动应用程序 (这是因为这个全局对象,基类CWinApp中 this ...

  8. Handler消息机制介绍,流程梳理

    文章目录 前言 基本使用 发送和处理Runnable 发送和处理Message 流程梳理 获取消息 发送消息 消息入队 消息出队 理解 源码分析 前言 Handler 是Android 的消息处理机制 ...

  9. 敏捷开发--实际工作流程梳理

    敏捷开发–工作流程梳理,让工作更效率 前言:说下我公司敏捷模式,发布周期工作流程和故事开发流程 先说下敏捷的相关概念: 敏捷简述: 敏捷开发是以用户的需求进化为核心,采用迭代.循序渐进的方法进行的软件 ...

  10. 高通SDX12平台:启动流程梳理

    高通SDX12平台 启动流程梳理 1. 高通平台CPU类型介绍 通常我们所说的CPU如高通平台MSM8998.苹果A12, 华为海思平台(麒麟980.990)等,这些我们虽然叫CPU,但并不是只有一个 ...

最新文章

  1. 区域链实践第一步——区域链测试环境搭建
  2. MIDP2.0引入了Push注册机制
  3. 在一台Mac上不同平台同时使用多个Git账号
  4. 开发日记-20190621 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  5. 整理与总结Python关于对文件的操作
  6. java编程求最小公约数_java求最大公约数与最小公倍数
  7. 骚操作,IDEA防止写代码沉迷插件 !
  8. java.sql.exception_java.sql.SQLException: 违反协议
  9. 堆栈在DNA计算机中的应用,堆栈和二叉树数据结构在DNA计算机中的设计与实现
  10. pcb设计单点接地示意图_4种PCB设计中的接地方式解析
  11. JVM-class文件完全解析-字段表集合
  12. 迅雷极速与旋风的对比
  13. python计算工资_python学习之工资结算
  14. Python基本用法练习题
  15. mysql sqlyog 1045_sqlyog错误代码1045
  16. 【渝粤教育】电大中专电商运营实操 作业 题库
  17. 我们工作到底为了什么
  18. 记录学习Android基础的心得07:硬件控制P2
  19. turtle(海龟)知识点整理
  20. 【高级数理统计R语言学习】9 无序多分类分析

热门文章

  1. 获取U盘 VID,PID
  2. sleuth feign instrument 分析
  3. prison break
  4. 爬虫国际统计局省市区
  5. 五 常见的计算机故障有哪些,六大常见的电脑故障原因
  6. python计算空间向量夹角——原理及代码详解
  7. 通过谷歌骇客语法搜索后台:_书评:我们的骇客并拥有
  8. HDUOJ_2567_寻梦
  9. 找工作时单位普遍要求 35 岁以下,35以上的都干嘛去了?
  10. 简易歌曲推荐网页制作