前言

什么是组件化?

最初的目的是代码重用,功能相对单一或者独立。在整个系统的代码层次上位于最底层,被其他代码所依赖,所以说组件化是纵向分层。

为什么要使用组件化?

当我们的项目越做越大的时候,有时间就很难去维护,有时候让我们去改点东西,根本实现不了,与其让我们修修改改,还不如自己重新去写代码。

其实无论是大项目也好,或者是中小型项目也好,如果去使用组件化进行开发,那会使你很难割舍,因为它能在你开发中带来很多的便利,包括一些功能解耦和和一些功能的复用.

组件化的好处

  • 组件,既可以作为library,又可以单独作为application,便于单独编译单独测试,大大的提高了编译和开发效率;
  • (业务)组件,可有自己独立的版本,业务线互不干扰,可单独编译、测试、打包、部署
  • 各业务线共有的公共模块开发为组件,作为依赖库供各业务线调用,减少重复代码编写,减少冗余,便于维护
  • 通过gradle配置文件,可对第三方库的引入进行统一管理,避免版本冲突,减少冗余库
  • 通过gradle配置文件,可对各组件实现library与application间便捷切换,实现项目的按需加载

如何学习组件化?

网上有很多关于学习组件化开发的文章,组件化原理很简单,但是真正实施起来还是挺困难的,没有相应的实战+源码参考就做好踩坑的准备吧。

最近小编有幸在字节跳动高工手里扒到这份“组件化实战学习手册”,这位大佬主导开发过多个采用组件化架构的APP项目。现在我只想吹爆!这位大佬熬夜半个月,把积累的经验和踩的坑都进行了总结,整理成了长达220页的学习手册,手册中收录了大厂热门的组件化项目实战,从新手到架构师,这份学习手册足以。

有需要的朋友直接点击此处的蓝色字体获取完整文档。

第一章 Android组件化初识

  • 组件化和模块化的区别
  • 组件化和插件化的区别
  • 组件化开发的优势
  • 业务逻辑层
  • 组件化开发要遇到的问题
  • 从组件化实战来解决问题
  • Android组件化基础
    ……

第二章 Android组件化初探目录

  • 组件化演示案例
    概述
    模块化和组件化
    组件化Demo
    组件application和library动态切换
    ……
  • WanAndroid APP 组件化项目实战附demo
    版本更新
    效果图
    主要功能
    项目目录结构
    主要开源框架
    ……

第三章 架构演化(大厂篇)

  • 从智行 Android 项目看组件化架构实践
    组件化调整的原因和目标
    组件化架构调整的整体规划
    组件化架构调整中遇到的一些问题
  • 得到 App
    Android彻底组件化demo发布
    JIMU使用指南
    组件化拆分的感悟
    ……

有需要的朋友直接点击此处的蓝色字体获取完整文档。

  • 微信 App
    微信Android模块化架构重构实践
    微信Android架构历史
    为何再次重构微信
    ……
  • 蘑菇街 App
    蘑菇街 App 的组件化实现方式
    组件生命周期管理
    壳工程
    遇到的问题
    持续集成
    周边设施
    ……

  • 爱奇艺 App
    基于Service的IPC通信
    组件化跨进程通信的核心诉求
    Andromeda
    架构分析
    ……

  • 美团 App
    外卖客户端容器化架构的演进
    美团外卖容器化架构全景图
    外卖跨端容器建设
    外卖页面容器建设
    外卖容器化架构的衡量指标
    外卖容器化架构的监控运维
    外卖容器化架构的发布能力
    ……
  • 美团Android组件化方案及组件消息总线modular-event实战
  • 美团Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus
  • WMRouter:美团外卖Android开源路由框架
  • 美团猫眼android模块化实战-可能是最详细的模块化实战
  • 携程App
  • 支付宝 App
    ......

以上就是字节跳动大佬熬夜整理的220页Android组件化实战学习手册,有需要的朋友直接点击此处的蓝色字体获取完整文档。

结语

现在组件化真的不是什么新鲜东西了,大公司都用的滚瓜烂熟,龙飞凤舞了,也就是现在部分中型项目和小项目在组件化的路上努力。

所以同志们,组件化没玩过的,不熟悉的赶紧搞起来,说一点,你不会组件化,发布影子工程那么对你来说就是个噩梦。从本质上来讲任何技术进步都是在现实需求的逼迫下抓耳挠腮,耗尽无数头发才想出来的。

所以呢组件化这个东西出来这么久了,页发展了这么久了,用的人越来越多,那肯定是对我们开发大有裨益的,小伙伴们不会,不熟悉抓紧啦,要不面试问你你怎么回答呢!

