美文网首页
经验小结-持续更新

经验小结-持续更新

作者: 巫师Android | 来源:发表于2022-01-07 12:00 被阅读0次

    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、相关文档等。

    相关文章

      网友评论

          本文标题:经验小结-持续更新

          本文链接:https://www.haomeiwen.com/subject/jqdjcrtx.html