说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

寓教于乐 给代码审查者的几点建议

HTML文档下载 WORD文档下载 PDF文档下载
代码审查涉及四大领域,开发者自身、审查者、学习者以及传教者。可以说,贯穿整个技术和知识领域。本文我们将阐述这四者之间的关系,并给代码审查者提出几点建议,更好的为你的项目和团队做贡献。

原文作者Anna Gos发表了一篇博文《Code review FTW》,以下为译文:

在软件开发项目中同行代码审查是一种常见的做法。有人认为,代码审查有助于识别潜在的Bug以及规范项目编码标准。虽然我不同意这个观点,但不可否认的是代码审查对项目和团队的确有很大帮助。代码审查涉及四大领域,开发者自身、审查者、学习者以及传教者。可以说,贯穿整个技术和知识领域。


Teaching + Programming (教学+编程):代码审查为你提供与同伴分享编程知识的好机会。在这里不是为了炫耀你学到的最新技巧,而是去帮助改善另一名开发者的技能。作为一名程序员你可以积极的贡献出个人的成长历程,提供最宝贵的经验反馈。利用特定的技术或者引入具体的项目实践是指导新手的两大最有效方法。

Teaching + Domain(教学+域):大多数内置的软件项目具有不平凡的域特点。 一个不平凡的域需要大量的模型来表示其行为和代码属性。由于代码的模型行为和属性是两个密不可分的部分。因此,审查者在整个域建模思路中扮演一个极其重要的角色。

Learning + Programming(学习+编程):开发者在代码审查上会利用不同方法来解决问题。观察和理解其他程序员编写的代码是改善代码风格、掌握技术、了解新的类库以及学习新的模式最有效的方式之一。

Learning + Domain(学习+域):在代码中捕获信息是学习域的概念和整体功能一项最基本的资源。代码实际上是一个软件系统最详细的文档列表。理解性的阅读代码能够有助于扩展理解系统以外的内容。

大多数开发者会在代码审查领域中游离,因为他们想成为更好的程序员以及学习更多的域知识。尽管有些开发者有机会学到更多,但他们常常会因此而感到满足。如果一名开发者在某个项目中采用新技术(除了这个领域的专家),他将扮演两个角色。在某种情况下审查者会发现自己同时处在四个领域。意识到这些领域的优势是做代码代码审查最宝贵的经验,无论审查者的资历水平如何。

给代码审查者的几点建议:

让团队中的所有开发者拥有代码所有权——作为开发者,我们喜欢在家编码的感觉。代码审查从代码所有者切换至团队作者,他们拥有共同的利益。这种关系的转换使得整个团队都在为代码质量而负责,任何一名团队成员都应积极拥抱变化。此外,在极限编程中还涉及到共享代码(或集体代码所有权)问题。

逐步提高开发者的编码技能——同行审查能够提高团队的平均技能水平。此外,它还具备了无形的压力促使开发者更写更好的代码。

传播域知识——理解从代码中捕获的功能有助于在整个团队成员之间传播(共享)系统知识。它使整个团队间更有凝聚力,有效避免了任何一名开发者在任意系统工作领域中“挑三拣四”的情况发生。

培养集体智慧——团队整体完成的项目质量要远远高出开发者独自完成工作的总和。每位开发者都可带来不同的技能,实现协同编程,为团队“添砖加瓦”。

代码审查是我最喜爱的团队建设活动之一。它不仅是关注代码,而且还能见证整个团队的成长。值得一提的是,结队编程常被看作是代码审查的一种极端形式,这是一种值得推崇的代码审查方式。

英文出自:Anna Gos

