【构建之法】第4章-两人合作

本章重点:

  • 代码规范
  • 极限编程
  • 结对编程
  • 两人合作的不同阶段
  • 影响他人的技巧

1 代码规范

代码规范可以分成两个部分:

  • 代码风格规范:主要是文字上的规定;
  • 代码设计规范:牵涉到程序设计、模块之间的关系、设计模式等方方面面的通用原则。

1.1 代码风格规范

代码风格的原则是:简明,易读,无二义性

规范说明
缩进空格 or Tab?
行宽/
括号在复杂的条件表达式中,用括号清楚地表达逻辑优先级
断行于空白的{}行{和}都独占一行,用于明确展示程序的结构
分行不要把多条语句放在一行上
命名统一命名规范
下划线/
大小写用大小写区分多个单词组成的变量/函数等(驼峰命名法)
注释有些程序本身就可以说明其是怎么工作的,避免多余的注释

1.2 代码设计规范

规范说明
函数只做一件事,并且要做好(单一职责原则)
goto/
错误处理-参数处理:对从外部(用户或别的模块)传递过来的参数,要验证其正确性;
-断言:用于验证正确性;
如何处理C++中的类
(详细内容参加原书第70页)
-类
-class vs. struct
-公共/保护/私有成员(public、protected和private)
-数据成员
-虚函数(Virtual Function)
-构造函数(Constructors)
-析构函数(Destructor)
-new和delete
-运算符(Operators)
-异常(Exceptions)
-类型继承(Class Inheritance)

2 代码复审

代码复审的正确定义:看代码是否在代码规范的框架内正确地解决了问题。

2.1 代码复审的形式

名称形式目的
自我复审自己 vs. 自己用同伴复审的标准来要求自己。不一定最有效,因为开发者对自己总是过于自信。如果能持之以恒,则对个人有很大好处
同伴复审复审者 vs. 开发者简便易行
团队复审团队 vs. 开发者有比较严格的规定和流程,适用于关键的代码,以及复审后不再更新的代码;
覆盖率高-有很多双眼睛盯着程序,但效率可能不高(全体人员都要到会)

2.2 代码复审的目的

  • 找出代码的错误:编码错误、不符合团队代码规范的地方;
  • 发现逻辑错误;
  • 发现算法错误;
  • 发现潜在的错误和回归性错误;
  • 发现可能需要改进的地方;
  • 教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识。

2.3 代码复审的步骤

在复审前,要确保以下事情:

  • 代码必须成功地编译,在所有要求地平台上,同时要编译Debug | Retail版本,编译要用团队规定的最严格的编译警告等级(如C/C++中的W4);
  • 程序员必须测试过代码;
  • 程序员必须提供新的代码,以及文件差异分析工具;
  • 在面对面的复审中,一般是开发者控制流程,讲述修改的前因后果。但是复审者有权在任何时候打断许数,提出自己的意见;
  • 复审者必须逐一提供反馈意见;
  • 开发者必须负责让所有的问题都得到满意的解释或解答,或者在TFS(Team Foundation Server,一种分布式文件系统)中创建新的工作项以确保这些问题会得到处理;
  • 对于复审的结果,双方必须达成一致的意见;

2.4 代码复审的核查表

  • 概要部分:代码是否符合需求规格说明、设计是否考虑周全、可读性、可维护性等;
  • 设计规范部分;
  • 代码规范部分;
  • 具体代码部分:错误处理、无用元素等;
  • 效能;
  • 可读性;
  • 可测试性:是否有单元测试,是否更新测试代码。

3 结对编程

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值