区块链技术博客
www.b2bchain.cn

重学安卓:项目重构 “自助攻略” 温柔救急版求职学习资料

本文介绍了重学安卓:项目重构 “自助攻略” 温柔救急版求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

往期回顾,专栏目录更新动态,优惠政策,版权须知

温馨提示:如果这是第一次接触《重学安卓》,可通过上述链接来访问和快速了解《重学安卓》专栏、获取它的目录、试读内容,以及了解它的最新动态 和 发展状况。

截至目前,专栏已对 体系化文章 做了 2150 余次修订,数十位群友告诉我 受专栏的启发 他们也开启了写作之路。群里不定期会有小伙伴讨论适配问题、分享原创的开源库 和 提供内推机会,订阅后可随时进群交流。

前言

像往常一样,在夜幕陪伴下,我静静俯在桌前写代码。

随着叮咚一声铃响,今天老婆回来的比较早,一顿寒暄,回卧室了。

不一会儿,老婆又来到书房,伏在我身后,说 👩‍🦰:“老公,我感觉压力有点大”,

我 👦🏻:“发生什么了 … 你说嘛”,

老婆 👩‍🦰:“下周,我牵头组织公司旧项目重构”,

我 👦🏻:“挺好的呀,你力气大,你来嘛”,

老婆推了推我 👩‍🦰:“哎,老公,我跟你说正事呢,

上个月订阅你专栏,因为一直在忙,只看了一部分,还没来得及看完,然后现在,就要接手项目重构。架构这块的理解,我又属于薄弱,感觉就很慌。

… 毕竟,对升职有一定帮助,我也不想放过这个机会,所以就主动提出,要自己牵头来负责。

你那些文章,我有认真在看,也看得懂。而且我工作遇到问题的时候,拿出来翻一翻,也经常能翻到,网上不好找的信息。感觉很受用。但现在主要就是感觉慌,

… 也算是 临时抱佛脚 吧,就是想,让你来给我 “画重点”,使得,我对这个事情,有头有尾,层次分明,心里先有个数嘛”,

我 👦🏻:“好吧,我明白你意思了。等我一下,我先把这段代码敲完。半小时后,我过来找你”,

老婆 👩‍🦰:“好的,老公”,

文章目录一览

  • 前言

  • 架构到底干了什么,重构到底依据什么

  • 现已知 “高频场景” 和解决方案

  • 架构组件的 “底层逻辑” 和 “自定义思路”

  • Jetpack MVVM 项目打开方式

  • 无缝切换 Kotlin

  • 综上

架构到底干了什么,重构到底依据什么

半个小时后 …

我 👦🏻:“额,刚刚,你说什么来着 … 哦,想起来了,架构是吧?”,

老婆 👩‍🦰:“对”,

我 👦🏻:“因为你之前,已经从事了三年 Android 开发,所以基础知识已经是有了”,

老婆 👩‍🦰:“对,所以现在不就是因为这个,我想累积一下经验,好为以后争取开发小组长的职位嘛,

我现在,就是搞不懂,我们说的这些架构,到底是指什么,到底是干什么的?要做到什么程度才算可以?有没有统一的、可以无脑遵循的标准?”

我 👦🏻:“哈哈,有的,就像你理解的这样,说,有统一的标准”,

老婆 👩‍🦰:“那快说说吧”,

我 👦🏻:“我举个例子,状态管理,保存恢复的代码,你应该写过吧?”,

老婆 👩‍🦰:“写过,就是 Activity 有个变量,想保存恢复,那么此时,声明一个常量,在恢复流程基于这个常量,去恢复这个变量;在保存流程,基于这个常量,去保存这个变量”,

重学安卓:项目重构 “自助攻略” 温柔救急版

我 👦🏻:“没错,那这里面涉及到多少步?”,

老婆 👩‍🦰:“4 步”,

我 👦🏻:“而且如果变量一多,常量也会跟着变多”,

老婆 👩‍🦰:“是的,没错”,

我 👦🏻:“这还不是最要紧的,毕竟,如果只是常量变多,这么一个问题,那么也就是,每多一个变量,代码量都要往上翻 4 倍而已,也即 + 4x”,

老婆 👩‍🦰:“那还有什么问题呢?”,

