面向标准化开发已成现实
金三银四,相信有不少读者在抓紧机会面试。
Android 市场已今非昔比。在过去,迫于招人的压力,应试者只需了解四大组件、视图、网络请求,即可谋得一份满意的工作。
现如今,Jetpack 架构组件 及 标准化开发模式 的确立,意味着 Android 开发已步入成熟阶段:
许多 样板代码 不再需要开发者手写,而是可以通过模版工具 自动生成,在取缔繁杂耗时的重复工作的同时,避免因人工操作的疏忽,而造成难以排查、不可预期的错误。
这十分符合企业的利益,因而面试官在招人的时候,也更加看重应试者对 架构组件 —— 至少是 MVVM 的理解程度。🧐
像“解耦”等 含糊其辞的说法,已经不能够被面试官所认可,稍微对 MVVM 有一点经验的面试官都会请你举例说明,好证明你确实对 MVVM 有着正确、深入的理解,能够自然而然地写出标准化、规范化的代码,能够迅速适应 各家公司自制的 自动化模版工具。
本文的目标
本人拥有 3 年的 移动端架构 践行和设计经验,领导团队重构的中大型项目多达十数个,对 Jetpack MVVM 架构在确立规范化、标准化 开发模式 以减少不可预期的错误 所作的努力,有着深入的理解。
因而本文的目标,就是结合前几期我们分别 深入浅出 介绍过的 Lifecycle、LiveData、ViewModel、DataBinding,来融汇贯通地演绎一下:
作为 应用开发骨架 的 标准化状态管理框架,究竟为 快速开发过程中 减少不可预期的错误 做了哪些努力。
不同于 东拼西凑、人云亦云、徒添困扰 的网文,愿意将 标准化开发模式的 深度思考知识 和 实战反思经验 无保留地分享,全网仅此一家。这样的文章可以说是 看一篇、少一篇,因此,就算不去 hold 住面试官,也请务必跟随本文的脚步,无障碍地将 Jetpack MVVM 过一遍!😉
文章目录一览
- 前言
- 面向标准化开发已成现实
- 本文的目标
- Jetpack Lifecycle
- Lifecycle 存在前的混沌世界
- Lifecycle 为什么能解决上述这些问题?
- Jetpack LiveData
- LiveData 存在前的混沌世界
- LiveData 为什么能解决上述这些问题?
- LiveData 有个坑需要注意
- Jetpack ViewModel
- ViewModel 存在前的混沌世界
- ViewModel 为什么能做到这几点?
- Jetpack DataBinding
- DataBinding 存在前的混沌世界
- DataBinding 就是来解决这些问题
- 综上
Jetpack Lifecycle
Lifecycle 的存在,主要是为了解决 生命周期管理 的一致性问题
Lifecycle 存在前的混沌世界
在 Lifecycle 面市前,生命周期管理 纯靠手工维持,这样就容易滋生大量的一致性问题。
例如跨页面共享的 GpsManager 组件,在每个依赖它的 Activity 的 onResume 和 onPause 中都需要 手工 激活、解绑 和 叫停。
那么 随着 Activity 的增多,这种手工操作 埋下的一致性隐患 就会指数级增长:
一方面,凡是手工维持的,开发者容易疏忽,特别是工作交接给其他同事时,同事并不能及时注意到这些细节。