第四章 两人合作

时间:2022-01-05 23:47:45

     现代软件产业经过几十年的发展,一个软件由一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的。合作的最小单位是两个人,两个工程师在一起,做的最多的事情就是“看代码”,每个人都能看“别人的代码”,并发表意见。但是每个人对于什么是“好”的代码规范未必认同,这时我们很有必要给出一个基准线——什么是好的代码规范和设计规范。

 

一、代码规范

     1.代码风格规范。(文字上的规范)

     原则:简明,易读,无二义性。(保持简明,让代码更容易读懂)

       ①缩进(4个空格)

       ②行宽(可以是100字符)

       ③括号

       ④断行与空白的{}行

       ⑤分行(多条语句分行放,多个变量分行定义)

       ⑥命名(可以适当的加一些前缀)

       ⑦下划线(分隔变量名字中的作用域标注和变量的语义)

       ⑧大小写(区分单词)

        ⑨注释

        

     2.代码设计规范。

        不光是程序书写的格式问题,而且牵涉到程序设计、模块之间的关系、设计模式等等方面。

        还有一些跟具体设计语言有关的内容。

         ①函数(功能)

         ②goto(单一的出口)

         ③错误处理

         1)参数处理(验证其正确性)

          在Debug版本中,对所有的参数都要验证其正确性;

          在正式版本中,对从外部(用户或别的模块)传递过来的参数要验证其正确性。

         2)断言Assert(验证正确性)

          当你觉得某事肯定会是怎么样的话,就可以用断言。

         3)如何处理C++中的类

 

代码复审的目的在于:

1.找出代码的错误,比如:

1)编码错误,比如一些碰巧骗过了编译器的错误

2) 不符合团队代码规范的地方

2. 发现逻辑错误,程序可以编译通过,但是代码的逻辑是错的

3. 发现算法错误,比如使用的算法不够优化,边界条件没有处理好等

4. 发现潜在的错误和回归性错误—当前的修改导致以前修复的缺陷又重新出现

5. 发现可能需要改进的地方

6. 教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识

结对编程让两个人所写的代码不断地处于“复审”的过程,程序员们能够不断地审核,提高设计和编码质量,可以及时发现并解决问题,避免把问题拖到后面的阶段去。

开发中的复审主要包括:设计复审、代码复审、测试计划复审和文档复审。

这些复审可以在伙伴之间进行,也可以在团队内部进行。

 

 

 

两个人合作的不同阶段

1. 萌芽阶段(Forming) 两人刚刚互相认识,这时大家都有礼貌,一般交流不少,双方彼此并不了解。

2. 磨合阶段(Storming) 

3. 规范阶段(Norming) 

4. 创造阶段(Performing)

5. 解体阶段(Deforming)

如何正确的给予反馈

1.最外层:行为和后果

行为可以改正,后果可以弥补,还有挽回局面的机会

2.中间层:习惯和动机

被攻击的一方就比较难表白并且澄清动机

3.最内层:本质和固有属性

当攻击深入到核心,被攻击一方已经无法回应

 

如果软件工程师连一对一的合作都做不好,不能有效地影响同伴,让合作双方都从中受益,提高水平的话,更别提团队合作了,影响了团队合作,从而影响了整个公司的利益。

所以首先要做好两个人的合作