软件工程读书笔记(六)——结对编程那些事

 

         现代软件产业经过几十年的发展,已经形成了项目组合作的形式,几乎不存在一个人完成所有工作的情况,一个团队最少有两个人组成,那么两人合作的过程中有什么需要关注的地方呢?

一、            代码风格规范

程序员写的代码是给电脑看的,能运行就是好代码;但对于结对编程来说,能让另一个人理解你的代码,迅速掌握你代码的逻辑关系至关重要,如果代码格式写成下图这种艺术形式,可就让人头疼了。

/*

                           _ooOoo_

                          o8888888o

                          88" . "88

                          (| -_- |)

                          O\  =  /O

                       ____/`---'\____

                     .'  \\|     |//  `.

                    /  \\|||  :  |||//  \

                   /  _||||| -:- |||||-  \

                   |   | \\\  -  /// |   |

                   | \_|  ''\---/''  |   |

                   \  .-\__  `-`  ___/-. /

                 ___`. .'  /--.--\  `. . __

              ."" '<  `.___\_<|>_/___.'  >'"".

             | | :  `- \`.;`\ _ /`;.`/ - ` : | |

             \  \ `-.   \_ __\ /__ _/   .-` /  /

        ======`-.____`-.___\_____/___.-`____.-'======

                           `=---='

        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

                 佛祖保佑       永无BUG

*/

所以,需要制定一套行之有效的代码风格:简明、易懂、无二异性。

    这里记录一下邹老师总结的代码风格规范:

  1. 缩进使用4个空格,因为tab在不同情况下会显示不同的长度。
  2. 行宽100。
  3. 复杂表达式中用括号表达优先级,使逻辑清晰。
  4. 断行使用如下格式:

If(condition)

{
    DoSomething();

}

Else

{

    DoSomethingelse();

}

  1. 一条语句放一行方便调试时设置断点。

接下来着重讲一下命名方案:匈牙利命名法,基本原则是:变量名=属性+类型+对象描述。举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为 frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成 lblSwitchboard。同时注意要避免过多的描述,如果信息可以从上下文中得到,那么此类信息就不必写在变量名中。

 

二、            代码设计规范

  1. 函数,最重要的原则:只做一件事。
  2. 函数需要有单一出口,可以借助goto达到这一目的,有助于程序逻辑的清晰体现。
  3. 错误处理:对传入参数验证正确性,对指针验证其正确性。
  4. 如果只是对数据进行封装,用struct即可不必使用class。
  5. New之后记得要delete。

 

三、            结对编程的优势

1、互相鼓励,不容易沮丧:团队工作能增加成员的工作积极性。因为在面对问题的时候,会有人一起分担,共同尝试新的策略。

2、互相监督,不容易偷懒:两个人一起工作需要互相配合,如果想偷懒去干别的,就会拖延工作进度。

3、互相学习编程技巧:在编程中,相互讨论,可以更快更有效地解决问题,互相请教对方,可以得到能力上的互补。

4、可以培养和训练新人:让资深开发者和新手一起工作,可以让新人更快上手。

5、多双眼睛,少点 bug:两人互相监督工作,可以增强代码和产品质量,并有效的减少 BUG。

 

 

         在学校中较难实现真正意义上的结对编程,只能实现两人合作,合作过程中出现分歧,如何高效解决,给对方积极的反馈。三明治法是一个不错的选择:“三明治”式的批评,是指对某个人先表扬、再批评、接着再表扬的一种批评方式。由于这种批评方式并不是一味地采取批评的手段,而是在二层厚厚的表扬之间夹杂着批评,因此被称为“三明治”式的批评。

例如电视剧《西游记》中,在孙悟空保护唐僧取经的过程中,佛祖曾说过三句话:

你这泼猴,一路以来不辞艰辛保护师傅西天取经。

这次何故弃师独回花果山,不信不义。

去吧,我相信你定能发扬光大,保护师傅取得真经。

这三句话褒中有贬,既肯定了孙悟空前面保护唐僧的所作所为,又批评了他这次的不信不义,最后提出目标和期望,恰到好处地激励了孙悟空的斗志。

在团队合作中掌握了适当的建议方式,使团队能和睦融洽,才是生存之道。

posted @ 2018-04-15 21:00  hhhua  阅读(153)  评论(1编辑  收藏  举报