V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
charlieputon
V2EX  ›  Android

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

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

    请问各位做安卓开发的大佬,实际工作中使用 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
    @tsimeon @DeweyReed 感谢🙏
    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   ·   实用小工具   ·   1483 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:12 · PVG 01:12 · LAX 09:12 · JFK 12:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.