美文网首页
iOS组件化-放弃

iOS组件化-放弃

作者: 耿杰 | 来源:发表于2019-02-09 21:36 被阅读75次

    组件化

    1、描述
    • 组件化从狭义的角度来说一般就是把一些常见的UI库、常见的分类、网络请求库,或者网络上一些常见的第三方库等封装到私有库中。
    • 组件化从广义的角度来说一般就是指一个模块的功能,比如淘宝的详情页,把业务逻辑代码封装在组件内部,并对外提供接口,这个称之为模块化更为合理
    2、组件化的目的

    拿出任一的组件,可以到其他地方直接使用

    1、其他语言的组件化
    • 1、以前做网页开发,前后端不分离,比如是java Web开发,会利用jsp引入其他页面文件。如果是前后端分离的话,只能是复制粘贴了。而现在前端组件库配合webpack工具,可以搭建脚手架、添加依赖包,配置路由、创建页面、引入组件,可以很快的构建一个系统。从前端的角度来说,更多的是UI库的组件化。
    • 2、微服务是一种面向服务的架构风格,其中,应用程序被构建为多个不同的小型服务的集合而不是单个应用程序。与单个程序不同的是,微服务让你可以同时运行多个独立的应用程序,而这些独立的应用程序可以使用不同的编码或编程语言来创建。微服务能带来多个好处,其中一个好处是,无需使用相同的编程语言。还有一个好处是,已经完成的模块,由于是部署其他微服务上,所以程序编译运行速度提升很大。灵活性和低成本这两个特点也表现在将这这些较小的程序重用在其他项目中,从而使其更有效率
    2、OC
    • 0、组件中比较重要两点是复用和通讯
    • 1、常见的UI库、分类、网络请求库都是直接使用的
    • 2、如果App模块进行组件化,模块之间会通信,互相调用,比如淘宝详情页会调用我的订单,我的收货地址等模块,这些模块会互相调用,通常我们是直接在对应的控制层直接调用调用。这样的话,每个模块都离不开其他模块,互相依赖粘在一起。
    • 3、我们可以利用第三方库蘑菇街来解决通讯问题,来实现组件A和组件B相互不耦合。但是存在2个问题:
      • a、参数的格式不明确,需要文档来说明
      • b、需要有个地方列出各个组件里有什么URL接口可供调用
    • 4、在一个项目中,某个模块真正复用的地方又能有多少呢,如果花费额外的成本来维护模块化的代码,最终又没有多少地方去使用,所以大部分的情况下,成本是大于收益的

    相关文章

      网友评论

          本文标题:iOS组件化-放弃

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