谈谈我们的合作开发

简介:     合作开发算是暂告一段落了,算算从开始接到任务到完成居然过了近半个月,不过收获也是不小的。     接到任务的第一天,大家做到一块开始商量合作开发的事宜。
    合作开发算是暂告一段落了,算算从开始接到任务到完成居然过了近半个月,不过收获也是不小的。

    接到任务的第一天,大家做到一块开始商量合作开发的事宜。制定了一下我们合作开发的Schedule,然后开始了我们的合作开发之路。待组长画完用例图,我们一起讨论,一起敲定系统的具体用例,当然免不了有争论的地方,不过也正是这些争论让我们更加深对信息管理系统的理解。用例定好了,开始一起攻克数据库。根据用例,来设计数据库,规范字段名称,认真讨论字段类型,按着“三范式”将一个个表确定下来。然后为表添加各种约束,主键、外键、Check约束、Unique约束、Default值、Identify自增值等,并建立的数据库关系视图。包图一起确定了,然后开始分工,D层+Factory层+接口层1人,Entity层1人,B层+Facade层1人+组长,U层1人。

    通过方才的分工可以看出,本次开发我们采用了三层架构,应用了抽象工厂模式+反射+配置文件和外观模式。在我自己做的机房收费系统中没有用到外观模式,感觉在处理多表操作的时候(比如下机),只用B层的话就显得有些力不从心了。所以我在第一次的机房收费系统总结的最后也提到了这个疑惑( http://blog.csdn.net/xiaoxian8023/article/details/7168878)。这次用外观模式,虽然代码又多了,不过思路却比以前要清晰很多。外观模式将B层繁多的类进行了封装,对于U层而言,不需要了解那么多的细节,外观模式为U层只提供了一个简单的接口,U层其实都是那些粒度较粗的用例,只需要调用Facade层的方法即可,有Facade层来整理具体的逻辑,既满足了U层的需要,也隐秘了数据。所以外观模式这个“中介”对于我们来说还是很有帮助的。

    当然我们也用到了策略模式,这个主要是用在下机结算时,根绝不同的卡类型,使用不同的计费方式。理解的比较浅。向七期的前辈请教,说其实刷卡上机和下机也是一种策略。当时没怎么明白,不过现在有些理解了。上机和下机也是两种不同的策略。刷卡时,要检测卡的上机状态,根绝上机状态的不同,实现上机和下机两种不同的策略。

    这次有点遗憾的是观察者模式。在处理强制下机操作时可以用到。将在线的全部加载到一个列表中,然后通过触发强制下机操作,遍历列表,使列表中的每一项都执行强制下机操作。是一个很好的方法,只可惜这次由于种种原因没有加上,师哥遗憾。

    不过这次的开发给我的感觉不像是同步开发。这次我们想自己动手敲代码,没有用UML图来导出代码框架,所以我们由下层写出框架,然后提交,再由上层根据下层的代码提示来写,这样一般不会出错。不过想想,图都给出来了,其实不用等着下层的提交框架也可以写。一个好的设计,有完善的图和文档,我们完全可以根据这些来完成自己的工作。

     本次合作开发给我最大的感觉就是一个合作才是软件开发的正道。当然成功的合作,取决于项目的设计、分工的合理性及每个人对待自己任务的态度。项目设计的好坏可能直接影响到你的项目是否能够完成。如何更加合理的分工,我感觉应该是每个人做自己擅长的那一部分,可靠性会增加很多。态度问题,每个成员都应该尽力尽快的完成自己的工作,不要因为你而使得整体项目计划延迟。

    有个问题想了半天,还是感觉说说比较好,我们有一部分成员把重点只放在了经历合作开发,而项目本身有些马虎了,感觉这样不好。我觉得,虽然合作开发的主要目的是为了让大家更好的理解三层,培养合作开发的意识和能力,但是,我们不能对于系统太过草率了。在我看来,每一个项目都是一个生命,生命不应该是残缺的。对自己的任务完成度要求要高,这也是一种锻炼,同时也是一种职业素质。

    当然在合作开发过程中,也发现了自己要学的东西还很多。比如快速画图,数据库表直接转化为实体类和UML图,SVN的熟练使用,Rose导出网页版的图等等技巧都是自己所需要锻炼的。不怕不知道,就怕不知道,现在我已经知道了,剩下的就是去实践。

目录
相关文章
|
数据可视化 关系型数据库 MySQL
MySQL的安装(Linux版)
MySQL的安装(Linux版)
|
8月前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
存储 Java Maven
Spring Boot WebFlux 增删改查完整实战 demo
Spring Boot WebFlux 增删改查完整实战 demo
|
12月前
|
存储 JavaScript 前端开发
深入理解 JavaScript 执行上下文与 this 绑定机制
JavaScript 代码执行时,会为每段可执行代码创建对应的执行上下文,其中包含三个重要属性:变量对象、作用域链、和 this。本文深入剖析了执行上下文的生命周期以及 this 在不同情况下的指向规则。通过解析全局上下文和函数上下文中的 this,我们详细讲解了 this 的运行期绑定特性,并展示了如何通过调用方式影响 this 的绑定对象。同时,文中对箭头函数 this 的特殊性以及四条判断 this 绑定的规则进行了总结,帮助开发者更清晰地理解 JavaScript 中的 this 行为。
944 8
深入理解 JavaScript 执行上下文与 this 绑定机制
|
数据采集 运维 监控
运维笔记:流编辑器sed命令用法解析
运维笔记:流编辑器sed命令用法解析
227 5
|
机器学习/深度学习
【机器学习】噪声数据对贝叶斯模型有什么样的影响?
【5月更文挑战第10天】【机器学习】噪声数据对贝叶斯模型有什么样的影响?
|
Oracle Java 关系型数据库
Java【代码分享 06】Lamda表达式将List对象中的Map对象的key全部转化为大写或者小写(去除外层循环:可用于Map对象中的key全部转化为大写或者小写)
Java【代码分享 06】Lamda表达式将List对象中的Map对象的key全部转化为大写或者小写(去除外层循环:可用于Map对象中的key全部转化为大写或者小写)
607 0
|
消息中间件 数据采集 运维
解读 EventBridge Transform,数据转换和处理的灵活能力
解读 EventBridge Transform,数据转换和处理的灵活能力
156912 8
|
NoSQL Redis
Redisson官方文档 - 11. Redis命令和Redisson对象匹配列表
Redis命令和Redisson对象内部操作的对照表。
12002 0
|
传感器 机器学习/深度学习 编解码
大火的4D Radar数据集及基线模型汇总
Astyx数据集是第一个公开的包含4D雷达点云的数据集,提出了一个基于雷达、激光雷达和摄像机数据的以雷达为中心的汽车数据集,用于3D物体检测。主要重点是向研究界提供高分辨率雷达数据,刺激使用雷达传感器数据的算法研究。为此,提供了用于物体检测的半自动生成和手动重新定义的3D地面真实数据。论文描述了生成此类数据集的完整过程,重点介绍了相应高分辨率雷达的一些主要功能,并通过在此数据集上显示基于深度学习的3D对象检测算法的结果,展示了其在3-5级自动驾驶应用中的使用。
大火的4D Radar数据集及基线模型汇总