第4章两人合作

1.结对项目的案例和论文

因为教材上给的案例是全英文的,而我的英语水平是异常异常的烂,看见英语就头疼,就没有了看见下去的欲望,我在网上找到了邹欣老师的观点,以下是他的观点。

总结1:那是project到了比较关键的创造阶段,整整一天,我们俩椅子靠椅子的坐在电脑前,一边讨论一般coding,那次才真正的体会到结对真的能够带来效率。一整天的coding是容易走神的事,还好有pair在旁边指导,总是不断在我敲某某变量之前提前告诉我成员变量的名字,数据修改时帮忙检查是否有漏掉的,变量和函数定义的时候一起为其取名字,感觉有点眼花了,就换了个角色,我也开始对他“指指点点”了,一个人coding,一个人review,确实能减少一些不必要的错误,减少一些漏洞,算法实现后一起做些简单的测试,看到bug了再一起分析,我能明显的感觉到与以前的个人编程不一样,我们能比较快的找到bug初始点,并能提出比较的修改方法。特别是当看到功能进一步实现时,心里确实挺happy,更重要的这份感受有同伴与你一起分享。

总结2:于是我们进行了项目中最关键的一次Pair Programming,我们利用编译课上机时间,在机房里Pair完成了整个项目的类的设计与程序结构的设计。我们一起分析出类,然后找属性,写方法头,开始是WG用键盘,后来我用。一个明显的好处是,写完一条自己不确定的语句,马上可以跟Pair一起缕一缕思路。一下午下来,感觉甚为清爽,因为终于清楚这个项目的做法了。

2.性格对合作的影响

人和人不一样,在和别人合作的时候,要注意各人表达观点的方式和思考的方式不尽相同。

迈尔斯布里格斯类型指标(MBTI)表征人的性格,是美国心理学家布里格斯和迈尔斯母女凯恩琳·布里格斯和她的女儿伊莎贝尔·布里格斯·迈尔斯制定的。该指标以瑞士心理学家荣格划分的8种类型为基础,经过二十多年的研究后,编制成了《迈尔斯-布里格斯类型指标》,从而把荣格的类型理论付诸实践。迈尔斯在荣格的优势功能和劣势功能、主导功能和从属功能等概念的基础上,进一步提出功能等级等概念,并有效的为每一种类型确定了其功能等级的次序,又提出了类型的终生发展理论,形成四个维度。约翰.毕比博士在《类型与原型》中,将心理类型理论和原型理论系统地结合在一起。华南师范大学申荷永教授将心理类型引进了中国并加以扩展这四个维度就是四把标尺,每个人的性格都会落在标尺的某个点上,这个点靠近哪个端点,就意味着这个人就有哪方面的偏好。

我的MBTI的类型是外倾直觉情感知觉(ENFP):热情洋溢、富有想象力。认为人生有很多的可能性。能很快地将事情和信息联系起来,然后很自信地根据自己的判断解决问题。总是需要得到别人的认可,也总是准备着给与他人赏识和帮助。灵活、自然不做作,有很强的即兴发挥的能力,言语流畅。

不同性格类型对合作是有很大影响的,所以要合作之人相互磨合,慢慢的培养彼此之间的默契,这样合作出来的成果也就越来越好。

3.是否需要代码有规范

代码是需要有规范的

每个人对于什么是“好”的代码规范未必认同,这时我们很有必要给出一个基准线—什么是好的代码规范和设计规范计算机只关心编译生成的机器码,你的程序采用哪种缩进风格,变量名有无统一的规范等,与机器码的执行无关。但是,做一个有商业价值的项目,或者在团队里工作,代码规范相当重要。“代码规范”可以分成两个部分:1. 代码风格规范——主要是文字上的规定,看似表面文章,实际上非常重要2. 代码设计规范——牵涉到程序设计、模块之间的关系、设计模式等方方面面的通用原则

4.代码复审的讨论

金无足赤,人无完人,这句话同样适用于代码,任何刚写出来的代码,都不可能是非常完美的,就像人一样,每个人都有这样或那样的缺点,需要我们自己或求助他人帮我们找出自身的缺点和不足,并加以改正,让自己不断的向完美靠近,这同样适用于程序,经过自己和团队其他成员的审核,检查,将程序中的bug和缺陷找出来并改正,让程序不断的向完美靠近。接下来就让我们谈谈如何复审。