我 👦🏻:“你仔细想想啊,你是否见过变量和常量一摞就是 20、30 行的 Activity”,

老婆 👩‍🦰:“见过啊,这样的 Activity 在我们公司的项目中实在多了去了”,

我 👦🏻:“回忆一下,你在翻看这些 Activity 时,什么感受”,

重学安卓:项目重构 “自助攻略” 温柔救急版

老婆 👩‍🦰:“通常就是 … 因为你也知道,我们每天要开早会,然后领导安排我们每个人,今天负责什么业务功能,的增加和修改,然后,任务布置的很多,从早忙到晚。

其实,任务不多的话,我心态也就还好,可以慢慢来。任务一多,我就开始神经紧绷,然后这时候,我再打开这种 Activity,我会瞬间大脑一片空白 —— 诶,我刚刚,是想写什么代码来着;我刚刚,是要修改哪段代码来着”,

我 👦🏻:“太真实了”,

老婆 👩‍🦰:“不仅如此,而且还容易出错,比方说,刚刚你说的,状态保存恢复,我经常,就会因为大脑空白,而写了保存语句、忘了恢复语句,写了恢复语句、忘了保存语句,总是要等到编译完、测试机跑起来,复现出问题,才会注意到,原来这里又少写了一行代码”,

我 👦🏻:“对,没错,看来你也是深有体会。就是这些问题。

重学安卓:项目重构 “自助攻略” 温柔救急版

而且你看,这种疏忽,引发的问题,往往不是 4x 这么简单,而是 x⁴,也即,每疏忽了一个这样的代码,除非运气好,容易 crash 从而注意到,否则,发现它的几率就是 1/x⁴,

那么,这样的代码,就容易存在各种不可预期的隐患,今天没有崩,明天夜里 12 点,老板忽然夺命连环 call,喊你回去改用户反映的加急 bug”,

老婆 👩‍🦰:“对 … 我闺蜜还真有过,加班很晚才回来,又被叫回去 … 崩溃到哭”,

我 👦🏻:“是啊,所以,我们这里说的架构,是 特指业务架构,业务架构组件就是,专门把这些在业务中高频接触的、繁琐的、容易疏忽的问题给屏蔽掉。或者用通俗的话来说,就是,找到一种方式(比如基于 “设计模式原则”),让代码的书写更简练优雅,

重学安卓:项目重构 “自助攻略” 温柔救急版

比方说,状态保存和恢复,现如今,我们可以用 Jetpack ViewModel 这个组件,来实现,也即,我只需在 ViewModel 中,去声明一个变量,然后在页面中调用,就行了。

如此一来,在旋转屏幕等环境重建的情景下,这些变量会一直存在,而不必手动去保存和恢复。这样,就达成了目标,并且不易因为疏忽,而产生而外的错误”,

老婆 👩‍🦰:“哦,这样一说,我就理解了,类似于 专项治理,专门找出高频的场景,通过更优雅的方式,来解决这些场景下的问题”,

我 👦🏻:“没错,可以这么理解”,

往期回顾,专栏目录更新动态,优惠政策,版权须知

温馨提示:如果这是第一次接触《重学安卓》,可通过上述链接来访问和快速了解《重学安卓》专栏、获取它的目录、试读内容,以及了解它的最新动态 和 发展状况。

截至目前,专栏已对 体系化文章 做了 2150 余次修订,数十位群友告诉我 受专栏的启发 他们也开启了写作之路。群里不定期会有小伙伴讨论适配问题、分享原创的开源库 和 提供内推机会,订阅后可随时进群交流。

前言

像往常一样,在夜幕陪伴下,我静静俯在桌前写代码。

随着叮咚一声铃响,今天老婆回来的比较早,一顿寒暄,回卧室了。

不一会儿,老婆又来到书房,伏在我身后,说 👩‍🦰:“老公,我感觉压力有点大”,

我 👦🏻:“发生什么了 … 你说嘛”,

老婆 👩‍🦰:“下周,我牵头组织公司旧项目重构”,

我 👦🏻:“挺好的呀,你力气大,你来嘛”,

老婆推了推我 👩‍🦰:“哎,老公,我跟你说正事呢,

上个月订阅你专栏,因为一直在忙,只看了一部分,还没来得及看完,然后现在,就要接手项目重构。架构这块的理解,我又属于薄弱,感觉就很慌。