详解Google Authenticator工作原理 云计算的乐高玩具,Docker从根本上改变应用程序开发 【先锋】eSage缔造异构虚拟化管理技术,做数据中心核心思想执行者 Uplinq2014:亲身体验Vuforia与智能眼镜设备 MDCC 2014 移动开发者大会议程全面揭晓! 顺丰模式:物流行业“互联网化”的科技之路 移动应用云服务工具APICloud宣布完美适配iPhone6 从应用分发到能力开放 华为开发者联盟沙龙上的共赢理念 SOOMLA框架:移动游戏分分钟创建个虚拟商店 Facebook:如何让应用适合所有系统、带宽以及屏幕 Docker实践者不能错过2014 Container技术大会的九大理由!(讲师议题全面揭晓) 2014全球云计算大会中国站(CC China)精彩集锦 腾讯X5浏览服务正式开放 30多款APP成为首批受益者 Node.js设计经验谈 LeanKanban University首位中国认证讲师路宁:看板会为更多国内企业带来深刻变革 环信IM沙龙纪实:无分享不IM,无社交不未来 【工具推荐】ESL:更简洁、更高效的标准加载器 【先锋】亲加通讯云:以云服务模式为App提供社交引擎 2014中国移动开发者大调查第一批获奖名单大曝光 移动开发云服务AVOS Cloud宣布完成A轮融资 Uplinq2014:人工智能嵌入硬件 万物互联建生态 Uplinq2014:基于Vuforia的新奇智能玩具 一应俱全!开源跨平台3D应用开发框架Minko 【线下技术培训】敏捷测试实战解析和系统方案 《近匠》Ping++:简单、高效、第三方支付SDK 有关编程的12个猜想 【问底】王帅:深入PHP内核(二)——SAPI探究 【CTO俱乐部走进汽车之家】活动图文实录 只为逼格?超薄便携式无线充电设备Deuce 戴尔未来重心:云计算、大数据、移动互联与安全 【讲师】搜狐于顺治:Container在搜狐PaaS平台中的应用实践 Query的设置? 回答过菜鸟级问题-我做的FLASH动画在有些机器上无法显示的请接分。再次感谢 给点意见!!! 求救,如何限制用户下载!!!内有详细说明.分不够可以在给!!! 請問怎樣用代碼得到一個dw控件的 dw 對象并messagebox出來? ★★★算法讨论:如何识别红眼和消除运动模糊★★★ 兄弟们,帮我啊!~ 紧急求助:请问如何在MFC程序中调用自己编写的C++类 请问谁有组卷的算法,急用,多谢! 急!!!关于FileSystemObject问题,在线等 求面积 鼠标在视图和用非模式对话框交互绘图 在.login中怎么设置汉字的位数? oracle9i的安装文件都有什么?望高之!急! 如何用window.open弹出一个屏幕居中的窗口? 大侠们,在线求word200文件密码破解,急!!!!!!!!!!! ccnet(苦海放歌) tdl982324(石井坚) ( ) wanghr100(灰豆宝宝.net) possible_Y(◎)(◎)←(这是眼镜,不要想歪了)请接分 ccnet(苦海放歌)yaoxuefeng(锋雨者)brainf(后街)请接分 配置节的type的第二个参数的含义 报表问题。 最近在找个网站管理系统,各位能否给个建议 windows2000的奇怪问题 关于如何自定义组件问题 有关windows 98自动重起问题。 ListBox问题 VFP8.0中的数组问题,高手和用过的人来看看! 数据库的移植问题? 重新开机时常常变成"大图标",怎样设置使WIN2K所有磁盘(c,d,e盘)上的所有文件夹和文件以"列表"显示,就是让"查看"->"列表"固定? oracle9i的安装文件都有什么?望高之!急! 哪位有没有SCJP培训的录音或其他教学的好东西阿 MSComm控件在设计时运行没问题,但打包后装到别的机子老是出现“没有注册类”,求救? delphi 做的数据库应用程序如何移植?? copysign怎么用啊? 如何将一个网页的所有链接均自动加为绝对链接? 技术与数学的问题 本人写了一个设置纸张方向和大小的函数,其中MyDevMode.dmPaperSize = psize '若vbPRPSA3 设置纸大小为A3,但在VB对象库中找不A2张对应值 tomcat4.1.24中的sevlet问题 我下载了linux的iso文件,可怎么安装啊!! 我想问一下,有关于计数器的相关的信息? 救急:是否可以在两个页面(两个单独打开得ie浏览器页面)传递参数,如何实现啊? JDBC相关的两个问题 Oracle8.1.6怎样连接SQL SERVER2000 ?(在线等待) inserted表问题 急!!!关于FileSystemObject问题,在线等 dll 编译问题 请教 请教关于iterator与container? 谁有mixerAPI的中文资料,如(mixerGetLineInfo)我需要弄懂原理(不需要MSDN) 请问“怎么样才能修改以有的flash文件”,拜托,在线等待 如何使相同的子窗口显示一个? ?请教高手有关Align的问题。 高手帮我谢谢注释~~高分相赠~~~~谢谢高手~~~~ 我是1984年9月17日早上6点多钟出生的,能给我算一下婚姻和事业吗?男的啊,阴历的 树蛙属于什么生态系统? a website前用什么介词? 17:51是早晨还是下午? when she()nexttime,i()her everthingA is going to come,shalltell Bcomes,willtell long shot歌词意思? 我国现行宪法的正文主要包括( ) A.总纲 B.公民的基本权利和义务 C.国家机构 D.国旗、国徽、首都 altium designer 元件库part A part 以及怎么删除 website前加什么介词 求宪法重要地位和法律效力的认识 Fish ____ the sea bed.填介词 外架与建筑之间间距 在新的历史条件下如何建设和谐校园 有诗意的词句,类似陪君醉笑三千场,不诉离殇.这样的 rm-225啥意思 在新的历史条件下,如何坚持立党为公,执政为民? short的中文是什么? 如图所示,质量相等的汽车甲和汽车乙以相同的速率沿同一水平弯道做匀速圆周运动,汽车甲在汽车以的外侧,样车沿半径方向受到的摩擦力分别为f甲和f乙,在下的说法中正确的是 青菜虫有叶绿体吗急 “short”汉语是啥? 225 45 为什么菠菜中的叶绿体比青菜中多 黄河中所有的黄河鲤鱼是一个生态系统吗 汽车甲和汽车乙质量相等,以相等的速率沿同一水平弯道做匀速圆周运动,甲车在乙车的外侧.两车沿半径方向受到的摩擦力分别为f甲和f乙.以下说法正确的是A.f甲小于f乙 B.f甲等于f乙C.f甲 用高倍显微镜观察青菜叶肉细胞,可见双层膜的叶绿体.为什么不对 晋江是泉州市的母亲河.下列能构成一个生态系统的是( )A.晋江中所有的藻类植物 B.晋江中所有的生物及其生活环境C.晋江中所有的动物和植物 D.晋江中全部的水、泥沙和矿物质 根号225的意义是什么? 造句,前面说因为什么,后面是所以有的.有的.有的.有的.快点,我等着呢 想要涵慧弦的播客链接谁帮忙找一下 汽车沿一水平弯道做匀速圆周运动,沿半径方向受到摩擦力,为什么由静摩擦力提供向心力? 原生质层是否相当于细胞膜,用热水洗蔬菜时,水变绿原因是:a原生质层失去透过性b细胞膜叶绿体膜失去透过 涵惜慧和涵惜叶是姐妹吗? It is all part of God's 1.两个形状相同的金属球,甲带正电,用电量为Q1.乙带负电,电量为Q2.且Q1大于Q2,当甲与乙相互接触后出现( 甲、乙都带正电).为什么?电子转移不是到一方呈中性(不带电)就不再转移了吗?这 涵惜慧还有一个姐妹叫涵惜岚 10^4×10^0÷10^-2 the same as 的as是介词还是连词.Without a doubt,Bill Gates belongs in the same class as Thomas Edison,Alexander Graham Bell,and other great minds who changed the world.这个as呢..分析下这个句子 turn on a 权限不足是啥意思?百度里回答问题还要求有什么权限吗?这是啥意思? NBA讲解里经常听到what a short(不是shot的发音),到底是what a 什么啊 Wo ist Konstanz? 权限狗什么意思 Do the same ______ the other leaves.(填介词) wo d ad asd sadas das 权限是什么意思 在表达“同龄”时,at the same age 与 the same age 中加了介词at 和不加有什么 区别吗在表达“同龄”时,at the same age as 与 the same age as 中加了介词at 和不加有什么 区别吗 一座桥,名为奈何;一条河,名为忘川.三生石畔,伊人仍旧.愿,陪君醉笑三千场,不诉离殇; His spacious apartment is furnished with ____ modern furniture. 和short读音一样的单词 W开头的 第一数学归纳法起源问题我听到关于第一数学归纳法有两种说法,一是先有一个意大利数学家提出了最小数原理(自然数集合任意一个子集中都有数值最小的元素),这个不能证明,而由这个可 Distressed painted furniture ''五经''指的是诗丶书丶礼丶易和什么 实现共同富裕的关键是什么 数学归纳法有分第一数学归纳法,逆向归纳法,螺旋归纳法,二重数学归纳法!(1)当n=1,2时,命题成立!(2)假设n=k且n=k+1,命题成立.可以推出n=k+2时成立,命题也成立!这种方法能证明对n为正整数时命 锦鲤鱼和鲤鱼可以杂交吗? 实现共同富裕,关键是?C.帮助贫困地区贫困人口发展经济D.完善分配制度我觉得D更正确. part of it lies in a death that rapidly approaches求高人翻译下,并告诉下这句话的主语、谓语是什么? 黄河金生态鲤鱼怎么样 实现四个现代化,达到共同富裕的根本前提是什么? 钟表上的数学1、在7点到8点之间,在什么时刻时针和分针互相重合?2、8点到9点之间,在什么时刻时针与分针的夹角是60度?(注:用方程解题)希望这方面的高手能给我解答!最好能说明一下原因 周日西湖国际马拉松开跑 部分道路临时义乌城区一黄金地块6.1亿成交 业内中央第二轮巡视展开 已进驻商务部和三广州人大常委会公布任免名单 任命15美在联合国驻地部署情报人员 拦截各国诸永高速东阳诸暨交界处数座桥墩下现空阿里推出手机上网流量免单计划 杭州只杭州市“公述民评”面对面问政第三场:中央第二轮巡视工作展开 已进驻商务部杭州:企业拒绝工资集体协商 最高罚款财政部:中国有信心完成经济增长7.5艾弗森正式宣布退役 称至死都是一名7国锦赛-丁俊晖6:1胜进8强 世界排46名中国与印度非法采金者在加纳被捕杭州新增房源远超成交量 很多板块挑选国际足联主席公开嘲讽C罗 重压之下只苹果因电池问题召回iPhone 5s郎平笑称自己是劳模 自5月初接手几乎歌诗达·维多利亚号下月狮城起航共同社:解密文件显示日本曾试图阻止中72小时过境免签为何没火起来新威权主义的价值特征曼联为追C罗明年欲砸1.4亿英镑 提美国丹佛中学生集体罢课 脱衣抗议新的中国最小黑客:为了不做作业黑掉学校系上海地铁两妙龄女当众脱衣遭批 男子偷阿拉斯加自驾美景美食一网打尽女大学生本科学籍被人冒用 研究生无法雅安灾后重建首家“新三板”企业将于1如何比成绩?垫江实施差异化考核房贷利率打七折? 四大商业银行重庆分关注官场逆淘汰:超半数受访者认为该现柯文哲回应内部民调首度落后连胜文:参国家食药监总局:含“壮阳”功能保健品王金平党籍案二审胜诉 朱立伦呼吁团结厂商捐款给MG149 “教育部副部长昆明一小学6死踩踏事故现场林佳龙提公交车免费加码 遭批开倒车无“亚洲女神”林志玲现身新疆五家渠G7与欧盟发联合声明 要求“伊斯兰国中国国航接收第20架波音777 30台军送修导弹被警方“拦截”并公布 充
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