程序员写的代码最终是人在看,所以代码规范很重要,原则是:简明,易读,无二义性。
不光是程序书写的格式问题,还牵涉到程序设计、模块之间的关系、设计模式等方方面面。
代码复审的正确定义看代码是否在代码规范的框架内正确的解决了问题
代码复审的目的在于:
1.找出代码的错误,比如:
1)编码错误,比如一些碰巧骗过了编译器的错误
2) 不符合团队代码规范的地方
2. 发现逻辑错误,程序可以编译通过,但是代码的逻辑是错的
3. 发现算法错误,比如使用的算法不够优化,边界条件没有处理好等
4. 发现潜在的错误和回归性错误—当前的修改导致以前修复的缺陷又重新出现
5. 发现可能需要改进的地方
6. 教育(互相教育)开发人员,传授经验,让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识
结对编程让两个人所写的代码不断地处于“复审”的过程,程序员们能够不断地审核,提高设计和编码质量,可以及时发现并解决问题,避免把问题拖到后面的阶段去。
开发中的复审主要包括:设计复审、代码复审、测试计划复审和文档复审。
这些复审可以在伙伴之间进行,也可以在团队内部进行。
两个人合作的不同阶段
1. 萌芽阶段(Forming) 两人刚刚互相认识,这时大家都有礼貌,一般交流不少,双方彼此并不了解。
2. 磨合阶段(Storming)
3. 规范阶段(Norming)
4. 创造阶段(Performing)
5. 解体阶段(Deforming)
如何正确的给予反馈
1.最外层:行为和后果
行为可以改正,后果可以弥补,还有挽回局面的机会
2.中间层:习惯和动机
被攻击的一方就比较难表白并且澄清动机
3.最内层:本质和固有属性
当攻击深入到核心,被攻击一方已经无法回应
如果软件工程师连一对一的合作都做不好,不能有效地影响同伴,让合作双方都从中受益,提高水平的话,更别提团队合作了,影响了团队合作,从而影响了整个公司的利益。
所以首先要做好两个人的合作
两人的合作—如何影响对方
两人在一起合作,自然会出现不同意见,每个人都有自己的想法,在两个人平等合作的情况下,不存在领导与被领导的关系,如何能说服对方?这个时候不是比谁的嗓门大,首先双方要意识到,问题早点出现要比晚点出现好很多,我们有机会早日解决问题。除了技术方面的考虑之外,一个成熟的工程师要琢磨对方的话语和观察对方的肢体语言,了解它们所表示的潜台词,试着从对方的角度看待问题。