结对项目总结博客


结对编程

  这次结对项目由我和陈谋共同完成。下面是一张我们在一起讨论时委托他人帮忙拍摄的图片:

  

结对编程的优点:

  1.相互之间能够进行代码复审,在代码复审中的提问与回应能帮助两人之间互相了解,更好的发现自己程序的瑕疵。

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

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

  4.结对能更有效地交流,相互学习和传递经验,分享知识。

 

结对编程的缺点:

  1.对于有不同习惯的编程人员,在一起工作会产生麻烦,甚至矛盾。

  2.有时候,程序员们会对一个问题各执己见,争吵不休,反而产生重大内耗。

  3.面对新手,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。

 

我的优缺点:

  优点:

  1.对工作积极热情,总是希望能够快一切完成。

  2.态度严谨,保证必须的要求都能完成。

  3.乐观开朗,遇到难以解决的问题或者程序的BUG时,少有焦躁的情绪。

  缺点:

  1.编程水平相较于伙伴偏低,复审了伙伴的代码后发现的确质量比自己高。

 

同伴的优缺点:

  优点:

  1.编程能力很高,经常参加各种比赛。

  2.工作态度很积极,经常找我讨论各种关于项目的细节。

  3.性格友善平和,向他提问自己不懂的问题时,他总能耐心的解答,丝毫没有不能耐烦的情绪。

  缺点:

  1.时间的把握不是特别严格。


设计方法:

1.Information Hiding

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

  在本次项目中,我们就在多个地方运用到了这一设计方法:

  1.类的所有数据成员都是private,对于类成员的访问需要通过访问函数,不能直接访问和修改成员变量。

  2.Core与外部输入输出层之间通过接口函数才能访问。

 

2.interface design

  接口的设计可以有效地提高团队工作的效率和保证工作的同步性。

  在这次项目中我们双方的工作正是因为运用了接口而得以同步进行。一个人完善Core模块的功能,另一个人设计用户界面,然后两部分最后通过接口进行连接。

 

3.loose coupling

  这一点在上学期的面向对象课中吴际老师就不断跟我们强调,类与类之间应该尽量减少耦合程度,各司其职。一个好的松耦合方法就是类与类之间的接口设计。由于这次项目的规模不大,类较少,所以没有使用到类的接口设计。但是在编码过程中尽量使类之间的耦合程度降到最低。


契约式设计

  这一设计方法在上学期的面向对象课上同样有提到,契约式设计要求程序员为程序定义可验证的接口,在数据抽象之上又增加了前置条件、后置条件和不变式。

  契约式设计的优点:类的不变式能够保证类一直处于正常状态,一旦类的不变式表示为false,像程序员报错,避免了不可控的问题。函数调用的前置条件和后置条件也能够保证方法的正常运行,一旦出现问题,能够准确定位到出错的地方。运用契约式设计,编程人员可以避免很多异常,并且在出错时能够定位到位置,节省了后期的调试时间,保证了代码的质量。

  契约式设计的缺点:设计具有良好契约的程序需要相当的开销。撰写契约需要时间,开发者需要时间学习撰写良好契约的思想和技术。

  在这次结对项目中我们没有使用契约式设计,有两点原因:

  1.这次结对代码是以个人项目的代码完善而来的,再使用契约式设计需要重新编写代码,增加了时间花销。

  2.这次结对项目的规模较小,用契约式编程有可能反而在契约的编写这块花费太多精力。


 

单元测试

  我们对Core类进行测试,设计了共22个测试点,代码覆盖率为89.35%:

  


 

UML图

  


算法的关键

  1.这次项目采用的是陈谋的算法。他的算法不同于我们大多数人是先中缀转后缀再求值,而是直接求得中缀表达式的值。

  2.然后比较关键的一点就是生成表达式的方法:

  <表达式> = <项> | <表达式> + <项> | <表达式> - <项>

  <项> = <因子> | <项> * <因子> | <项> / <因子>

  <因子> = (<表达式>) | i

  通过这种文法表达式,能够采用很简便的方式实现,而且运算速度也比较快。


结对编程的感受

  很幸运能够分到和陈谋一组,在做项目的过程中能够从他身上学到很多东西。结对编程虽然在一开始双方有可能交流有些不顺,但是经过了2周的磨合与共同努力,都能够互相学到对方的长处。现在更能体会道那句话了:一个人走得快,一群人走得远。

 

转载于:https://www.cnblogs.com/FUduomi/p/4858059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值