美文网首页
组件化开发(一)

组件化开发(一)

作者: 沈正方 | 来源:发表于2018-04-19 11:38 被阅读21次

(一)概念

将一个单一工程的项目,分解成为各个独立的组件,然后按照某种方式,任意组织成一个拥有完整业务逻辑的工具

如果单一工程,业务线比较少,人数比较少,普通的开发模式基本满足需求。但一旦项目发展越来越庞大,业务主线越来越多,开发人员也越来越多,就会出现一系列的问题,比如:项目模块耦合严重、编译速度很慢、测试不独立、无法使用自己擅长的设计模式等等。。。

(二)组件化达到的效果

  • 组件独立:独立编写、独立编译、独立运行、独立测试
  • 资源重用:功能代码的重复使用
  • 高效迭代:增删模块
  • 配合二进制化,最大化的提高项目的编译速度

(三)组件化需要考虑的问题

1. 需要把哪些内容划分成一个组件
  • 基础组件
    • 基本配置:常量、宏定义……
    • 分类:各种系统类的扩展
    • 网络:对AFNetworking/Alamofire、SDWebImage/Kingfisher的封装……
    • 工具:日期时间的处理、文件处理、设备信息获取……
  • 功能组件:
    • 控件:弹幕、轮播器、选项菜单、图文菜单……
    • 功能:断点下载、音频处理……
  • 业务组件:
    • 根据业务线划分:业务一、业务二……
2. 组件间的依赖关系

基础组件和业务组件为同一级,同一级之间最好不要产生依赖关系
业务组件可以依赖任何基础组件和功能组件


组件依赖
3. 每个组件以什么样的形式存在
  • 组件内部:根据设计模式进行文件夹的划分
  • 组件形式:每个组件以pod库的形式存在
  • 组件测试:单独的测试工程
4. 以什么样的形式集成各个组件

以Cocoapods的形式安装各个组件

5. 组件间的通讯
  • 披露中间API
  • 通过中间件中转
6. 附加问题
  1. 如何提高编译速度?
  2. 如何解决重复的操作流程?
  3. 库的升级维护问题?

(四)组件化过程中,分离各个组件的难点

1. 如果一个组件里面依赖其他的组件该如何处理

把组件依赖的代码直接copy到组件中
先把组件依赖的代码做成一个pod库,然后让组件依赖pod库

2. 如果组件内部,需要对接某个服务,该如何处理

问题:比如图文菜单控件的封装,肯定需要用到加载网络图片。
处理方式:使用block或delegate让外部实现


如果有幸被你看到这里,我想先说一句:谢谢。接下来我会不断把自己空闲时间学习的笔记、工作中遇到的问题,思考总结后写成文章分享出来。下面是我的个人公众号,如果你觉得我写的东西给了你带来了一些启发,可以关注一下我的公众号bryanshen,接下来我会分享更多更优质的内容。谢谢!

相关文章

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发 就是将一个app分成多个模块,每个模块都是一...

  • Android 组件化开发实践

    Android组件化开发实践(一):为什么要进行组件化开发?Android组件化开发实践(二):组件化架构设计An...

  • Android组件化和插件化开发

    Android组件化和插件化开发 什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个...

  • Vue组件化开发

    ✍目录总览:(组件化概念、组件注册、数据存放、组件数据共享、组件插槽、使用步骤) 一、组件化概念 1. 组件化开发...

  • Android组件化开发实践笔记

    一、什么是组件化和插件化?   组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发...

  • 滚动栏的开发

    滚动栏的开发 1.组件化在开发之前2.组件化在开发之后 组件库开发流程将控件封装成pod库1.pod lib cr...

  • WebComponent介绍与简单使用

    WebComponent能够提供开发者组件化开发的能力什么是组件化组件化没有一个明确的定义,但是一般形容就是:“高...

  • 插件化介绍和原理解析

    什么是插件化 首先我们区分一下组件化和插件化的概念 组件化组件化开发就是将一个app分成多个模块,组件化强调功能拆...

  • Android插件化(一)

    插件化(一) 组件化和插件化的区别: 组件化是将一个app分成多个模块,每个模块都是一个组件(module),开发...

  • Android插件化开发探索与思考

    什么是组件化和插件化? 组件化开发就是将一个app分成多个模块,每个模块都是一个组件(Module),开发的过程中...

网友评论

      本文标题:组件化开发(一)

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