架构究竟是什么?如何更好的理解架构?
我们知道一个App通常是由class组成,而这些class之间如何组合,相互之间又如何产生作用,就是影响这个APP的关键点。
细分的话我们可以将其分为类、接口、任务流。
我们在进行架构设计的时候,通常具有一定的目的性,用一句话来概括就是:架构设计的真正目的是为了解决软件系统的复杂度带来的问题,所谓高性能、高可用、高扩展。
我们将其大致可以分为:易扩展、易维护、可定制、可伸缩
现在我们在进行设计的时候,一般都会有要求高内聚、低耦合,以此来保证APP的高质量
为了方便大家理解,这边举个栗子:
低内聚,高耦合:
高内聚,低耦合:
大家觉得谁更好维护?更容易调整?出错了更容易排查?
我们在架构设计中最本质的目的就是管理复杂度,你听过的各种思想、原则、方法大多都是为了控制复杂度而设计出来的。
像依赖注入就是项目组件解耦中非常重要的一个手段,Dagger2 和 Hilt 都是在 Android 中最主要的依赖注入框架。
依赖注入其实并不是一个很神秘的概念,往往在不经意间我们就使用了依赖注入。依赖注入应用了IOC控制反转的原理,简单来说就是在类的外部构造依赖项,使用构造器或者 setter 注入。
使用依赖注入可以为我们带来什么好处呢?
我们都知道Dagger是一个早期的依赖注入库,但确实不好用,需要配置很多东西。虽然它能很好帮我们解耦各个模块之间的强关联性,提高项目的健壮性。但其却以羞涩难懂、难用而闻名,吓退了很多的开发者。
Hilt是 Dagger2 的二次封装,Hilt 本质上是对 Dagger 进行场景化。是一个功能强大且用法简单的依赖注入框架,同时也可以说是近期 Jetpack 家族中最重要的一名新成员。但Hilt涉及的知识点也是相当繁多,即使它将 Dagger2 的用法进行了大幅的简化,如果你之前对于依赖注入完全没有了解,直接上手 Hilt 还是会有不少的困难。
在这里问大家几个问题,看看能不能回答上来:
说了这么多,那么我们如何学习Hilt,将IOC技术融入进我们的架构设计中呢?
为了帮助大家站在高级工程师的角度,深度理解IOC技术在移动端的实战应用,同时掌握移动端流行IOC框架Hilt与Dagger2的实战应用与实现原理。
在这里分享一份由大佬亲自收录整理的学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。
当然,你也可以拿去查漏补缺,提升自身的竞争力。
真心希望可以帮助到大家,Android路漫漫,共勉!