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、简洁有效
能用一行代码写完的,绝不用两行。就像写文章与说话一样,少说废话,除非有需要。
网友评论