共计 2266 个字符,预计需要花费 6 分钟才能阅读完成。
背景
随着我的项目逐步扩大,业务性能越来越多,代码量越来越多,开发人员数量也越来越多。此过程中,你是否有过以下懊恼?
我的项目模块多且简单,编译一次要 5 分钟甚至 10 分钟?太慢不能忍?
改了一行代码 / 只调了一点 UI,就要 run 整个我的项目,再忍耐一次 10 分钟?
合代码常常发生冲突?很烦?
被人偷偷改了本人模块的代码?很不爽?
做一个需要,发现还要去改变很多他人模块的代码?
别的模块已实现的相似性能,本人要用只能去复制一份代码再改改?
“这个不是我负责的,我不论”,代码责任范畴不明确?
只做了一个模块的性能,但改变点很多,所以要残缺回归测试?
做了个需要,但人不知; 鬼不觉导致其余模块呈现 bug?
如果有这些懊恼,阐明你的我的项目须要进行组件化 了。
什么是组件化
组件化是基于模块化的,组件化是建设在模块化思维上的一次演进,一个变种。组件化原本就是模块化的概念,然而组件化的外围是:模块角色的可转换性,能够在打包时是设置为 library,开始调试运行是设置成 application。
艰深的讲组件化就是基于可重用的目标,将一个大的软件系统依照拆散关注点的模式,拆分成多个独立的组件。组件的呈现是为了解决全局工程中有很多反复代码的问题,是为了复用,而且划分力度是绝对较小的模块。组件化的另一个目标是为理解耦,把零碎拆分成多个组件,拆散组件边界和责任,便于独立降级和保护。
组件化开发带来的长处:
- 业务模块离开,解耦的同时也升高了我的项目的复杂度,构造十分清晰。
- 开发调试时不须要对整个我的项目进行编译,每个模块可独立编译,进步了编译速度。
- 多人单干时能够只关注本人的业务模块,把某一业务当成繁多我的项目来开发,能够晋升开发,测试效率。
- 能够灵便的对业务模块进行组装和拆分。
防止反复造轮子,节俭开发保护老本;
为什么当初公司很重视组件化这个问题呢?
举个例子来说,一个我的项目须要好几个业务代码,如果某一个业务代码出了问题,则须要在好几个当中去寻找,工程师须要理解各个业务的性能,防止代码的改变而影响其它的业务性能,势必无形中减少了我的项目保护的老本。如果让他们都绝对独立,咱们只须要保护好每个组件,须要用到该组件的性能时,一建援用集成就能够了。
近年来,为什么这么多团队要进行组件化实际呢?组件化到底能给咱们的工程、代码带来什么益处?
组件化的益处:
放慢编译速度
每个业务性能都是一个独自的工程,可独立编译运行,拆分后代码量较少,编译天然变快。
进步合作效率
解耦使得组件之间彼此互不打搅,组件外部代码相关性极高。团队中每个人有本人的责任组件,不会影响其余组件;升高团队成员相熟我的项目的老本,只需相熟责任组件即可;对测试来说,只需重点测试改变的组件,而不是全盘回归测试。
性能重用
组件相似咱们援用的第三方库,只需保护好每个组件,一键援用集成即可。业务组件可上可下,灵便多变;而根底组件,为新业务随时集成提供了根底,缩小反复开发和保护工作量。
怎么学呢?
这里给大家分享一份全网最全的《高级 Android 组件化强化实战》手册,手册分为三个大章节,Android 组件化初识,Android 组件化初探 和 架构演变(大厂篇)
第一章 Android 组件化初识
- 组件化和模块化的区别
- 组件化和插件化的区别
- 组件化开发的劣势
- 业务逻辑层
- 组件化开发要遇到的问题
- 从组件化实战来解决问题
Android 组件化根底
第二章 Android 组件化初探
- 组件化演示案例
- 概述
- 模块化和组件化
- 组件化 Demo
- 组件 application 和 library 动静切换
- WanAndroid APP 组件化我的项目实战(附 demo)
- 简介
- 版本更新
- 效果图
- 次要性能
- 我的项目目录构造
- 次要开源框架
第三章 架构演变(大厂篇)
组件化作为 Android 客户端技术的一个重要分支,近年来始终是业界积极探索和实际的方向。每个大厂外部的各个 Android 开发团队也在尝试和实际不同的组件化计划,并且在组件化通信框架上也有很多高质量的产出。
从智行 Android 我的项目看组件化架构实际
- 组件化调整的起因和指标
- 组件化架构调整的整体规划
- 组件化架构调整中遇到的一些问题
- 组件化架构的实际成绩
失去 App
- Android 彻底组件化 demo 公布
- Android 彻底组件化—代码和资源隔离
- 组件化:代码隔离也难不倒组件的按序初始化
微信 App
- 微信 Android 模块化架构重构实际
- 微信 Android 架构历史
- 为何再次重构微信
- 重塑模块化
- 取舍和抉择
- 代码之外,架构之内
蘑菇街 App
- 实现形式
- 组件生命周期治理
- 壳工程
- 遇到的问题
- 继续集成
周边设施
爱奇艺 App
- 对于组件化
- 基于 Service 的 IPC 通信
- 组件化跨过程通信的外围诉求
- Andromeda
- 架构剖析
美团 App
- 外卖客户端容器化架构的演进
- 美团外卖容器化架构全景图
- 外卖跨端容器建设
- 外卖页面容器建设
- 外卖容器化架构的掂量指标
- 外卖容器化架构的监控运维
- 外卖容器化架构的公布能力
携程 App
- 产品
- 无线后端服务架构
- App 工程架构
Native 的插件化和 HotFix
支付宝 App
- Quinox 简介
- Bundle 介绍
- 资源管理
容器化
## 结语:
这份材料最具价值的就是实战我的项目局部。
实践局部教科书上曾经足够了,然而实战的剖析是很难找到的。浏览这份材料,就是在和大佬对话,置信你的播种肯定不少。
PS:除了学习,这份材料还能够当做一个面试宝典来用,外面有很多大我的项目的组件化剖析,置信你看过后再次面对面试官的时候肯定能娓娓而谈。
最初在这里心愿大家工作顺利,没有 BUG,不加班。没有工作的敌人,面试顺利,offer 一直!!因为材料内容过多,文章篇幅无限,须要完整版《高级 Android 组件化强化实战》点击这里 支付哦!