… 毕竟,对升职有一定帮助,我也不想放过这个机会,所以就主动提出,要自己牵头来负责。

你那些文章,我有认真在看,也看得懂。而且我工作遇到问题的时候,拿出来翻一翻,也经常能翻到,网上不好找的信息。感觉很受用。但现在主要就是感觉慌,

… 也算是 临时抱佛脚 吧,就是想,让你来给我 “画重点”,使得,我对这个事情,有头有尾,层次分明,心里先有个数嘛”,

我 👦🏻:“好吧,我明白你意思了。等我一下,我先把这段代码敲完。半小时后,我过来找你”,

老婆 👩‍🦰:“好的,老公”,

文章目录一览

  • 前言

  • 架构到底干了什么,重构到底依据什么

  • 现已知 “高频场景” 和解决方案

  • 架构组件的 “底层逻辑” 和 “自定义思路”

  • Jetpack MVVM 项目打开方式

  • 无缝切换 Kotlin

  • 综上

架构到底干了什么,重构到底依据什么

半个小时后 …

我 👦🏻:“额,刚刚,你说什么来着 … 哦,想起来了,架构是吧?”,

老婆 👩‍🦰:“对”,

我 👦🏻:“因为你之前,已经从事了三年 Android 开发,所以基础知识已经是有了”,

老婆 👩‍🦰:“对,所以现在不就是因为这个,我想累积一下经验,好为以后争取开发小组长的职位嘛,

我现在,就是搞不懂,我们说的这些架构,到底是指什么,到底是干什么的?要做到什么程度才算可以?有没有统一的、可以无脑遵循的标准?”

我 👦🏻:“哈哈,有的,就像你理解的这样,说,有统一的标准”,

老婆 👩‍🦰:“那快说说吧”,

我 👦🏻:“我举个例子,状态管理,保存恢复的代码,你应该写过吧?”,

老婆 👩‍🦰:“写过,就是 Activity 有个变量,想保存恢复,那么此时,声明一个常量,在恢复流程基于这个常量,去恢复这个变量;在保存流程,基于这个常量,去保存这个变量”,

重学安卓:项目重构 “自助攻略” 温柔救急版

我 👦🏻:“没错,那这里面涉及到多少步?”,

老婆 👩‍🦰:“4 步”,

我 👦🏻:“而且如果变量一多,常量也会跟着变多”,

老婆 👩‍🦰:“是的,没错”,

我 👦🏻:“这还不是最要紧的,毕竟,如果只是常量变多,这么一个问题,那么也就是,每多一个变量,代码量都要往上翻 4 倍而已,也即 + 4x”,

老婆 👩‍🦰:“那还有什么问题呢?”,

我 👦🏻:“你仔细想想啊,你是否见过变量和常量一摞就是 20、30 行的 Activity”,

老婆 👩‍🦰:“见过啊,这样的 Activity 在我们公司的项目中实在多了去了”,

我 👦🏻:“回忆一下,你在翻看这些 Activity 时,什么感受”,

重学安卓:项目重构 “自助攻略” 温柔救急版

老婆 👩‍🦰:“通常就是 … 因为你也知道,我们每天要开早会,然后领导安排我们每个人,今天负责什么业务功能,的增加和修改,然后,任务布置的很多,从早忙到晚。

其实,任务不多的话,我心态也就还好,可以慢慢来。任务一多,我就开始神经紧绷,然后这时候,我再打开这种 Activity,我会瞬间大脑一片空白 —— 诶,我刚刚,是想写什么代码来着;我刚刚,是要修改哪段代码来着”,

我 👦🏻:“太真实了”,

老婆 👩‍🦰:“不仅如此,而且还容易出错,比方说,刚刚你说的,状态保存恢复,我经常,就会因为大脑空白,而写了保存语句、忘了恢复语句,写了恢复语句、忘了保存语句,总是要等到编译完、测试机跑起来,复现出问题,才会注意到,原来这里又少写了一行代码”,

我 👦🏻:“对,没错,看来你也是深有体会。就是这些问题。

重学安卓:项目重构 “自助攻略” 温柔救急版

而且你看,这种疏忽,引发的问题,往往不是 4x 这么简单,而是 x⁴,也即,每疏忽了一个这样的代码,除非运气好,容易 crash 从而注意到,否则,发现它的几率就是 1/x⁴,

