愁死了,看不懂 dagger.android, Google 的那个 adssched2019 的 demo 也看不懂,感觉不会写安卓了,心累。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
charlieputon
V2EX    Android

愁死了,看不懂 dagger.android, Google 的那个 adssched2019 的 demo 也看不懂,感觉不会写安卓了,心累。。

  •  
  •   charlieputon 2019-12-04 16:53:23 +08:00 via Android 15508 次点击
    这是一个创建于 2141 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问各位做安卓开发的大佬,实际工作中使用 dagger 的多吗?用和不用的区别是啥?如果不用可以吗?

    34 条回复    2019-12-06 13:51:39 +08:00
    Edward4074
        1
    Edward4074  
       2019-12-04 17:00:02 +08:00
    当初做安卓的时候不引入 dagger 最大的原因就是觉得同事 hold 不住
    lhtdeg
        2
    lhtdeg  
       2019-12-04 17:03:06 +08:00 via Android
    公司以前要求用,后来要求不要用…
    charlieputon
        3
    charlieputon  
    OP
       2019-12-04 17:05:40 +08:00 via Android
    @Edward4074 @lhtdeg 现在快要做一个新项目,所以考虑用 di。看 dagger 官方文档,那个 user guide 我能看明白,也知道 di 是做什么用的。。但是安卓项目里面的,实在看不明白。。
    eminemcola
        4
    eminemcola  
       2019-12-04 17:09:34 +08:00
    建议先了解一下什么是 ServiceLoader 以及为什么要使用 ServiceLoader,然后就知道这一类依赖注入&发现工具是用来干嘛的了。
    wvitas
        5
    wvitas  
       2019-12-04 17:10:48 +08:00
    表示不用这个
    ncx456123
        6
    ncx456123  
       2019-12-04 17:16:15 +08:00
    小公司基本都用不上
    charlieputon
        7
    charlieputon  
    OP
       2019-12-04 17:24:13 +08:00 via Android
    @eminemcola @wvitas @ncx456123 感谢回复
    nicevar
        8
    nicevar  
       2019-12-04 17:27:20 +08:00
    胡里花哨的,做个客户端开发跟写后端一样,没多少公司用,Android 的开发人员一大堆都没用过这玩意
    tsimeon
        9
    tsimeon  
       2019-12-04 17:30:08 +08:00
    用的人还是挺多的吧。多写就看懂了。问题不大。
    sankemao
        10
    sankemao  
       2019-12-04 20:31:04 +08:00
    没用用这个,不明白能带来啥好处,实现作用域单例?
    DeweyReed
        11
    DeweyReed  
       2019-12-04 21:26:23 +08:00
    看官网教程吧: https://developer.android.com/training/dependency-injection,还有配套的 codelab。看 iosched 学 dagger 步子有点大。
    charlieputon
        12
    charlieputon  
    OP
       2019-12-04 21:43:00 +08:00 via Android
    charlieputon
        13
    charlieputon  
    OP
       2019-12-04 21:44:48 +08:00 via Android
    @nicevar @sankemao 官方推荐使用的,感觉不用就会落伍了
    ksssdh123
        14
    ksssdh123  
       2019-12-05 08:48:43 +08:00
    Jetpack MVVM 也可以尝试一下,比 dagger 更容易 hold 住
    dagger 用不好 就变得乱七八糟,跟那个 eventbus 一样,需要有严格的规范去执行
    但靠规范来约束不靠谱,用框架约束死,就不怕那些毕业生 搞什么花里胡哨的代码了
    不过前提都是得 3 个人以上在共同维护开发的项目,你就一个人搞?要啥框架啊
    charlieputon
        15
    charlieputon  
    OP
       2019-12-05 08:54:01 +08:00 via Android
    @ksssdh123 是打算在新项目用 mvvm 的。然后我看官方的项目用了 dagger,就想了解一下的。你说的那个 eventbus 我真是深受其害啊,新公司接手的这个项目被它弄的乱七八糟。。
    charlieputon
        16
    charlieputon  
    OP
       2019-12-05 08:55:23 +08:00 via Android
    @ksssdh123 而且我的确是一个人搞但是要面向新技术编程啊,不能落后了
    huage2580
        17
    huage2580  
       2019-12-05 09:04:28 +08:00
    了解就了解,不要为了用而用,而是需要用的时候知道有这东西
    charlieputon
        18
    charlieputon  
    OP
       2019-12-05 09:12:22 +08:00 via Android
    @huage2580 感谢指导
    skull
        19
    skull  
       2019-12-05 09:30:25 +08:00 via iPhone
    一人维护的项目用过,团队的不敢,到时候会四不像的
    whyrookie
        20
    whyrookie  
       2019-12-05 09:38:10 +08:00
    dagger 我都不打算学?是类似 Spring 这种依赖注入?我觉得 kotlin+Jetpack 就很香了。感觉客户端这边越来越花里胡哨了。
    charlieputon
        21
    charlieputon  
    OP
       2019-12-05 10:10:09 +08:00
    @skull 现在公司就我一个安卓哈哈
    @whyrookie kotlin+jetpack 是必须用的,嗯,dagger 可以先了解一下,有必要的时候在用吧。
    751762476
        22
    751762476  
       2019-12-05 10:14:55 +08:00
    可以用 koin,简单明了 https://github.com/InsertKoinIO/koin
    Vitali
        23
    Vitali  
       2019-12-05 10:22:41 +08:00
    说实话,二线城市,可能 kotlin 都招不到,所以主要是看你项目大小跟公司团队规模及所处的地方
    charlieputon
        24
    charlieputon  
    OP
       2019-12-05 10:24:23 +08:00 via Android
    @751762476 我看了,据说 koin 用了反射?性能比 dagger 差很多
    charlieputon
        25
    charlieputon  
    OP
       2019-12-05 10:24:58 +08:00 via Android
    @Vitali 杭州,一个小公司,安卓就我一人
    Vitali
        26
    Vitali  
       2019-12-05 10:32:45 +08:00
    @charlieputon 那就拿新项目练手 MVVM,以 kotlin 作为主框架语言,要是有不会 kotlin 的,组件让他用 Java 写,都可以的
    751762476
        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.`
    nicevar
        28
    nicevar  
       2019-12-05 11:04:03 +08:00
    @charlieputon 这种用不用与落不落伍没啥关系,官方推荐的东西多了,很多开发人员根本不鸟,像 databinding、mvvm 之类的
    Desmond1990
        29
    Desmond1990  
       2019-12-05 11:04:44 +08:00
    不就是依赖注入吗
    sty
        30
    sty  
       2019-12-05 14:38:59 +08:00
    要多写代码,以及更多的 generated code,个人不喜欢;不如用 kotlin object
    MushiUta
        31
    MushiUta  
       2019-12-05 15:02:22 +08:00
    用 kotlin+ Jetpack MVVM 感觉可以很大程度替代 dagger 的一些便利性。
    我不喜欢用 dagger,一旦出错太难排查了。
    beiwei2008
        32
    beiwei2008  
       2019-12-05 16:29:31 +08:00
    @nicevar databinding 有什么问题? MVVM 也不好用么?
    Jabin
        33
    Jabin  
       2019-12-05 21:19:25 +08:00
    随着 dagger 的不断升级 现在是越来越好学 从 dagger 1 一直用到 dagger 2,建议还是花时间好好学学
    frantic
        34
    frantic  
       2019-12-06 13:51:39 +08:00
    dagger 怎么说呢 熟悉原理 写多了 就知道咋用了。但是我觉得并没有完全解藕,但是的确多人协作的话很方便维护就是了,特别是业务变更频繁的时候
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3494 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 10:40 PVG 18:40 LAX 03:40 JFK 06:40
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86