- 浏览: 887158 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1096)
- 大数据存储 (76)
- 编程语言(Java&Scala) (46)
- 大数据建模 (33)
- 开发与管理 (8)
- 操作系统 (13)
- 实用代码集合 (25)
- 新技术研究 (15)
- 前端技术研究 (22)
- 物联网 (18)
- 兴趣探索 (15)
- 编程语言(Groovy&Grails) (92)
- 编程语言(RubyOnRails) (153)
- 个人收藏 (153)
- 技术管理 (12)
- 编程语言(Flex) (8)
- 架构和框架(GWT) (4)
- 数学和算法 (6)
- 人工智能(TensorFlow) (11)
- 编程语言(Python) (6)
- 移动开发 (4)
- 软件工程实践 (54)
- 个人感悟 (6)
- 职场感悟 (5)
- 行业经验 (23)
- 产品和运营 (10)
- 生活与随想 (155)
- 简单生活 (70)
- 天空的云 (53)
- 秋月春风 (14)
- 东逝水 (59)
- 浪花淘 (35)
- 白发渔樵 (4)
最新评论
-
cljhyjs:
今天看看在研究,已经安装好了,请问怎么一步一步使用呢?
Thingsboard -
yx200404:
说一下十维空间 -
Clear_Love:
设置了也报错
Xcode 7遇到 App Transport Security has blocked a cleartext HTTP 错误 -
wang263574375:
我想问的是,如果防火墙的设置不能改变,那么要怎么处理呢?
ORA-12571:TNS包写入程序失败 -
ralflsb:
SmartSVN 8.6
SmartSVN破解包
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。
1. 代码审查要求团队有良好的文化
团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。
“A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影响团队内部的协作,因此需要避免。
另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发者对这个流程有抵触或者反感,这个目的就达不到。
2. 谨慎的使用审查中问题的发现率作为考评标准
高效代码审查的十个经验
在代码审查中如果发现问题,对于问题的发现者来说这是好事,应该予以鼓励。但对于被发现者,我们不主张使用这个方式予以惩罚。软件开发中bug在所难免,过度苛求本身有悖常理。更糟的是,如果造成参与者怕承担责任,不愿意在审查中指出问题,代码审查就没有任何的价值和意义。
3. 控制每次审查的代码数量
根据smartbear在思科所作的调查,每次审查200行-400行的代码效果最好。每次试图审查的代码过多,发现问题的能力就会下降,具体的比例关系如下图所示:
高效代码审查的十个经验
我们在实践中发现,随着开发平台和开发语言的不同,最优的代码审查量有所不同。但是限制每次审查的数量确实非常必要,因为这个过程是高强度的脑力密集型活动。时间一长,代码在审查者眼里只是字母,无任何逻辑联系,自然不会有太多的产出。
4. 带着问题去进行审查
我们在每次代码审查中,要求审查者利用自身的经验先思考可能会碰到的问题,然后通过审查工作验证这些问题是否已经解决。一个窍门是,从用户可见的功能出发,假设一个比较复杂的使用场景,在代码阅读中验证这个使用场景是否能够正确工作。
使用这个技巧,可以让审查者有代入感,真正的沉浸入代码中,提高效率。大家都知道看武侠小说不容易瞌睡,而看专业书容易瞌睡,原因就是武侠小说更容易产生代入感。
有的研究建议每次树立目标,控制单位时间内审核的代码数量。这个方法在我们的实践中显得很机械和流程化,不如上面的方法效果好。
5. 所有的问题和修改,必须由原作者进行确认
如果在审查中发现问题,务必由原作者进行确认。
这样做有两个目的:
(1)确认问题确实存在,保证问题被解决
(2)让原作者了解问题和不足,帮助其成长
有些时候为了追求效率,有经验的审查者更倾向于直接修改代码乃至重构所有代码,但这样不利于提高团队效率,并且会增加因为重构引入新bug的几率,通常情况下我们不予鼓励。
6.利用代码审查激活个体“能动性"
即使项目进度比较紧张,无法完全的进行代码审查,至少也要进行部分代码的审查,此时随即抽取一些关键部分是个不错的办法。
背后的逻辑是,软件开发是非常有创造性的工作,开发者都有强烈的自我驱动性和自我实现的要求。让开发者知道他写的任何代码都可能被其他人阅读和审察,可以促使开发者集中注意力,尤其是避免将质量糟糕,乃至有低级错误的代码提交给同伴审查。开源软件也很好的利用了这种心态来提高代码质量。
7.在非正式,轻松的环境下进行代码审查
如前所述,代码审查是一个脑力密集型的工作。参与者需要在比较轻松的环境下进行该工作。因此,我们认为像某些实践中建议的那样,以会议的形式进行代码审查效果并不好,不仅因为长时间的会议容易让效率低下,更因为会议上可能出现的争议和思考不利于进行如此复杂的工作。
8.提交代码前自我审查,添加对代码的说明
所有团队成员在提交代码给其他成员审查前,必须先进行一次审查。这次自我修正形式的审查除了检查代码的正确性以外,还可以完成如下的工作:
(1)对代码添加注释,说明本次修改背后的原因,方便其他人进行审查。
(2)修正编码风格,尤其是一些关键数据结构和方法的命名,提高代码的可读性。
(3)从全局审视设计,是否完整的考虑了所有情景。在实现之前做的设计如果存在考虑不周的情况,这个阶段可以很好的进行补救。
我们在实践中发现,即使只有原作者进行代码审查,仍然可以很好的提高代码质量。
9.实现中记录笔记可以很好的提高问题发现率
成员在编码的时候应做随手记录,包括在代码中用注释的方式表示,或者记录简单的个人文档,这样做有几个好处:
(1)避免遗漏。在编码时将考虑到的任何问题都记录下来,在审查阶段再次检查这些问题都确认解决。
(2)根据研究,每个人都习惯犯一些重复性的错误。这类问题在编码是记录下来,可以在审查的时候用作检查的依据。
(3)在反复记录笔记并在审查中发现类似的问题后,该类问题出现率会显著下降
10. 使用好的工具进行轻量级的代码审查
“工欲善其事,必先利其器”。我们使用的是bitbucket提供的代码托管服务。
每个团队成员独立开发功能,然后利用Pull Request的形式将代码提交给审查者。复审者可以很方便在网页上阅读代码,添加评论等,然后原作者会自动收到邮件提醒,对审阅的意见进行讨论。
即使团队成员分布在天南海北,利用bitbucket提供的工具也能很好的进行代码审查。
来源:坚果云投稿(一个用于移动办公的安全云存储服务)。
1. 代码审查要求团队有良好的文化
团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。
“A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影响团队内部的协作,因此需要避免。
另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发者对这个流程有抵触或者反感,这个目的就达不到。
2. 谨慎的使用审查中问题的发现率作为考评标准
高效代码审查的十个经验
在代码审查中如果发现问题,对于问题的发现者来说这是好事,应该予以鼓励。但对于被发现者,我们不主张使用这个方式予以惩罚。软件开发中bug在所难免,过度苛求本身有悖常理。更糟的是,如果造成参与者怕承担责任,不愿意在审查中指出问题,代码审查就没有任何的价值和意义。
3. 控制每次审查的代码数量
根据smartbear在思科所作的调查,每次审查200行-400行的代码效果最好。每次试图审查的代码过多,发现问题的能力就会下降,具体的比例关系如下图所示:
高效代码审查的十个经验
我们在实践中发现,随着开发平台和开发语言的不同,最优的代码审查量有所不同。但是限制每次审查的数量确实非常必要,因为这个过程是高强度的脑力密集型活动。时间一长,代码在审查者眼里只是字母,无任何逻辑联系,自然不会有太多的产出。
4. 带着问题去进行审查
我们在每次代码审查中,要求审查者利用自身的经验先思考可能会碰到的问题,然后通过审查工作验证这些问题是否已经解决。一个窍门是,从用户可见的功能出发,假设一个比较复杂的使用场景,在代码阅读中验证这个使用场景是否能够正确工作。
使用这个技巧,可以让审查者有代入感,真正的沉浸入代码中,提高效率。大家都知道看武侠小说不容易瞌睡,而看专业书容易瞌睡,原因就是武侠小说更容易产生代入感。
有的研究建议每次树立目标,控制单位时间内审核的代码数量。这个方法在我们的实践中显得很机械和流程化,不如上面的方法效果好。
5. 所有的问题和修改,必须由原作者进行确认
如果在审查中发现问题,务必由原作者进行确认。
这样做有两个目的:
(1)确认问题确实存在,保证问题被解决
(2)让原作者了解问题和不足,帮助其成长
有些时候为了追求效率,有经验的审查者更倾向于直接修改代码乃至重构所有代码,但这样不利于提高团队效率,并且会增加因为重构引入新bug的几率,通常情况下我们不予鼓励。
6.利用代码审查激活个体“能动性"
即使项目进度比较紧张,无法完全的进行代码审查,至少也要进行部分代码的审查,此时随即抽取一些关键部分是个不错的办法。
背后的逻辑是,软件开发是非常有创造性的工作,开发者都有强烈的自我驱动性和自我实现的要求。让开发者知道他写的任何代码都可能被其他人阅读和审察,可以促使开发者集中注意力,尤其是避免将质量糟糕,乃至有低级错误的代码提交给同伴审查。开源软件也很好的利用了这种心态来提高代码质量。
7.在非正式,轻松的环境下进行代码审查
如前所述,代码审查是一个脑力密集型的工作。参与者需要在比较轻松的环境下进行该工作。因此,我们认为像某些实践中建议的那样,以会议的形式进行代码审查效果并不好,不仅因为长时间的会议容易让效率低下,更因为会议上可能出现的争议和思考不利于进行如此复杂的工作。
8.提交代码前自我审查,添加对代码的说明
所有团队成员在提交代码给其他成员审查前,必须先进行一次审查。这次自我修正形式的审查除了检查代码的正确性以外,还可以完成如下的工作:
(1)对代码添加注释,说明本次修改背后的原因,方便其他人进行审查。
(2)修正编码风格,尤其是一些关键数据结构和方法的命名,提高代码的可读性。
(3)从全局审视设计,是否完整的考虑了所有情景。在实现之前做的设计如果存在考虑不周的情况,这个阶段可以很好的进行补救。
我们在实践中发现,即使只有原作者进行代码审查,仍然可以很好的提高代码质量。
9.实现中记录笔记可以很好的提高问题发现率
成员在编码的时候应做随手记录,包括在代码中用注释的方式表示,或者记录简单的个人文档,这样做有几个好处:
(1)避免遗漏。在编码时将考虑到的任何问题都记录下来,在审查阶段再次检查这些问题都确认解决。
(2)根据研究,每个人都习惯犯一些重复性的错误。这类问题在编码是记录下来,可以在审查的时候用作检查的依据。
(3)在反复记录笔记并在审查中发现类似的问题后,该类问题出现率会显著下降
10. 使用好的工具进行轻量级的代码审查
“工欲善其事,必先利其器”。我们使用的是bitbucket提供的代码托管服务。
每个团队成员独立开发功能,然后利用Pull Request的形式将代码提交给审查者。复审者可以很方便在网页上阅读代码,添加评论等,然后原作者会自动收到邮件提醒,对审阅的意见进行讨论。
即使团队成员分布在天南海北,利用bitbucket提供的工具也能很好的进行代码审查。
来源:坚果云投稿(一个用于移动办公的安全云存储服务)。
发表评论
-
andriod访问触屏版网站
2014-05-15 18:54 670代码如下: import android.app.Ac ... -
用超链接改变iframe的src
2014-04-10 14:38 2029<script> function dizhi( ... -
类似百度文档库的flash播放器FlexPaper
2011-11-29 16:32 1565你可以从http://flexpaper.googlecode ... -
grails html静态页面乱码解决
2011-10-19 10:38 1187在catalina.bat下面的 :noJuliConfig ... -
3d图片展示
2011-10-02 21:19 680http://www.ajax-zoom.com/exampl ... -
图片裁剪
2011-10-02 21:15 761图片裁剪 http://www.script-tutorial ... -
批处理-实现飞信免费发短信-可以集成到日常批处理文件,做监控用
2011-08-05 12:45 1426批处理-实现飞信免费发短信 可以集成到日常各种批处理文件,做 ... -
eclipse3.7的svn插件的更新地址
2011-07-22 16:09 6297eclipse3.7的svn插件的更新地址 http://su ... -
俄罗斯方块
2010-06-13 17:55 926import java.awt.*; import java ... -
软件文档知多少
2010-03-01 23:24 685如今,软件开发越来越 ... -
键盘上每个键作用!!! (史上最全的)
2010-02-22 14:48 888键盘上每个键作用!!! (史上最全的) F1帮助 F2改名 ... -
烟叶收购--等级数据查询
2010-02-02 12:30 0等级数据查询 --禄丰县县级别等级数据 select xia ... -
在线的代理
2010-01-20 22:26 0代理 http://www.gwait.com/ -
解决open flash chart 2在IE下刷新无法改变的问题
2009-12-01 10:16 40151.碰到如下问题: open flash chart 2在IE ... -
JavaScript的onlick的方法在ie下可以,却在firefox下面不可以
2009-11-30 12:40 1548最近被一个问题困扰JavaScript的onlick的 ... -
建设一个网站
2009-11-24 19:20 0http://www.ecshop.com/ 商 ... -
已知1970.1.1到现在的毫秒数,返回格式化的时间
2009-11-18 17:14 2045Date date= new Date(); ... -
批处理文件bat 语法
2009-09-07 00:08 1197转自:http://blog.csdn.net/dhpower ... -
悟透JavaScript
2009-07-30 14:49 813介绍javascript的好文, http://www.cnb ... -
503,Access is denied(访问被拒绝)错误解决
2009-07-16 20:37 3014今天做项目碰到一个问题,就是Access is denied, ...
相关推荐
【PHP高效代码编写经验】 在Web开发领域,PHP作为一门广泛应用的服务器端脚本语言,其性能和效率对于网站的运行至关重要。为了提高PHP代码的性能,开发者需要深入理解影响PHP运行速度的因素,并掌握相应的优化策略...
微软中国研究院分享了“写好代码的十个秘诀”,旨在帮助开发者提升编码技能,实现更高效、更优雅的编程。以下是对这十个秘诀的详细解读: 1. **明确目标与设计** 编码前应明确功能需求,进行良好的设计,包括模块...
10. **文档与社区支持**:一个完善的系统需要有详细的文档来指导用户使用,同时,活跃的社区可以提供技术支持和经验分享,促进系统的持续改进。 综上所述,codeReviewSystem通过laravel框架和HTML前端技术,为...
9. **代码审查**:阐述了代码审查的目的和流程,帮助开发者养成良好的代码习惯。 10. **版本控制**:讲解了Git等版本控制工具的使用,以及如何有效地进行代码提交和协作。 此外,书中还可能包含关于文档编写、项目...
这些工具提供了方便的代码对比、讨论和合并功能,有助于团队成员更高效地进行代码审查。 2. **自动化工具**:除了手动审查外,还有自动化代码审查工具,如ESLint、Pylint等,它们能自动检测代码风格问题和潜在的...
本篇文章基于《Best Practices for Peer Code Review》一文的内容,深入探讨了科学验证及实践经验支持下的11条高效、轻量级的同行代码审查最佳实践。通过这些技巧的应用,可以确保代码审查不仅能够提升代码质量,还...
7. **代码审查**:代码之美也体现在团队协作中,书里可能会讨论代码审查的重要性,以及如何有效地进行代码审查,提升团队的整体代码质量。 8. **软件工程原则**:遵循一些基本原则,如单一职责原则、开闭原则等,...
ChatGPT可以理解并分析代码,帮助程序员进行快速的代码审查。当你有一段不确定的代码或者遇到难以解决的bug时,只需将代码片段输入ChatGPT,它可能会提供修正建议或者解释代码的工作原理,从而加速问题的解决过程。...
6. **代码审查**:代码审查是保证代码质量的重要手段,书中介绍了如何进行有效的代码审查,以及审查过程中应注意的问题。 7. **文档与注释**:良好的文档和注释可以使代码更易于他人理解和维护,书中提供了编写清晰...
10. **代码审查**:代码审查是提高代码质量的重要环节,书中介绍了如何进行有效的代码审查,包括审查的流程、技巧和目标。 总的来说,《代码大全》是一本综合性的编程指南,涵盖了软件开发的各个阶段,从编码规范到...
《代码大全2》是Steve McConnell...《代码大全2》涵盖了软件开发的多个方面,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过阅读和实践书中的建议,可以不断提升自己的编程水平,成为一名优秀的程序员。
9. **代码审查**:代码审查是提升团队协作和代码质量的有效手段。PPT可能会讲解代码审查的目的、流程以及有效审查技巧。 10. **文档与注释**:高质量的文档是软件项目不可或缺的部分。PPT可能涵盖了编写API文档、...
作者Trisha Gee是一位经验丰富的开发者,她在书中分享了关于代码审查的重要技巧。 在进行代码审查时,我们需要考虑以下几个关键点: 1. **测试**:审查代码时,首先应检查是否包含相应的测试用例。测试能确保新...
林斌博士在其著作《写好代码十个秘诀》中,分享了一系列宝贵的编程经验和技巧,旨在帮助开发者们提高代码的质量,提升软件的性能与可维护性。下面,我们将对林斌博士提出的这十个秘诀进行深入解析,希望能为读者带来...
- 定期进行代码审查和重构,保持代码的整洁和高效。 - 利用重构工具自动完成重复工作。 ### 13. 代码简洁 - 遵循DRY(Don't Repeat Yourself)原则,避免重复代码。 - 采用合适的抽象层次,使代码更易于理解。 ###...
书中阐述了代码审查的最佳实践,包括何时进行、如何提出建设性反馈以及如何处理审查结果。 8. **性能优化**:尽管“过早优化是万恶之源”,但了解如何分析和优化性能仍然是必要的。书中讲解了性能瓶颈的识别、基准...
9. **代码审查**:书中提倡代码审查作为提升代码质量的重要手段,解释了如何有效地进行代码审查并提出建设性的反馈。 10. **持续集成与自动化**:随着敏捷开发的普及,持续集成和自动化测试成为现代软件开发的基石...
3. **文件查找与替换**:EditPlus提供了强大的查找和替换功能,不仅能在当前文档中进行操作,还能在整个项目或指定目录下进行全局搜索,这对代码审查和修改非常有用。 4. **宏录制与播放**:对于需要重复执行的操作...
10. **代码审查**:强调了代码审查作为提升团队协作和代码质量的有效手段,阐述了如何进行有效的代码审查和提出建设性反馈。 11. **文档编写**:鼓励编写清晰的文档,包括类和函数的文档字符串、用户手册和API参考...