经验小结-持续更新

2022-01-07  本文已影响0人  巫师Android

1、能用Application Context就尽量使用。(2022.1.7)

相较于 Activity等,可以提高代码的聚合度。

2、要善于抽取工具类。(2022.1.7)

比如,在开发 WIFI 功能时,这行代码经常用到:

val wifiManager = 
        context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager?

这样就可以提取出工具类,如下:

class SystemServiceHelper {
    companion object {
        private const val TAG = "SystemServiceHelper"

        /**
         * 获取 WIFI 服务
         */
        fun getWifiService(): WifiManager? {
            val wifiManager =
                AppContext.appContext!!.getSystemService(Context.WIFI_SERVICE) as WifiManager?
            if (wifiManager == null) {
                Log.e(TAG, "WifiManager is null")
            }
            return wifiManager
        }
    }
}

这么做至少有三个好处:
1)使用简单了,代码的复杂度降低了。
2)结合小结的第一条,对 context 的依赖更加容易了。
反之,可能会需要一直取context,或者通过参数传context,很不简洁。
3)当 Wifimanager 为 null 时,有统一的地方来查看。

3、要多重构(2022.1.7)

这个过程不仅可以提高代码质量,还可以加深对代码逻辑(流程)的梳理,或许在进行的时候,就会想到更佳的实现方案。

4、在使用任何技术前,看一下官方的开发指南总是好的。(2022.1.8)

https://developer.android.google.cn/guide

5、在进行IO操作时,不要在负责传输的线程中进行任何解析,这样可以避免解析产生错误时,对IO线程产生影响。正确的做法应该是分发到其他线程处理。(2022.1.14)

要尽可能的保证各个模块(我认为任何一个方法、类、线程、进程、Service、Module、三方库等都可以称其为一个模块)的职责单一化。这样对系统的调试、单元测试、可靠性、稳定性都有好处。

6、当创建一个类(方法、模块)时,第一件事,不妨把这个类(方法、模块)要做的事情先清楚的写出来。(这样做,有利于自己再一次的思考代码的设计是否合理。)当这个类要做的事情超过2-3件(方法、模块1-2件就应该小心)时,就应该小心了,它是否已经职责不单一了?是否已经开始耦合了?(2022.1.24)

7、简洁有效

能用一行代码写完的,绝不用两行。就像写文章与说话一样,少说废话,除非有需要。

8、对于三方库的引用应该加(抽象出)一个中间层

9、对外提供的东西,一定要进行充分验证后才能给出。比如apk、相关文档等。

上一篇 下一篇

猜你喜欢

热点阅读