软件开发中的代码质量审查

Posted on Tue 05 August 2008 in it

落实

 

 

审查者

 

研发组长对本组提交的代码质量进行检查

 

检查关键点

 

  1. 检查代码符合编码规范;  
  2. 是否有足够清晰的注释;
  3. 检查数据库、文件等资源完全关闭。(测试层面解决:rnd减少连接池数量;本机性能测试;)
  4. 代码检查不必花很长时间的,编码和评审大致5:1的时间。

 

检查时机

 

  • 项目或短期任务上线前,由开发人员主动发起,请组长检查。
  • 架构组目前由我检查。

 

参考

 

  • 敏捷开发中和保证代码质量有关的实践有很多,我觉得在项目经理或研发经理、组长们可以学习一下,挑一些在自己负责的开发工作中做一下实践。
  • 咱们推行的代码质量审核,是要求编码者的上级来审核代码,这和敏捷开发中的结对编码,一个人写完的代码,要讲给另外一个人,请他来看。目标是一样的,但执行上结对编程更能激发团队成员的积极性。

 

结对开发

 

  • Pair programming is a software development technique in which two programmers work together at one keyboard. One types in code while the other reviews each line of code as it"s typed in. The person typing is called the driver. The person reviewing the code is called the observer or navigator. The two programmers switch roles frequently.
  • 结对开可以用来培养新人,提高代码质量。经典的结对编程是指两人共用一台电脑,一人编码,一人查看,实时沟通。结对编程是共同分享技术挑战和难题,共同享受编码的乐趣。这会显著降低程序员的工作枯燥程度,提高技术水平。结对已经成为很多技术团队的主要的培训方式。
  • 但 我们也应该看到,结对开发对开发资源,还是有一定要求的。在实际实施中,在资源允许的情况下,我们可以安排一人编码。当编码结束后,再引入另外一个人。由 编码者向新人讲解代码改动原因,改动地方,请新人检查改动的代码。逐步实施Pair Programming标准,保证代码质量。

 

测试先行

 

  • 所 有项目都要求以TDD的方式开发,要求先编写测试代码,然后再编写功能代码,使得这个测试被通过。新程序员入职最先接触到的就是TDD的知识和各种培训。 我们大量采用了Autotest这种工具,使得测试代码在开发过程中持续运行。甚至为了更方便查看,每个成员都配备了第二个显示器,其主要用途就是为了显 示测试运行结果。

 

短周期迭代

 

  • 敏捷开发中讲究短周期的迭代,尽量缩短项目Release的时间。NibiruTech做到每天自动部署到测试服务器上,方便远程的客户直接在互联网上查看当天的产品进度,并及时提交反馈。

 

每日晨会

 

  • 每 日晨会上,大家回答“昨天做了什么工作?”、“今天计划做什么工作”。早上项目组的人到齐后,第一件事就是站成一个圆圈,依次讨论昨天的工作和今天的计 划。期间也有很多关于项目的整体需求,技术难点的讨论。由于大家都是站立开会,会议鼓励简短,高效的发言,显著提高了项目组的内部沟通和信任,每日晨会的 帮助很大。
  • 从 我们的实践经验来看,执行力无疑是实施过程中很重要的因素。任何流程的形成都需要很大的决心和长期的努力。我们的经验是,一项一项地进行实施。实施过程中 不断进行调整和反省,当TDD成为一种习惯后,便开始晨会,几个星期后,晨会也成为团队习惯了,就能进行下一步。需要团队中有人强力地坚持推行敏捷思路, 而且要慢慢推进,一项一项地推进。