目录
前言
上一任安卓同事离职后,我接手了他留下的两个APP项目,一个是他重构刚过的,用的是MVVM架构,一个是老的,MVC架构。在后续的一些业务需求上的改动时,审视相关的代码和结构,实在是有太多地方想吐槽,尤其是老的那款APP代码,前同事刚重构的那款,代码和结构上倒是清晰,但是一些设计上还是让我维护和扩展起来头疼。
于是前一阵子花了两个月左右的时间,我将老的那款APP重构了一版,用的是MVI框架,Compose写的UI(推荐赶紧学Compose,真香)。重构过程中也学习积累了一些APP从零到一的经验吧,在这里也记录分享一下,大家一起进步。
一、架构设计方面
1. 架构选择:没有最好的,只有最合适的
作为一名合格的Android开发者,对MVC、MVP、MVVM、MVI等常用的主流架构应该都要涉猎,了解他们的流程、使用、设计初衷以及各自的优缺点,并选择合适的架构。
了解主流框架可看我的这篇文章:Android主流架构心得总结 MVC\MVP\MVVM\MVI
2. 奥卡姆剃刀定律:如无必要,勿增实体
但是当你接手了APP的代码之后,后续的开发你应该基于它原有的架构和设计的基础上,你觉得不足的地方可以做优化,但是如非必要,最好不要破坏和魔改它原有的大框架,避免引起不必要的Bug和增加后续维护的复杂度
我接触过的一些陈旧项目中,有的就是经好多人之手,各种风格的代码胡拼乱凑到一起,代码冗余度极高、且非常混乱,不仅容易出Bug,而且不好排查和维护。
3. 学习必要的常用设计模式,并理解与合理巧妙运用
写代码不要很死板,只要能够实现需求的那个效果就好,不思考代码的设计,一味的埋头苦干,不仅吃力不讨好,还把自己发展成码农了!
作为一个优秀的开发工程师,拿到需求后,第一件事肯定是要思考如何设计实现,总的目标其实无非就是:高解耦、可扩展、可测试、易维护、低冗余等等,这其中每一条都值得好好研究一番,以后在写代码的过程中可以养成良好的意识和习惯,具体可参考:架构设计原则
二、常用工具的使用技巧
掌握一些常用的辅助工具、插件、及他们的使用技巧,记住一些常用的快捷键或者快捷指令,可以极大提高工作效率和减少不必要的工作量,以下介绍一些我工作和学习过程中经常用到的一些工具及其使用技巧
Android Studio的一些使用技巧
快捷键
我只讲我用的最多的,其他的不常用的我这里不赘述,可能部分没想起来会有遗漏,可以自行查看Android Studio快捷键设置
ctrl + tab :快速切换最近的页面,也可以多次按tab连续切换
ctrl + alt + ← 或 → :可以快速切换到之前或之后浏览的地方,也可以连续切换
ctrl + F :当前文件内查找匹配的文本,可配合通配符正则查找
ctrl + shift + F:全局或指定范围查找匹配的文本,可配合通配符正则查找
双击shift :全局或指定范围查找匹配的文件或类、对象等
shift + ctrl + alt :配合鼠标左键,可以灵活实现多处同时编辑
ctrl + alt + l : 自动格式化整理代码(强迫症的福音)
插件
语言国际化批量处理 (本地化) : AndroidLocalize
版本管理辅助 : GitToolBox
代码自动补全AI辅助 : GitHub Copilot (现在是收费的了)
翻译: Translation
其他欢迎补充~
三、编码习惯与规范
学习规则,尊重规则,适应规则
Android Studio有很多帮助我们提升代码质量规范的细节,我希望大家不要随意忽视,虽然可能那只是个不起眼的黄色标记,或者Warning而已
例如:
- Hardcoded string “xxx”, should use @string resource 文字硬编码
- Should use “sp” instead of “dp” for text sizes 字体大小应该用sp
- Typo: In word ‘xxx’ 拼写错误
- Parameter ‘xxx’ is never used 冗余方法
- ‘xxx’ tag description is missing 缺少描述的tag
- Method invocation ‘xxx’ may produce ‘NullPointerException’ 空指针安全问题
诸如此类的提示还很多,我只是在老项目的代码里随便找了几个,给大家看看老项目随便一个Activity的黄标:
这是我重构的同模块的代码,除了引入的一些经典的工具类文件,其他黄标都被我消灭掉了:
暂时写到这里,后续再来补充