我们的合作开发进行到现在可以说已经完成了,每到一个阶段的总结是必不可少的,总结合作开发使颗粒归仓的过程从开始合作到完成时间整体超过一个半月的时间,中间经历着自考和提高班的上课等等很多事情,真正我们小组开发的有效时间将近12天左右,整个合作开发中我们个人配合的还算有条不紊的.
对于我个人而言,合作开发更好的锻炼了我们大家的团结一致,在开发之前我们有过一次交流,避免大家对各个设计模式理解不同造成后期的分歧大,影响后期的合作开发的进度,有问题分歧的地方大家共同讨论后再综合开发者角度与软件使用的角度来衡量哪种方案.
合作开发很好的弥补了个人版一些人性化、软件用户体验度的问题,合作版对于自己来说写的是U层,虽然U层代码不少,但是U层确实给自己不少了锻炼,从一开始的界面、控件的命名、界面的美化、用户体验度、输入的严格要求等等都加强了软件的严密性与培养了自己思维缜密的地方。
U层这次敲代码不是一味的敲代码,首先是想如何使用新的方法去达到简化代码、简化逻辑、提高我们的开发效率,研究了模板方法设计模式、窗体继承,巧妙的使用使我们组合查询、查询充值记录、查询退卡记录等等类似的界面窗体有两个简化为一个,有四个组合查询简化为一个方法下来,提高了代码的复用、减少了重复性写代码的写入.
Facade层自己也是使用到单例模式,单例的模式的好处,大家详细情况我的前期博客地址:http://blog.csdn.net/lishehe/article/details/8872768
在真正合作开发之前自己先研究了一下技术上来说的难点:为了学习设计模式,我们多多加设计模式,重新研究学习了单例模式(SqlHelper的调用、抽象工厂的调用、外观的调用)、策略模式(固定用户与临时用户的使用,上机和下机也是两种不同的策略。刷卡时,要检测卡的上机状态,根绝上机状态的不同,实现上机和下机两种不同的策略。)、简单工厂(下机结账里面与策略模式的结合)、(抽象工厂+反射)、模板方法(组合查询与查询上机记录、查询充值退卡记录)、外观模式(为了U层和B层的解耦)、观察者模式(下机)、状态模式(上机)、迭代器模式(学习使用中)、职责链模式(下机计算时间),自己通过个人版的机房收费系统一一测试,练习实践,如果没有当初学习大话,现在应该会很难,米老师说的带着问题学习、囫囵吞枣的学习理念在这里面发挥的很好,这次又重新加深的对设计的模式的理解,我们学习到每个阶段要停下脚步,静下来多多的思考。
通过和坤哥、周响组的交流自己逐渐认识了实体关联的好处、方法的重写与方法的重载的好处与理解(坤哥博客)、静态成员变量的使用的好处。
以前自己做个人版的时候觉得传参的过程当中,传实体好,DataTable更好,那是由于自己主要用DataTable所以思维有点狭窄了,现在开发当中我们合作开发小组里有传参数的、传实体的,返回值有datatable、DaTaSet、实体的,现在来看没有那个好于不好,只有在合适的条件下,选择合适的返回值才是最重要的,我们要根据实际环境来选择最适合的。
这个世界凭自己单打独斗是成不了大气候的,唯有大家合作开发才是王道,特别是我们作为程序开发者,大家只有分工明确,把控全局,在这次的合作开发中有时我也试图在想如何自己是组长,自己改如何更好的安排我们之间的分工,进度的调整与把控,要时刻想如何让我们组更快、更好的去完善我们的系统、人员的分配、工作的分配,当某一个组员干完自己的工作之后。不能让他闲着尽快安排下一目标的任务,大家毕竟是合作开发,我们是需要提高我们的工作效率,快速开发。
整体来说,我们是按照组长给的文档来一步一步的开发的,文档是整个合作开发的指示灯,指向哪?就怎么做:但是我们并不是一味的按照文档那样开发,毕竟有出现方法错误、判断条件不严谨的地方等等,我们也会和组长及时的共同交流,大家再讨论,修改再继续开发。文档驱动,严谨的开发文档是自己今后要不断去学习、锻炼的地方:全方位的思考项目,全局思考问题
在合作开发中我们学习EA的使用、学会了如何导出文档、导出框架、由实体转换为实体类和UML图,EA真的是太强大了
SVN的版本控制与其他功能理解更加的深刻,SVN与VS的巧妙同步使我们的团队合作开发大家的提高,很好的保留了每个阶段中的版本。
收获多多,未完待续!