码迷,mamicode.com
首页 > 其他好文 > 详细

结对作业

时间:2018-04-07 17:39:53      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:前台   编程人员   产品质量   arch   规范   内容   依赖   实践   分解   

1.coding.net地址:

2.12.PSP:

SP2.1

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

30

60

·        Estimate

·   估计这个任务需要多少时间,并规划大致工作步骤

30

60

Development

开发

35*60+25分

45*60分

·        Analysis

·         需求分析 (包括学习新技术)

60

45

·        Design Spec

·         生成设计文档

0

0

·        Design Review

·         设计复审 (和同事审核设计文档)

2*60

3*60

·        Coding Standard

·         代码规范 (为目前的开发制定合适的规范)

10

15

·        Design

·         具体设计

12*60

12*60

·        Coding

·         具体编码

2*8*60

3*8*60

·        Code Review

·         代码复审

4*60

4*60

·        Test

·         测试(自我测试,修改代码,提交修改)

15

60

Reporting

报告

5.5*60

9*60

·         Test Report

·         测试报告

60

0

·         Size Measurement

·         计算工作量

30

60

·         Postmortem & Process Improvement Plan

·         事后总结, 并提出过程改进计划

4*60

8*60

3.看教科书和其它资料中关于Information Hiding, Interface Design, Loose Coupling的章节,说明你们在结对编程中是如何利用这些方法对接口进行设计的。

  Information Hiding:信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。

1972年,David Parnas 发表了一篇题为《论将系统分解为模块的准则》的论文首次让公众注意到信息隐藏这一概念。 信息隐藏式结构程序设计与面向对象设计的基础之一。在面向对象设计中,它又引出了封装和模块化的概念,并与抽象的概念紧密相关。 信息隐藏是软件的首要技术使命中格外重要的一种启发式方法,因为它强调的就是隐藏复杂度。

  信息隐藏在设计的所有层次上都有很大作用:从用具名常量代替字面常量,到创建数据类型,再到类的设计、子程序的设计以及子系统的设计等等。

  为什么要隐藏?

  1. 隐藏复杂度:这样你就不用再去应付它,除非你要特别关注的时候;
  2. 隐藏变化源:这样当变化发生时,其影响就能被限制在局部范围内。复杂度的根源包括复杂的数据类型、文件结构、布尔判断以及晦涩的算法等等。

  例如:把具体调用的数字信息隐藏起来,写入一个常量中,如果需要更改常量的值,只需要改动一处即可。

  资料链接:https://blog.csdn.net/gongchuangsu/article/details/53895916

  Interface Design,Loose Coupling松耦合的目标是最小化依赖。松耦合这个概念主要用来处理可伸缩性、灵活性和容错这些需求。

    这两个概念是相辅相成的,后者是前者的目的,前者是后者的实现手段。面向接口编程是软件工程领域常用的设计手段,这对于一个团队而言,是非常重要的,在做一个团队项目时,有人可能负责领域模型M(Model),有人负责前台V(View),有人负责业务逻辑C(Controller),在这种MVC的设计模式驱动下,我们首先想到的就是:定义一套公共的接口,方便各个模块之间的通讯。面向接口的程序设计思想是一种有效的手段。比如一个做业务逻辑的Team,他们并不清楚业务数据的CURD实现,但他们只要通过面向于数据组提供的一整套接口进行编程即可,同时,数据组的开发可以并行进行,这样,不需要等待一个模块的完成就可以预先“使用”这个模块,极大的提高了团队的效率

    资料链接:https://www.cnblogs.com/magiccode1023/archive/2012/10/23/2736257.html

11.说明结对编程的优点和缺点。同时指出结对的每一个人的优点和缺点在哪里 (要列出至少三个优点和一个缺点)。

  下面是一些结对编程的优点:

  1. 程序员互相帮助,互相教对方,可以得到能力上的互补。
  2. 可以让编程环境有效地贯彻Design。
  3. 增强代码和产品质量,并有效的减少BUG。
  4. 降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。
  5. 在编程中,相互讨论,可能更快更有效地解决问题。

  当然,结队编程也会有一些不好的地方:

  1. 对于有不同习惯的编程人员,可以在起工作会产生麻烦,甚至矛盾。
  2. 有时候,程序员们会对一个问题各执己见(代码风格可能会是引发技术人员口水战的地方),争吵不休,反而产生重大内耗。
  3. 两个人在一起工作可能会出现工作精力不能集中的情况。程序员可能会交谈一些与工作无关的事情,反而分散注意力,导致效率比单人更为低下。
  4. 结对编程可能让程序员们相互学习得更快。有些时候,学习对方的长外,可能会和程序员们在起滋生不良气氛一样快。比如,合伙应付工作,敷衍项目。
  5. 面对新手,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。
  6. 新手在面对有经验的老手时会显得非常的紧张和不安,甚至出现害怕焦虑的的精神状态,从而总是出现低级错误,而老手站在他们后面不停地指责他们导致他们更加紧张,出现恶性循环。最终导致项目进展效率低下,并且团队貌合神离。
  7. 有经验的人更喜欢单兵作战,找个人来站在他背后看着他可能会让他感到非常的不爽,最终导致编程时受到情绪影响,反而出现反作用。

  是否使用结对编程,需要具体问题具体分析,不可盲目。任何事手都有他的好与坏,结对编程也不例外,只有知道了好与坏,你才能更好的利用它。

  资料链接:https://kb.cnblogs.com/page/58732/

结对作业

标签:前台   编程人员   产品质量   arch   规范   内容   依赖   实践   分解   

原文地址:https://www.cnblogs.com/lvgx/p/8733486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!