请问各位做安卓开发的大佬,实际工作中使用 dagger 的多吗?用和不用的区别是啥?如果不用可以吗?
1
Edward4074 2019-12-04 17:00:02 +08:00
当初做安卓的时候不引入 dagger 最大的原因就是觉得同事 hold 不住
|
2
lhtdeg 2019-12-04 17:03:06 +08:00 via Android
公司以前要求用,后来要求不要用…
|
3
charlieputon OP @Edward4074 @lhtdeg 现在快要做一个新项目,所以考虑用 di。看 dagger 官方文档,那个 user guide 我能看明白,也知道 di 是做什么用的。。但是安卓项目里面的,实在看不明白。。
|
4
eminemcola 2019-12-04 17:09:34 +08:00
建议先了解一下什么是 ServiceLoader 以及为什么要使用 ServiceLoader,然后就知道这一类依赖注入&发现工具是用来干嘛的了。
|
5
wvitas 2019-12-04 17:10:48 +08:00
表示不用这个
|
6
ncx456123 2019-12-04 17:16:15 +08:00
小公司基本都用不上
|
7
charlieputon OP |
8
nicevar 2019-12-04 17:27:20 +08:00
胡里花哨的,做个客户端开发跟写后端一样,没多少公司用,Android 的开发人员一大堆都没用过这玩意
|
9
tsimeon 2019-12-04 17:30:08 +08:00
用的人还是挺多的吧。多写就看懂了。问题不大。
|
10
sankemao 2019-12-04 20:31:04 +08:00
没用用这个,不明白能带来啥好处,实现作用域单例?
|
11
DeweyReed 2019-12-04 21:26:23 +08:00
看官网教程吧: https://developer.android.com/training/dependency-injection,还有配套的 codelab。看 iosched 学 dagger 步子有点大。
|
12
charlieputon OP |
13
charlieputon OP |
14
ksssdh123 2019-12-05 08:48:43 +08:00
Jetpack MVVM 也可以尝试一下,比 dagger 更容易 hold 住
dagger 用不好 就变得乱七八糟,跟那个 eventbus 一样,需要有严格的规范去执行 但靠规范来约束不靠谱,用框架约束死,就不怕那些毕业生 搞什么花里胡哨的代码了 不过前提都是得 3 个人以上在共同维护开发的项目,你就一个人搞?要啥框架啊 |
15
charlieputon OP @ksssdh123 是打算在新项目用 mvvm 的。然后我看官方的项目用了 dagger,就想了解一下的。你说的那个 eventbus 我真是深受其害啊,新公司接手的这个项目被它弄的乱七八糟。。
|
16
charlieputon OP @ksssdh123 而且我的确是一个人搞😅但是要面向新技术编程啊,不能落后了
|
17
huage2580 2019-12-05 09:04:28 +08:00
了解就了解,不要为了用而用,而是需要用的时候知道有这东西
|
18
charlieputon OP @huage2580 感谢指导🙏
|
19
skull 2019-12-05 09:30:25 +08:00 via iPhone
一人维护的项目用过,团队的不敢,到时候会四不像的
|
20
whyrookie 2019-12-05 09:38:10 +08:00
dagger 我都不打算学?是类似 Spring 这种依赖注入?我觉得 kotlin+Jetpack 就很香了。感觉客户端这边越来越花里胡哨了。
|
21
charlieputon OP |
22
751762476 2019-12-05 10:14:55 +08:00
可以用 koin,简单明了 https://github.com/InsertKoinIO/koin
|
23
Vitali 2019-12-05 10:22:41 +08:00
说实话,二线城市,可能 kotlin 都招不到,所以主要是看你项目大小跟公司团队规模及所处的地方
|
24
charlieputon OP @751762476 我看了,据说 koin 用了反射?性能比 dagger 差很多
|
25
charlieputon OP @Vitali 杭州,一个小公司,安卓就我一人
|
26
Vitali 2019-12-05 10:32:45 +08:00
@charlieputon 那就拿新项目练手 MVVM,以 kotlin 作为主框架语言,要是有不会 kotlin 的,组件让他用 Java 写,都可以的
|
27
751762476 2019-12-05 10:53:06 +08:00
@charlieputon 我觉得你应该读一下 koin 的描述 `Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection.`
|
28
nicevar 2019-12-05 11:04:03 +08:00
@charlieputon 这种用不用与落不落伍没啥关系,官方推荐的东西多了,很多开发人员根本不鸟,像 databinding、mvvm 之类的
|
29
Desmond1990 2019-12-05 11:04:44 +08:00
不就是依赖注入吗
|
30
sty 2019-12-05 14:38:59 +08:00
要多写代码,以及更多的 generated code,个人不喜欢;不如用 kotlin object
|
31
MushiUta 2019-12-05 15:02:22 +08:00
用 kotlin+ Jetpack MVVM 感觉可以很大程度替代 dagger 的一些便利性。
我不喜欢用 dagger,一旦出错太难排查了。 |
32
beiwei2008 2019-12-05 16:29:31 +08:00
@nicevar databinding 有什么问题? MVVM 也不好用么?
|
33
Jabin 2019-12-05 21:19:25 +08:00
随着 dagger 的不断升级 现在是越来越好学 从 dagger 1 一直用到 dagger 2,建议还是花时间好好学学
|
34
frantic 2019-12-06 13:51:39 +08:00
dagger 怎么说呢 熟悉原理 写多了 就知道咋用了。但是我觉得并没有完全解藕,但是的确多人协作的话很方便维护就是了,特别是业务变更频繁的时候
|