我动了公司祖传的老代码…

在开发世界里,永远是技术至上,一门新技术的盛行总是有原因的,要么比老框架性能提升不少,要不更加易用等等。作为一个追求上进的开发者,就是要不断学习,尝试各种新技术。

APP自身在飞速发展,发展有两个方向:

1)死亡,我们的团队被优化;

2)版本不断迭代,新功能不断增加,业务模块数量不断增加,业务上的处理逻辑越变越复杂,同时每个模块代码也变得越来越多。对于app的不断壮大,这将引发一个问题,所维护的代码成本越来越高,稍微一改动可能就牵一发而动全身,改个小的功能点就需要回归整个APP测试,这就对开发和维护带来很大的挑战,更有甚者:一个app里面同质的SDK大量集成,最典型的就是网络SDK,一个App里面同时包含了Volley,Okhttp,Retrofit,其实,我们不想这样啊,我们是没办法才这样做的,因为,我们的app架构太混乱了,不敢动哦,有木有?

明明只改了一行代码啊…

事实上以下才是根本问题:

1. 代码量膨胀,不利于维护,不利于新功能的开发。项目工程构建速度慢,在一些电脑上写两句代码,重新编译整个项目,测试的话编译速度起码5~10分钟,有的甚至更长,Gradle老是和我们过不去。

2. 不同模块之间代码耦合严重,有时候修改一处代码而牵动许多模块,更不用说切换SDK了。每个模块之间都有引用第三方库,但有些第三方库版本不一致,导致打包APP时候代码冗余,容易引起版本冲突。

3. 现有项目基于他人项目基础上开发,经手的人次过多,存在着不同的代码风格,项目中代码规范乱,类似的功能写法却不一样,导致不统一,然后我却不敢动手推翻重来。

app重构后,系统更稳健了

如果之前app的架构无法满足现有的业务需求,我们该如何优雅地重构App呢?

从工作到现在,经历过了MVC、MVP、MVVM等,每个App由于项目特点和需求的不同,都会出现一套基于开发者所设计的架构模式,分层、组件化、模块化,每一种设计都是基于项目所在场景的,很难适合所有项目场景。

App 业务规模扩大,随之而来的是团队规模扩大,那就涉及到多人协作问题,每个移动端软件开发人员势必要熟悉如此之多代码,如果不按照一定的模块组件机制去划分,将很难进行多人协作开发;随着单一项目变大,而且Andorid项目在编译代码方面就会变得非常缓慢,在单一工程代码耦合严重,每修改一处代码后都需要重新编译打包测试,非常耗时。

模块化、层次化、控件化、组件化怎么应用到实践当中?Artifactory对模块化和组件化大有帮助;Jetpack可以有效减少OOM和No Pointer Exception;Mvvm则可以满足需求的变化。也许单个的技术点你了解过,我们又该怎样将Artifactory、最新的Jetpack和Mvvm结合呢?另外,如何在搭建app架构的同时,进行App启动速度的性能优化呢?

为了让大家掌握这些技能,我邀请了国防科技大学研究生、全球首批Android开发者Allen老师为大家带来《架构实战》系列直播课程,让大家从Mvvm高级实战开始,快速成长为移动端大神

在线实时答疑,有疑问,当场解决。


《从零开始手把手搭建App框架》

添加不微信号Thanos_noBug

原价199元,公众号粉丝专享限时0.1元

本次课程将会让你对架构实战有系统而深入的认识


Allen老师:

中国联通资深架构师;全球首批Android开发者;10余年项目开发经验,独立开发应用被 360收购。

专精领域:Android架构,性能优化等技术领域。

课程大纲

1.13

Mvvm项目Gradle优化和本地仓库搭建

1、APP架构应该怎样搭建?

2、MVx有哪些?区别是什么?

3、Android工程Gradle的使用规范和本地仓库搭建;

4、模块化、层次化工程搭建;

1.14

基于Jetpack的Mvvm高级架构逐步实现

1、初中级工程师是怎样实现架构?

2、架构师怎样实现控件化,怎样定义自定义的基类?

3、Mvvm Model的功能是什么?缓存有哪些级别,怎样提取Model的基类?

4、Mvvm ViewModel怎样和Jetpack结合,OOM问题在MVVM中怎样避免?

1.15

App组件化和启动性能优化

1、Fragment和Activity的错误处理页面有完美方案吗?他们的基类又该怎样实现呢?

2、App的白屏问题怎么解决?

3、App启动速度性能优化;



附赠Android架构进阶资料

立即扫码添加薇薇小姐姐报名

还有海量安卓工程师岗位内推机会!头条、阿里等

添加不上可搜索微信号:Thanos_noBug

“学好这堂课,就去动动老代码

发布了126 篇原创文章 · 获赞 4187 · 访问量 261万+

猜你喜欢

转载自blog.csdn.net/singwhatiwanna/article/details/104832154