GitHub标星8k,字节跳动高工熬夜半月整理的“组件化实战学习手册”,全是精髓!的更多相关文章

  1. github标星11600+机器学习课程资源

    github标星11600+:最全的吴恩达机器学习课程资源(完整笔记.视频.python作业) 吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,我在github开源了吴恩达机器学习 ...

  2. Github标星4W+,热榜第一,如何用Python实现所有算法

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 大数据文摘(BigDataDigest) 编译 | 周素云.蒋宝尚 学会了 Python 基 ...

  3. Github标星过万,Python新手100天学习计划。

    大数据文摘编辑部出品 作为目前最火也是最实用的编程语言,Python不仅是新手入门程序界的首选,也逐渐成为了从大厂到小厂,招牌需求list的必要一条. 当然,学Python这件事情,你可能也和文摘菌一 ...

  4. Github标星过万,Python新手100天学习计划,这次再学不会算我输!

      作为目前最火也是最实用的编程语言,Python不仅是新手入门程序界的首选,也逐渐成为了从大厂到小厂,招牌需求list的必要一条. 当然,学Python这件事情,你可能也和文摘菌一样,已经下了一百次 ...

  5. GitHub标星2.6万!Python算法新手入门大全

    今天推荐一个Python学习的干货. 几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万.这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各 ...

  6. 5.7w字?GitHub标星120K的Java面试知识点总结,真就物超所值了

    如果你觉得在一些程序员平台获取到的资料太乱学习起来毫无头绪,但是单看<Java编程思想>相似的一类的Java圣经"枯燥无味",那我推荐你看一下这份GitHub获得过12 ...

  7. GitHub 标星 2.4w+,最适合编程新手入门的宝藏项目推荐

      照惯例这周给大家推荐几个Github上高星的优秀项目,我的github:图灵的猫 ,也欢迎大家follow~ 下面这是第一个,也是首推的新手入门项目,以前我入门的时候如果有这样一个项目,知识广度和 ...

  8. 爱了,字节跳动大神最佳整理:582页Android NDK七大模块学习宝典,理论与实践

    前言 时至今日,短视频App可谓是如日中天,一片兴兴向荣.随着短视频的兴起,音视频开发也越来越受到重视,而且薪资水涨船高,以一线城市为例,音视频工程开发的薪资比Android应用层开发高出40%. 但 ...

  9. GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!

    大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻... 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚.当时一方面是因为菜,看着这种全是 ...

随机推荐

  1. POJ 1703 Find them, Catch them 并查集,还是有点不理解

    题目不难理解,A判断2人是否属于同一帮派,D确认两人属于不同帮派.于是需要一个数组r[]来判断父亲节点和子节点的关系.具体思路可参考http://blog.csdn.net/freezhanacmor ...

  2. Nginx-多服务绑定80端口及映射域名

    多服务绑定80端口及映射域名 说明:业务需要配置的样例模板,如需深入了解,请查看官方文档 1.Nginx配置文件nginx.conf(可拆分多台机器部署) worker_processes  1; e ...

  3. 其他:Git生成SSH、Git生成本地库、下载远程库代码 命令

    1.安装Git Bash https://git-scm.com/downloads 2.鼠标右键git bash here 3.执行以下命令: ①   cd ~/.ssh/    [如果没有对应的文 ...

  4. Hibernate框架(四)缓存策略+lazy

    Hibernate作为和数据库数据打交道的框架,自然会设计到操作数据的效率问题,而对于一些频繁操作的数据,缓存策略就是提高其性能一种重要手段,而Hibernate框架是支持缓存的,而且支持一级和二级两 ...

  5. 1shell变量的作用域

    Shell 局部变量 Shell 全局变量 shell全局变量的易错点 linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别 Shell 环境 ...

  6. shell运维习题训练

    注:初学shell,以下为本人自己写的答案,如果有更好的,请指教! 1. 求2个数之和: 2. 计算1-100的和 3. 将一目录下所有的文件的扩展名改为bak 4.编译并执行当前目录下的所有.c文件 ...

  7. php弱类型比较

    前言:今天XCTF题目中出现了弱类型比较,特别过来记录一下, 0x01: == 是弱类型比较,两个不同类型比较时,会自动转换成相同类型后再比较值 ===是强比较,需要比较值和类型 0x02: 看下图案 ...

  8. Java刷题常用API

    目录 输入输出 快速查看 最大最小值 string stringbuilder 集合 map queue stack set 优先队列 PriorityQueue (Heap) 数组 静态数组 动态数 ...

  9. ARTS第八周

    1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的技术文章 以下是 ...

  10. mongodb oplog详解和格式分析

    1. 基本概念 oplog使用固定大小集合记录了数据库中所有修改操作的操作日志(新增.修改和删除,无查询),mongodb收到修改请求后,先在主节点(Primary)执行请求,再把操作日志保存到opl ...