您的位置:首页 > 其它

结对项目

2015-10-06 23:28 162 查看
我的小伙伴:

赵铭 13061154

1.结对编程优缺点以及感悟

结对编程的优点:

(1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

(2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

(3)在心理上, 当有另一个人在你身边和你紧密配合, 做同样一件事情的时候, 你不好意思开小差, 也不好意思糊弄。

(4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。

总之,如果运用得当,结对编程能得到更高的投入产出比(Return of Investment)。

结对编程的缺点:

(1)如果沟通不当,开发效率会下降,虽然正能量会加倍,但负能量也会加倍。

(2)找出两人都有空的时间不容易。

我的感受:

(1)我认为结对编程是很好的体验。因为从前从来没有合作编程的体验,因此总是按照自己的一套方法来。然而结对编程有时候真的能从对方身上学到很多。包括编程的方法、思想、习惯上。比自己闷头一个人编要好。

(2)两个人编程感觉效率反而要高一些。自己一人编程总想要拖到最后再进行,然而两个人就要考虑到对方,因此效率会高一些。

我的结对伙伴:

赵铭 13061154

优点:(1)仔细(2)乐观(3)善于发现bug (4)乐于提供很多帮助

缺点:有一点拖延(然而我更严重)



2.程序分析

独特之处:

1.在算法效率上,我们一开始想得比较多。我们认为难点主要就集中在如何确保每次生成的表达式是唯一的,也就是说表达式都是不重复的。因为要求是a+b和b+a视作同样的表达式,所以逐字比对是不可行的。而且在一些极端情况,比如生成1万个表达式,难道每次生成一个就和以前的比对吗?那么仅仅是最后一个生成的表达式就要至少比对1万次。我们认为这样做虽然能满足所有的题目要求,但是效率无疑是不高的。我们想了一个方法,在每次生成的时候仅经过少量的比对,就能确定生成的表达式是唯一的。首先一个表达式里有符号和数字,符号只有加减乘除括号,如果两个表达式的符号的种类或数量不一样,那么两个表达式一定是不同的。目前所生成的表达式可以按照符号来归类存储,每次新生成表达式,先按照符号种类索引,如果符号种类相同再比对数字。这样的方法使得比对次数减少了很多。

2.UI设计简洁易用



3.代码分页,结构清楚。



计算部分为一个单独的类Calculate,计算方法为Calculate.Calc

4.有注释



3.原则分析

(1)Information Hiding(信息隐藏)

  信息隐藏是结构化设计与面向对象设计的基础。在结构化中函数的概念和面向对象的封装思想都来源于信息隐藏。

  David Parnas在1972年最早提出信息隐藏的观点。他在其论文中指出:代码模块应该采用定义良好的接口来封装,这些模块的内部结构应该是程序员的私有财产,外部是不可见的。 Fred Brooks在《人月神话》的20周年纪念版中承认了当时自己对Parnas的批评是错误的。他说道:“我确信信息隐藏--现在常常内建于面向对象的编程中--是唯一提高设计水平的途径”。 一些信息隐藏原则的应用: 1、 多层设计中的层与层之间加入接口层; 2 、所有类与类之间都通过接口类访问; 3 、类的所有数据成员都是private,所有访问都是通过访问函数实现的;Via:http://blog.csdn.net/acloudhuang/article/details/6635230)

  在写面向对象类型的软件或者程序的时候,要考虑到用户的使用问题,也要注意自己的代码保密问题,这个原则的使用能够很好的维护这个问题。

(2)interface design(接口设计)

  清晰是第一步,也是最重要的工作界面。什么算是有效使用你设计的一个接口?人们必须能够认识到它是什么,关心他们为什么会使用它,帮助他们理解接口相互作用,预测使用它会发生什么,然后成功地与之交互。

  最 好的接口是根本没有,当我们能够直接操纵物体在我们的世界。因为这并不总是可能的,这个世界上有越来越多的信息和对象,我们创建接口来帮助我们与它们进行 交互。很容易添加更多的接口层,创建overly-wrought按钮,chrome,图形,选择,偏好,附件和其他繁琐的东西。这样我们最终操纵的UI 元素而不是重要的事情。相反,追求原始的目标直接操作,设计一个接口与尽可能少的足迹,识别尽可能多的自然人类的手势。理想情况下,界面非常轻,,用户直 接操作他们关注的对象。

(3)loose coupling(松耦合)

  松耦合的基本概念是:允许改变或者当问题发生在“电线的一端时”来避免影响到其他的端点。也就是说,改变或者供应者或者服务的问题不能影响到用户——或者用户的问题不应影响到供应者或者服务。

  举例来说,如果服务的新版本被推出的话,服务的用户就不必非要去修改,不必非要去改变路线,甚至不必经历停滞期----因为它(服务的新版本被推出)能清 楚地向他们显示出来。相对而言,如果服务的一个用户决定改变他们正在使用的供应者(可能有了一个更低价格的服务供选择),这不需要用户应用必须要被重新编 码,甚至是中断来做这样的改变。

  程序组件之间的松散耦合可以通过使用增强的标准数据类型参数。通过定制数据类型或对象需要组件定义数据定义的知识。松散耦合的服务可以增强通过减少信息传递到一个服务的关键数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: