解耦与拆分

作者: AllAboutCoding | 来源:发表于2018-09-05 17:03 被阅读11次

最近公司做了一个需要拆分SDK的项目,所以涉及了很多拆分的内容,加之有比较多解耦的工作,所以想聊一聊解耦与Java拆分的一些小心得。

背景

因为部分模块中部分功能需要拆分,但是绝大部分是不需要的,还有很多依赖模块需要基础添加,所以这项工作看起来非常巨大,并没有办法直接拆分。SDK尽可能的小,并且需要减少相互之间的依赖。

解耦

在拆分SDK的过程中最先做的应该就是解耦——业务功能性拆分。将业务代码先都拆分到新项目中,这些代码是最顶层的东西,这个时候肯定会有很多文件都会爆红,不要担心,添加依赖其实是下一个步骤的事情。

解耦还需要做那些事情?

接下来就需要分离业务代码以及拆分的依赖代码,需要新建一个依赖目录 例如报名:com.tzduan.demo.sdk.base,可以看出相对应的业务代码应该在com.tzduan.demo.sdk.business下面。这样做是为了便于之后的维护,依赖与业务拆分,避免业务开发人员一不小心修改依赖的代码。

拆分

在代码文件爆红之后,其实就是一个漫长又无聊的过程了,讲爆红的文件一个一个的添加到拆分SDK中,使他们不再爆红。这个过程非常的无脑,但是有一个好处,就是可以保证不会将非本次业务的代码移动出来,又避免了重新开放一份代码的重复造轮子的过程。这期间需要注意的是,依赖文件很有可能是互相依赖的,他们其中的方法很有可能相互引用,导致变相包过大,所以只需要引入业务使用的方法就好,并不要将所有的文件都引入。

拆分tips

因为引入了好多的文件,也稍微有点小心得:
一开始在demo程序中不要依赖SDK module
因为不依赖SDK module的时候你的demo也是可以跑的
在添加依赖的时候先添加资源文件
因为先添加资源文件依赖后,ide可以通过sync不对资源文件报错
在添加java文件或者Kotlin文件的时候,先添加Model文件,然后view文件,presenter文件,最后添加util部分
model比较单一,util关联的文件过多,所以最后添加

最后拆分过程

上面都是讲我这次拆分的思想,最后我想分享一下我这次拆分的过程:

相关文章

  • 解耦与拆分

    最近公司做了一个需要拆分SDK的项目,所以涉及了很多拆分的内容,加之有比较多解耦的工作,所以想聊一聊解耦与Java...

  • 需求如何解耦(一)

    一、解耦的定义 解耦就是把系统功能和逻辑拆分。 为什么拆分。一个不解耦的系统就像把若干根线缠绕到一起,你想抽出任何...

  • 微服务迁移之旅

    微服务拆分之道 ——Zhamak Dehghani 原文 解耦何物,何时解耦 当单体系统庞大到无法应付时,大多企业...

  • 项目架构

    分布式架构 核心理念: 并行拆分与横向扩展 优点 解耦 分摊压力 扩展性 业务拆分,简单易懂 技术栈 spring...

  • 弹力设计之异步通讯设计

    前面所说的隔离设计通常都需要对系统做解耦设计,而把一个单体系统解耦,不单单是把业务功能拆分出来,正如上面所说,拆分...

  • 命令模式(Command)

    请求发送者与接收者解耦——命令模式(一)请求发送者与接收者解耦——命令模式(二)请求发送者与接收者解耦——命令模式...

  • 模块化与解耦

    [模块化与解耦](模块化与解耦 - 刘坤的技术博客[https://blog.cnbluebox.com/blog...

  • cocoapod管理文件

    1.前言 随着项目变得越来越大,我们的工程需要进行拆分和解耦。在iOS中,为了实现高内聚低耦合,模块之间完全解耦不...

  • 设计原则

    一、低耦合 模块之间只存在消息交流,不存在功能上的强关联,不会彼此影响,可以随时拆分。 二、解耦 降低两个模块的耦...

  • iOS containerView的hidden问题

    storyboard中containerView的出现可以有效的对复杂的界面可以进行多控制器拆分,达到解耦的作用。...

网友评论

    本文标题:解耦与拆分

    本文链接:https://www.haomeiwen.com/subject/ecbtwftx.html