开发者社区> 问答> 正文

应用服务器中的统一数据访问模块有什么用呢?

已解决

应用服务器中的统一数据访问模块有什么用呢?

展开
收起
每天一个小bug 2022-09-24 16:59:38 773 0
2 条回答
写回答
取消 提交回答
  • 推荐回答

    从应用工程的生命周期来看,一个应用最大的成本是应用的总维护成本,所以代码的可维护性代表了最终成本,从长远来看统一数据访问模块的抽取可能会减少这种成本。 统一数据访问模块的抽取可以从以下几个方面提高应用系统的设计质量。 一、可维护性 当依赖变化时,有多少代码需要随之改变,如果不实现统一数据访问模块那么业务代码中势必要直接依赖数据实现类DAO,会形成事务脚本类的代码,而这种代码很难维护主要是因为以下几点: 1. 数据结构的不稳定性:DAO操作的是一个纯数据结构的类,这种类映射了数据库中的一个表。数据库的表结构和设计是应用的外部依赖,这种外部依赖随着时间的变化可能会改变,尤其是存储中间件的变更最为常见,例如MySQL变更MongoDB,又或者换一个表设计什么的。 2. 依赖库的升级:DAO类本身可能依赖MyBatis的实现,如果MyBatis未来升级版本,可能会造成用法的不同。同样的,如果未来换一个ORM体系,迁移成本也是巨大的。 二、可扩展性 做新需求或改逻辑时,需要新增或修改多少代码。如果不抽取统一数据访问模块,新需求的增加可能会直接修改业务代码或是直接修改DAO的实现,最终可能会造成大量的if-else语句,造成bug。 三、可测试性 当业务代码中强依赖了数据库等外部依赖之后,想要完整跑通一个测试用例需要确保所有依赖都能跑起来,这个在项目早期是及其困难的。在项目后期也会由于各种系统的不稳定性而导致测试无法通过。

    从软件设计角度考虑,一个应用的设计是否合理,主要考查几个设计原则,统一数据访问模块的抽取可以满足这几个设计原则,从而实现高可用、高可扩展、高健壮的应用系统。 1. 单一性原则:单一性原则要求一个对象/类应该只有一个变更的原因。提问者的统一数据访问模块实际上就是实现这个原则,避免因为数据存储方式的变更或是其它数据处理中间件的变更的改变而改变。 2. 依赖反转原则:依赖反转原则要求在代码中依赖抽象,而不是具体的实现。提问者的统一数据访问模块就像是一个共享数据访问层,将具体的数据处理屏蔽在该层后面,让应用依赖统一数据访问这个抽象层。 3. 开闭原则:开放封闭原则指开放扩展,但是封闭修改。提问者的统一数据访问模块的建立可以实现在新增需求时只增加新的实现类,做到尽量不修改原有逻辑,对外部调用者透明。

    2022-09-26 17:24:47
    赞同 1 展开评论 打赏
  • 在硬盘中存储了分布式数据库和分布式文件,而内存中存储了分布式缓存,但对于应用程序而言,并不想哟啊文件和数据在各个机器中存储,这样会导致读取一份数据需要去各处,因而就需要统一数据访问模块,去平定各个数据的存储差异,更加快捷的获得数据。

    2022-09-24 17:54:50
    赞同 1 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载