那么,这样的代码,就容易存在各种不可预期的隐患,今天没有崩,明天夜里 12 点,老板忽然夺命连环 call,喊你回去改用户反映的加急 bug”,

老婆 👩‍🦰:“对 … 我闺蜜还真有过,加班很晚才回来,又被叫回去 … 崩溃到哭”,

我 👦🏻:“是啊,所以,我们这里说的架构,是 特指业务架构,业务架构组件就是,专门把这些在业务中高频接触的、繁琐的、容易疏忽的问题给屏蔽掉。或者用通俗的话来说,就是,找到一种方式(比如基于 “设计模式原则”),让代码的书写更简练优雅,

重学安卓:项目重构 “自助攻略” 温柔救急版

比方说,状态保存和恢复,现如今,我们可以用 Jetpack ViewModel 这个组件,来实现,也即,我只需在 ViewModel 中,去声明一个变量,然后在页面中调用,就行了。

如此一来,在旋转屏幕等环境重建的情景下,这些变量会一直存在,而不必手动去保存和恢复。这样,就达成了目标,并且不易因为疏忽,而产生而外的错误”,

老婆 👩‍🦰:“哦,这样一说,我就理解了,类似于 专项治理,专门找出高频的场景,通过更优雅的方式,来解决这些场景下的问题”,

我 👦🏻:“没错,可以这么理解”,

往期回顾,专栏目录更新动态,优惠政策,版权须知

温馨提示:如果这是第一次接触《重学安卓》,可通过上述链接来访问和快速了解《重学安卓》专栏、获取它的目录、试读内容,以及了解它的最新动态 和 发展状况。

截至目前,专栏已对 体系化文章 做了 2150 余次修订,数十位群友告诉我 受专栏的启发 他们也开启了写作之路。群里不定期会有小伙伴讨论适配问题、分享原创的开源库 和 提供内推机会,订阅后可随时进群交流。

前言

像往常一样,在夜幕陪伴下,我静静俯在桌前写代码。

随着叮咚一声铃响,今天老婆回来的比较早,一顿寒暄,回卧室了。

不一会儿,老婆又来到书房,伏在我身后,说 👩‍🦰:“老公,我感觉压力有点大”,

我 👦🏻:“发生什么了 … 你说嘛”,

老婆 👩‍🦰:“下周,我牵头组织公司旧项目重构”,

我 👦🏻:“挺好的呀,你力气大,你来嘛”,

老婆推了推我 👩‍🦰:“哎,老公,我跟你说正事呢,

上个月订阅你专栏,因为一直在忙,只看了一部分,还没来得及看完,然后现在,就要接手项目重构。架构这块的理解,我又属于薄弱,感觉就很慌。

… 毕竟,对升职有一定帮助,我也不想放过这个机会,所以就主动提出,要自己牵头来负责。

你那些文章,我有认真在看,也看得懂。而且我工作遇到问题的时候,拿出来翻一翻,也经常能翻到,网上不好找的信息。感觉很受用。但现在主要就是感觉慌,

… 也算是 临时抱佛脚 吧,就是想,让你来给我 “画重点”,使得,我对这个事情,有头有尾,层次分明,心里先有个数嘛”,

我 👦🏻:“好吧,我明白你意思了。等我一下,我先把这段代码敲完。半小时后,我过来找你”,

老婆 👩‍🦰:“好的,老公”,

文章目录一览

  • 前言

  • 架构到底干了什么,重构到底依据什么

  • 现已知 “高频场景” 和解决方案

  • 架构组件的 “底层逻辑” 和 “自定义思路”

  • Jetpack MVVM 项目打开方式

  • 无缝切换 Kotlin

  • 综上

架构到底干了什么,重构到底依据什么

半个小时后 …

我 👦🏻:“额,刚刚,你说什么来着 … 哦,想起来了,架构是吧?”,

老婆 👩‍🦰:“对”,

我 👦🏻:“因为你之前,已经从事了三年 Android 开发,所以基础知识已经是有了”,

老婆 👩‍🦰:“对,所以现在不就是因为这个,我想累积一下经验,好为以后争取开发小组长的职位嘛,

