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

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

一、            代码风格规范

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

/*

_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。

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/hhhua/p/8849445.html

时间: 2024-11-02 15:21:21

软件工程读书笔记(六)——结对编程那些事的相关文章

构建之法阅读笔记三—结对编程

构建之法阅读笔记三——结对编程 何谓结对编程,结对编程就是程序员肩并肩,平等的,互补的进行开发工作,他们使用同一台电脑,编写同样的程序,一起分析,一起设计,一块交流想法. 然而我以前却并不是这样做的,我以前喜欢在没人打扰的环境下写代码,我觉得有人在我身边看着,会影响我的思路,还有我个人自尊心比较强,不太喜欢被人指指点点,所以每次都是,我写完代码之后,自己先找自己的bug,每当自己实在找不到之后,才会请教大神,但是有时候可能由于自己的能力不足,往往一个很简单的问题,我自己发现就会花费很久的时间,让

读书笔记-----Java并发编程实战(一)线程安全性

线程安全类:在线程安全类中封装了必要的同步机制,客户端无须进一步采取同步措施 示例:一个无状态的Servlet 1 @ThreadSafe 2 public class StatelessFactorizer implements Servlet{ 3 public void service(ServletRequest req,ServletResponse resp){ 4 BigInteger i = extractFromRequest(req); 5 BigInteger[] fact

悟道—位IT高管20年的职场心经(读书笔记六)

悟道--一位IT高管20年的职场心经 第七章  关于销售 用"最"来形容公司的销售,可以用上若干的词汇: 最牛,最累,最精,最傻,最有钱,最贱,最能吹,最能装... 1.1  销售人得基本素质 善胜者不争,善争者不战,善战者不败,善败者不乱. 五勤:嘴勤.腿勤.手勤(勤读勤记).耳目勤(多看多听).脑勤(勤思勤省). 能吃苦:身体之苦,巨大的心理压力. Not too hard, to be smarter! 1.2  销售VS前锋 最重要的是"临门一脚".拿下单子

软件工程第二次作业—结对编程

一. 作业要求 两人组成一队,进行结对编程. 从第一次软件工程作业中选出一人的作业作为这次作业的基础. 设计一个图形界面(GUI)的四则运算应用程序,可以是PC桌面的图形界面程序.网页程序或者手机程序. 设计的应用程序可以完成加法.减法.乘法.除法运算. 应用程序可以完成真分数的四则运算. 例如:1/2 + 1/3 = 5/6 例如:1/5 + 3/10 = 1/2(而不是5/10) 例如:1'1/3 - 2/3 = 2/3 (是1'1/3而不是4/3,注意:" ' "为1'1/3整数

软件工程(3)结对编程

本次结对编程录制视频时选择完成退票功能,组长负责写代码,我监督并尝试指出写代码过程中出现的问题. 选择退票功能进行结对编程的好处是双方都熟悉抢票部分的代码(而由于其他课程作业耽误了本组开发进度的我并不熟悉组长写的活动部分的代码),退票的逻辑与之类似,适合结对编程. 结对编程的过程中没有遇到太多问题,我真正指出的错误应该只有要将Handler的类加入view里面,其他的感觉更像是组长故意考验我--(隐约觉得如果上周六有时间的话,把组长教我如何写抢票的过程录下来更好--) 个人感觉此次结对编程是非常

结对编程一二事

一 结队编程过程 作为一次作业,我们进行了这次结对编程.这是我们第一次进行结队编程,感觉还是比较特别的. 这次结队编程的目的是完成微信抢票系统中的查票功能,由张诗文主写,我在旁边进行辅助和帮忙,也就是在旁边协助张诗文一起完成coding.整个过程还是比较流畅的,由于对项目的了解,加之两人之间相互帮助,当他思维阻塞时,我会帮助他疏导思想,当他出现bug时,我也能及时发现.最重要的是这个过程中,他会一直与我进行交流,这就相当于用两人之力共同完成一项任务. 二 遇到的问题 由于是第一次结对编程,而且还

软件工程第二次作业—结对编程1

结对编程队员: 马菊瑞 1500802066:https://www.cnblogs.com/mjr15/ 马晓燕 1500802046:https://www.cnblogs.com/MXY1239542491/ coding链接:https://coding.net/u/mjr1500802066/p/project/git/tree/master/ 程序实现各个功能截图: ?四则运算欢迎界面 ?综合练习(1) ?综合练习(2) ?结对编程图片 结对编程心得体会: ?最大的好处就是,两个人在

软件工程第二次作业----结对编程

队员: 旦切措毛  1500802071 博客地址:https://www.cnblogs.com/GDM1108/ 专格吉  1500802070   博客地址:https://www.cnblogs.com/zhuan11248/ Coding地址:https://coding.net/u/zhuan11248/p/Demo/git 程序实现和结果测试的截图 github的提交链接和提交日志截图 结对编程时的照片 结对编程的心得体会 任何人都不是完美的,与其两位程序员各自独立工作相比,结对编

“人向猿进阶”之软件工程第四课——结对编程

黄金点游戏 黄金点游戏是一个数字小游戏,其游戏规则是: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 现在请大家根据这个游戏规则,编一个可以多人一起玩的小游戏程序,要求如下: 1.本作业属于结对编程项目,必须由二人