结对编程项目总结
团队项目总结
一、说明结对编程的优点和缺点
结对编程作为近些年一种流行的编程方式,有着不少的优点。首先,和个人编程相比,结对编程保证了个人代码的正确率,尤其是在采用一人编写,一人复查的模式之后,代码的一次正确率要明显高于个人编程。在编程的过程中,代码编写人可以将精力更多的放在代码的架构上,从而提高编写速度;另外一人可以集中精力查看编写出代码有无bug。这样的模式使得代码审查人从一开始就理解了编程者的思路,省去了大量后期debug的时间。
和团队编程相比,结对编程提高了组员的交流频率,组内的两人不必像大团队里的组员一样每日开会讨论编程进度,在应对中小型项目时这样的二人团队的个人编程效率是要高于庞大的团队的。
然而,对于习惯月结对编程的程序员来讲,这样的编程模式可能会提高他们对于队友的依赖程度。甚至养成写完代码不去复审的坏习惯。同时,结对编程使得两个人在编程时对于代码的理解基本一致,这就很难让两个人在开发时获得多元的创意。
二、结对的每一个人的优点和缺点在哪里
王嘉豪:
思路清晰,对代码的掌控能力强
代码结构完整,模块化程度高,便于阅读
善于安排时间进度,统筹规划项目的分工
耐心欠佳,在解决不了问题时会变得急躁
焉域政:
对代码的理解能力强,能很快理解编程者的思路
善于使用单元测试对代码进行debug
语言能力强善于记录开发的整体过程
编程时较为懒散,经常赶在ddl前完成任务
三、Information Hiding, interface design, loose coupling说明如何利用好这些原则
Information Hiding
信息隐藏体现了面向对象编程中的封装原则,在具体的实现过程中可以用以下方式实现:
1 多层设计中的层与层之间加入接口层;
2 所有类与类之间都通过接口类访问;
3 类的所有数据成员都是private,所有访问都是通过访问函数实现的;
interface design
界面设计能够使得软件的交互更为人性化,同时使得软件更易于使用。在设计交互界面时,应当充分考虑程序的合法输入以及用户的需求。
Loose Coupling
松耦合降低了软件在结构上的相互依赖程度,通过以接口的方式实现软件模块间的调用使得部分模块在发生改变时软件的其他部分可以保持不变。为了实现松耦合可以编写专门的接口类,降低不同类之间的耦合度。
四、Design by Contract, Code Contract的优缺点,如何融入你的设计中
契约编程保证了程序内部的变量名,方法名,方法功能,前置后置条件的一致性。利用契约编程技术可以充分提高代码的可重用率。在编程者和使用者之间达建立起一定的规范,从而避免了代码产品与用户要求不符的尴尬。
在本次结对项目中,我们通过事先约定好各自编写模块的变量名,函数名以及前置后置条件,达成了一定的契约。在后期耦合的过程中,这样的契约使得我们能够轻松地调用各自的模块,不必费时阅读代码就可使用对方的代码,给编程带来了极大的方便。
五、说明你的算法的关键以及独到之处
整个程序中最重要也是最困难的类就是随机算式类(RandomFormula类),在生成随机算式时,我使用了先确定随机符号,再生成随机因子,最后加入括号的方式。在计算时,直接对生成的中缀表达式进行计算,生成运算结果。
随机算式类同时也提供了根据给定字符串生成的模式,在判断模式下通过分析输入字符串,就可以生成相应的算式实例,从而计算结果。这提高了算式类的重用性,减小了代码的冗余度。
六、代码覆盖率
七、UML类图