我现在,就是搞不懂,我们说的这些架构,到底是指什么,到底是干什么的?要做到什么程度才算可以?有没有统一的、可以无脑遵循的标准?”

我 👦🏻:“哈哈,有的,就像你理解的这样,说,有统一的标准”,

老婆 👩‍🦰:“那快说说吧”,

我 👦🏻:“我举个例子,状态管理,保存恢复的代码,你应该写过吧?”,

老婆 👩‍🦰:“写过,就是 Activity 有个变量,想保存恢复,那么此时,声明一个常量,在恢复流程基于这个常量,去恢复这个变量;在保存流程,基于这个常量,去保存这个变量”,

重学安卓:项目重构 “自助攻略” 温柔救急版

我 👦🏻:“没错,那这里面涉及到多少步?”,

老婆 👩‍🦰:“4 步”,

我 👦🏻:“而且如果变量一多,常量也会跟着变多”,

老婆 👩‍🦰:“是的,没错”,

我 👦🏻:“这还不是最要紧的,毕竟,如果只是常量变多,这么一个问题,那么也就是,每多一个变量,代码量都要往上翻 4 倍而已,也即 + 4x”,

老婆 👩‍🦰:“那还有什么问题呢?”,

我 👦🏻:“你仔细想想啊,你是否见过变量和常量一摞就是 20、30 行的 Activity”,

老婆 👩‍🦰:“见过啊,这样的 Activity 在我们公司的项目中实在多了去了”,

我 👦🏻:“回忆一下,你在翻看这些 Activity 时,什么感受”,

重学安卓:项目重构 “自助攻略” 温柔救急版

老婆 👩‍🦰:“通常就是 … 因为你也知道,我们每天要开早会,然后领导安排我们每个人,今天负责什么业务功能,的增加和修改,然后,任务布置的很多,从早忙到晚。

其实,任务不多的话,我心态也就还好,可以慢慢来。任务一多,我就开始神经紧绷,然后这时候,我再打开这种 Activity,我会瞬间大脑一片空白 —— 诶,我刚刚,是想写什么代码来着;我刚刚,是要修改哪段代码来着”,

我 👦🏻:“太真实了”,

老婆 👩‍🦰:“不仅如此,而且还容易出错,比方说,刚刚你说的,状态保存恢复,我经常,就会因为大脑空白,而写了保存语句、忘了恢复语句,写了恢复语句、忘了保存语句,总是要等到编译完、测试机跑起来,复现出问题,才会注意到,原来这里又少写了一行代码”,

我 👦🏻:“对,没错,看来你也是深有体会。就是这些问题。

重学安卓:项目重构 “自助攻略” 温柔救急版

而且你看,这种疏忽,引发的问题,往往不是 4x 这么简单,而是 x⁴,也即,每疏忽了一个这样的代码,除非运气好,容易 crash 从而注意到,否则,发现它的几率就是 1/x⁴,

那么,这样的代码,就容易存在各种不可预期的隐患,今天没有崩,明天夜里 12 点,老板忽然夺命连环 call,喊你回去改用户反映的加急 bug”,

老婆 👩‍🦰:“对 … 我闺蜜还真有过,加班很晚才回来,又被叫回去 … 崩溃到哭”,

我 👦🏻:“是啊,所以,我们这里说的架构,是 特指业务架构,业务架构组件就是,专门把这些在业务中高频接触的、繁琐的、容易疏忽的问题给屏蔽掉。或者用通俗的话来说,就是,找到一种方式(比如基于 “设计模式原则”),让代码的书写更简练优雅,

重学安卓:项目重构 “自助攻略” 温柔救急版

比方说,状态保存和恢复,现如今,我们可以用 Jetpack ViewModel 这个组件,来实现,也即,我只需在 ViewModel 中,去声明一个变量,然后在页面中调用,就行了。

如此一来,在旋转屏幕等环境重建的情景下,这些变量会一直存在,而不必手动去保存和恢复。这样,就达成了目标,并且不易因为疏忽,而产生而外的错误”,

老婆 👩‍🦰:“哦,这样一说,我就理解了,类似于 专项治理,专门找出高频的场景,通过更优雅的方式,来解决这些场景下的问题”,

我 👦🏻:“没错,可以这么理解”,

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 重学安卓:项目重构 “自助攻略” 温柔救急版求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们