结对项目
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)乐于提供很多帮助
缺点:有一点拖延(然而我更严重)
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011012616112-1832163334.jpg)
2.程序分析
独特之处:
1.在算法效率上,我们一开始想得比较多。我们认为难点主要就集中在如何确保每次生成的表达式是唯一的,也就是说表达式都是不重复的。因为要求是a+b和b+a视作同样的表达式,所以逐字比对是不可行的。而且在一些极端情况,比如生成1万个表达式,难道每次生成一个就和以前的比对吗?那么仅仅是最后一个生成的表达式就要至少比对1万次。我们认为这样做虽然能满足所有的题目要求,但是效率无疑是不高的。我们想了一个方法,在每次生成的时候仅经过少量的比对,就能确定生成的表达式是唯一的。首先一个表达式里有符号和数字,符号只有加减乘除括号,如果两个表达式的符号的种类或数量不一样,那么两个表达式一定是不同的。目前所生成的表达式可以按照符号来归类存储,每次新生成表达式,先按照符号种类索引,如果符号种类相同再比对数字。这样的方法使得比对次数减少了很多。
2.UI设计简洁易用
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011013227440-302048633.png)
3.代码分页,结构清楚。
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011013420096-685722723.png)
计算部分为一个单独的类Calculate,计算方法为Calculate.Calc
4.有注释
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011013520893-1172240049.png)
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(松耦合)
松耦合的基本概念是:允许改变或者当问题发生在“电线的一端时”来避免影响到其他的端点。也就是说,改变或者供应者或者服务的问题不能影响到用户——或者用户的问题不应影响到供应者或者服务。
举例来说,如果服务的新版本被推出的话,服务的用户就不必非要去修改,不必非要去改变路线,甚至不必经历停滞期----因为它(服务的新版本被推出)能清 楚地向他们显示出来。相对而言,如果服务的一个用户决定改变他们正在使用的供应者(可能有了一个更低价格的服务供选择),这不需要用户应用必须要被重新编 码,甚至是中断来做这样的改变。
程序组件之间的松散耦合可以通过使用增强的标准数据类型参数。通过定制数据类型或对象需要组件定义数据定义的知识。松散耦合的服务可以增强通过减少信息传递到一个服务的关键数据。
赵铭 13061154
1.结对编程优缺点以及感悟
结对编程的优点:
(1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
(2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。
(3)在心理上, 当有另一个人在你身边和你紧密配合, 做同样一件事情的时候, 你不好意思开小差, 也不好意思糊弄。
(4)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。
总之,如果运用得当,结对编程能得到更高的投入产出比(Return of Investment)。
结对编程的缺点:
(1)如果沟通不当,开发效率会下降,虽然正能量会加倍,但负能量也会加倍。
(2)找出两人都有空的时间不容易。
我的感受:
(1)我认为结对编程是很好的体验。因为从前从来没有合作编程的体验,因此总是按照自己的一套方法来。然而结对编程有时候真的能从对方身上学到很多。包括编程的方法、思想、习惯上。比自己闷头一个人编要好。
(2)两个人编程感觉效率反而要高一些。自己一人编程总想要拖到最后再进行,然而两个人就要考虑到对方,因此效率会高一些。
我的结对伙伴:
赵铭 13061154
优点:(1)仔细(2)乐观(3)善于发现bug (4)乐于提供很多帮助
缺点:有一点拖延(然而我更严重)
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011012616112-1832163334.jpg)
2.程序分析
独特之处:
1.在算法效率上,我们一开始想得比较多。我们认为难点主要就集中在如何确保每次生成的表达式是唯一的,也就是说表达式都是不重复的。因为要求是a+b和b+a视作同样的表达式,所以逐字比对是不可行的。而且在一些极端情况,比如生成1万个表达式,难道每次生成一个就和以前的比对吗?那么仅仅是最后一个生成的表达式就要至少比对1万次。我们认为这样做虽然能满足所有的题目要求,但是效率无疑是不高的。我们想了一个方法,在每次生成的时候仅经过少量的比对,就能确定生成的表达式是唯一的。首先一个表达式里有符号和数字,符号只有加减乘除括号,如果两个表达式的符号的种类或数量不一样,那么两个表达式一定是不同的。目前所生成的表达式可以按照符号来归类存储,每次新生成表达式,先按照符号种类索引,如果符号种类相同再比对数字。这样的方法使得比对次数减少了很多。
2.UI设计简洁易用
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011013227440-302048633.png)
3.代码分页,结构清楚。
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011013420096-685722723.png)
计算部分为一个单独的类Calculate,计算方法为Calculate.Calc
4.有注释
![](http://images2015.cnblogs.com/blog/752626/201510/752626-20151011013520893-1172240049.png)
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(松耦合)
松耦合的基本概念是:允许改变或者当问题发生在“电线的一端时”来避免影响到其他的端点。也就是说,改变或者供应者或者服务的问题不能影响到用户——或者用户的问题不应影响到供应者或者服务。
举例来说,如果服务的新版本被推出的话,服务的用户就不必非要去修改,不必非要去改变路线,甚至不必经历停滞期----因为它(服务的新版本被推出)能清 楚地向他们显示出来。相对而言,如果服务的一个用户决定改变他们正在使用的供应者(可能有了一个更低价格的服务供选择),这不需要用户应用必须要被重新编 码,甚至是中断来做这样的改变。
程序组件之间的松散耦合可以通过使用增强的标准数据类型参数。通过定制数据类型或对象需要组件定义数据定义的知识。松散耦合的服务可以增强通过减少信息传递到一个服务的关键数据。
相关文章推荐
- UVA10123木板上放石头使木板平衡,递归加强剪枝
- leetcode题目 跳跃游戏系列题目
- HDU3966【树链剖分】。
- 提高Android Studio中Gradle执行效率
- openstack手动安装
- 一些安卓开源框架整理
- 屏蔽浏览器窗口自带的事件
- linq to object 未完待续
- loadView、viewDidLoad及viewDidUnload的关系
- VB 连接AutoCad 模块代码
- 结对项目博客
- ubuntu装jdk
- Tomcat连接池的配置
- Java web 图片上传(文件上传)
- 从今天开始,每天写一篇博客
- 个人博客作业_week3
- jquery easyui DataGrid
- 排序算法的C语言实现
- [iOS开发项目-7] 超级猜图
- PHP 字符串编码的转换