首先,复审的人不可能只是自己,仅是自己不可能将程序中的bug全部找出来,还要依靠团队中对自己这部分比较熟悉的人审核,这样效率也比较高。审核的目的主要是查找编码错误,代码规范问题,还有逻辑错误,算法错误,发现潜在的错误和回归性错误,还有需要改进的地方,不仅是这样,复审还能更好地让团员之间更好地了解对方的开发风格,开发习惯等。在审核过程中,要将错误一一记录,如果是比较简单的,直接修改,记录或修改之后继续下一处,等到了最后将错误一一修改,并经过测试无错误之后就可以了。做完这些后,我们需要分析这些错误,进行反思,并将这些错误记住,下次不能再犯同样的错误。

在团队开发的时候,我们经常忽略代码复审的这个环节,每个人自己写完自己的代码之后,自己做测试,自己认为没问题之后就不再管,直到整合的时候,在发现问题就晚了。然而我们忽略的这个环节恰恰是最重要的环节,尤其是对于那些刚刚成立的小组,组员之间彼此都不太熟悉,不了解各自之间的开发风格和习惯,通过代码复审这个过程,让其他人审核饿自己的代码,在找自己错误的过程中了解这个人的开发习惯,这样不但可以增进队友之间的熟悉度,也可以让别人了解你经常犯错的地方。下次可以快速的帮你找到问题,当然找到我们发错误之后,我们要努力改正。通过这本书,我了解到代码复审的重要性,所以在下次的项目中,一定要增加真个过程,让组员之间更加熟悉,了解。

5.阅读别人的代码有多难

我们经常抱怨阅读别人的代码很难, 我们自己在写代码的时候,或许也没有考虑到如何让代码更易于阅读和维护。

几乎很少有人能读代码但不会写代码。所以我们在编写代码时,尽力去做一些事,目的就是使其他人能轻松阅读:1. 使代码遵从工具2. 坚持使用一种命名模式3. 使用断言来记录先决条件(preconditions)和后置条件(postconditions)4. 别缩写英文单词确切来说,别缩写成稀奇古怪的形式。5. C语言标准运行时库的设计不是很优秀。别去效仿它6. 别写“聪明”的代码当代码出现问题,维护代码的程序员没时间去理解你的聪慧。7. 理解编程语言特性的设计初衷,使用这些特性去做它们适合完成的工作,而不是它们能做到的工作8. 按功能单元划分源码树,而不是按组织结构。

6.对于编程中不好的习惯-你经历过么,如何提醒同伴改进

在合作编程中,肯定会出现或多或少的矛盾,那么我们要做到的是善于解决这些矛盾,而不是让矛盾加深。对于不同的分歧问题要大胆的提出,而不是窝在心里不去解决,这样你的同伴也意识不到问题,自己还感觉窝火,两人合作最重要的就是沟通。

原文地址:https://www.cnblogs.com/July1/p/9031409.html

时间: 2024-11-03 23:47:18

第4章两人合作的相关文章

构建之法学习(第四章 两人合作)

第四章 两人合作 1.代码规范  1)代码风格规范.主要是文字上的规定,看似表面文章,实际上非常重要. *原则:简明,易读,无二义性 *缩进:4个空格 *行宽:行宽必须限制,可以限定为100字符 *括号:在复杂的条件表达式中,用括号清除地表示逻辑优先级 *断行与空白的{}行:推荐格式如下 if ( condition ) {        DoSomething(); } else {       DoSomethingElse(); } *分行:不要把多条语句放在一行上.并且,不要把多个变量定

2018--20179215--《构建之法(第三版)》第四章 两人合作

构建之法 第四章 读书笔记 4.1代码规范 代码规范可以分为两部分: 代码风格规范-主要是文字上的规定 代码设计规范-牵涉到程序设计.模块之间的关系.设计模式等方方面面的通用原则 4.2代码风格规范 代码风格的原则是:简明,易读,无二义性. 缩进:4个空格的距离阅读性最好. 行宽:可限制为100个字符. 分行:不要把多条语句放在一行,每个"{"和"}"单独占一行,不要把多个变量放在同一行. 命名:不要提到类型或其他语法方面的描述:避免过多的描述:避免可要可不要的修饰

构建之法 第四章 两人合作

两人合作是团队合作的基础:这里介绍的这个基础型"团队"中通用的一些方法以及最重要的--交流--的细节 1.代码规范 代码风格规范.主要是文字上的规定: 缩进:4个空格,而不是tab: 关于断行与空白的{}行:[作者的建议深得我心--{ .}单独占一行:中间的代码缩进] 下划线:用来分割变量名字中的作用域标注和变量的语义 大小写:通用的做法是,所有的类/函数名都采用所有单词首字母大写(Pascal)的形式:所有的变量首字母小写,随后的单词首字母大写(Camel): 注释:解释程序做什么.

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

1 代码风格规范 4个空格的缩进 每个{}独占一行 不要把多个变量定义在一行上 一个类型的成员变量用m_name来命名 Pascal:所有的类型/类/函数名 lowerCamel:变量 注释是为了解释程序做什么(What),为什么这么做(Why),以及要特别注意的地方,只用ASCII字符,不要用中文 函数:只做一件事,并且要做好 单一出口 不要在构造函数中做复杂的操作,简单初始化所有的数据成员即可 看代码是否在代码规范的框架内正确地解决了问题 早期斤斤计较于一些细枝末节也是于大局无补的,但是,这

《构建之法》第四章“两人合作”读后感

团队合作在一个企业的作用是至关重要的:第一,通过团队合作,可以营造一种工作氛围,使每个队员都有一种归属感,有助于提高团队成员的积极性和效率:第二,通过团队合作,有利于激发团队成员的学习动力,有助于提高团队的整体能力:第三,团队合作可以实现“人多好办事”,团队合作可以完成个人无法独立完成的大项目:第四,团队合作有利于产生新颖的创意:第五,通过团队合作可以约束规范和控制成员的行为:第六,团队合作更有利于提高决策效率.所以说一个好的团队的总体力量,超过每一个个体力量的总和. 在软件开发的过程中,团队开

读完第四章《两人合作》的内容后的总结

两人合作是团队合作的基础:这里介绍的这个基础型"团队"中通用的一些方法以及最重要的--交流--的细节 1.代码规范 代码风格规范.主要是文字上的规定: 缩进:4个空格,而不是tab: 关于断行与空白的{}行 下划线:用来分割变量名字中的作用域标注和变量的语义 大小写:通用的做法是,所有的类/函数名都采用所有单词首字母大写(Pascal)的形式:所有的变量首字母小写,随后的单词首字母大写(Camel): 注释:解释程序做什么.为什么这样做以及要特别注意的地方.注释只用ASCII码字符,不

三读《构建之法》——源代码的设计、实现、控制与两人合作

现在,<构建之法>的一大半已经读完了,在这一大半本书中,这一部分可以说是对我触动最大的,也应该是整本书对我触动最大的. 整个第二章围绕测试展开,用一个很生动的类比告诉了我们测试的重要性:如果有人说,"一个人写写程序玩玩,单元测试似乎不那么重要.",那么你可以回应他:"你可以大胆对你的女朋友说:'我们只是玩一玩.'看看效果如何". namespace DemoUser{ public class User{ public User(String userE

《构建之法》--两人合作

本周学习的是<构建之法>的第四章,这章的主题是两人合作,看到这个题目我的第一反应是现在两人合作的项目还很多吗?因为我一直认为一个项目一般是几个人或是十几个人这样的团队来合作完成的,这个思想也不知道是看到了什么有的.值得一提的是,书中的第五章就是讲团队合作的. 合作的最小单位是两个人,合作过程中必然存在着个人看法,比如一个人看另一个人的代码时就不一定同意其看法了,每个人心中对于好代码的定义也不尽相同,这时候就很有必要给出一个基准线--什么是好的代码规范和设计规范. 看到课本上代码清单4-1,的确

两人合作源代码管理的基本操作

在编写程序过程中,程序代码不仅仅是给机器看,同时也会给与之合作的完成软件的同伴看,但是如果程序代码不符合代码规范,就很难让除自己之外的人看懂. 两人合作时的不同阶段和技巧: 1.萌芽阶段 两人刚开始合作,交流不少,试图避免冲突和容易引起挑战的观点,两人有不同的期望值,但是双方彼此并不了解. 2.磨合阶段 合开合作,但是会有不同程度的摩擦. 3.规范阶段 双方代码逐渐相似,一些不成文的规则逐步建立起来了. 基本操作: 在分析好需求,确定了最终设计文档后,需要设计具体的代码. 在设计代码前,需要确定