Java 最近有没有什么黑科技 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chenguoyu
V2EX    Java

Java 最近有没有什么黑科技

  •  
  •   chenguoyu 2018-01-25 21:31:40 +08:00 18928 次点击
    这是一个创建于 2815 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最好能说出作用是什么,如果能够附上一个博客链接就更好了。 我先说一个lombok,可以不写 set/get,而且可以不关闭流了。虽然挺早就出现了,不过我还是最近才得知

    105 条回复    2018-01-31 09:46:31 +08:00
    1  2  
    alamaya
        1
    alamaya  
       2018-01-25 21:37:48 +08:00
    感觉跟你不是生活在同一个时代的
    lhx2008
        2
    lhx2008  
       2018-01-25 21:39:18 +08:00 via Android   2
    jdk9 的 jshell
    WPalle
        3
    WPalle  
       2018-01-25 21:39:52 +08:00
    这是啥年代的最新
    chenguoyu
        4
    chenguoyu  
    OP
       2018-01-25 21:43:29 +08:00
    @WPalle 可能我待的城市技术太落后了吧,我这边还没几家公司用上
    lihongjie0209
        5
    lihongjie0209  
       2018-01-25 21:46:11 +08:00
    lombok 要装插件的, 你怎么可能让同事都装插件呢
    chenguoyu
        6
    chenguoyu  
    OP
       2018-01-25 21:51:02 +08:00
    @lihongjie0209 从项目经理入手,告诉他们这样可以开发效率更高,可以给公司赚更多的钱。我公司的架构师估计就是这么搞的,所以现在用上了
    huclengyue
        7
    huclengyue  
       2018-01-25 21:56:35 +08:00 via Android   1
    最新的黑科技就是 kotlin 了。。。。
    LukeChien
        8
    LukeChien  
       2018-01-25 22:13:17 +08:00 via Android   4
    sun 被 oracle 收购了
    lxy
        9
    lxy  
       2018-01-25 22:19:16 +08:00   1
    getter/setter,空构造或非空构造都可以通过 IDE 自动补全,全程可键盘操作,intellij 快捷键 alt+insert。自动关闭流可以用 try-with-resources。
    idamien
        10
    idamien  
       2018-01-25 22:23:58 +08:00
    请不要提 lombok 这个垃圾了好么
    BBCCBB
        11
    BBCCBB  
       2018-01-25 22:27:11 +08:00
    @idamien 说出你的故事
    zjp
        12
    zjp  
       2018-01-25 22:55:11 +08:00 via Android   1
    一直好奇 lombok 比 alt+insert 方便吗,前者还要侵入代码
    Finest
        13
    Finest  
       2018-01-25 22:57:45 +08:00
    lombok 是把双刃剑
    zhx1991
        14
    zhx1991  
       2018-01-25 23:19:40 +08:00
    jvm 到处都是黑科技啊
    somebody
        15
    somebody  
       2018-01-25 23:38:00 +08:00
    kotlin
    cuebyte
        16
    cuebyte  
       2018-01-25 23:43:02 +08:00
    jigsaw
    nl101531
        17
    nl101531  
       2018-01-25 23:58:03 +08:00 via Android
    lombok 简直是神器啊
    Betsy
        18
    Betsy  
       2018-01-26 00:35:44 +08:00 via Android
    其实我想问下,在使用 lombok 的前提下,怎么给 set/get 加注解?
    Bryan0Z
        19
    Bryan0Z  
       2018-01-26 00:47:18 +08:00 via Android   1
    @LukeChien 那 Solaris 是不是停止维护
    idamien
        20
    idamien  
       2018-01-26 01:01:58 +08:00
    @BBCCBB lombok 这个垃圾 装上之后 你之前要是有项目没用它,用 eclipse 打开的时候,选择插入代码会报错。 而且不就是个 get set 嘛 自己自动生成下好了 根据自己需要,用它完全是累赘 卵用没有
    xupefei
        21
    xupefei  
      &nbp;2018-01-26 01:14:18 +08:00
    我平时写 C# 写 Scala 太爽,写 Java 一定要用 lombok。现在的遗憾是它对 var 的支持不太好。
    ke1e
        22
    ke1e  
       2018-01-26 01:21:01 +08:00 via Android
    感觉还是 idea 滚键盘快,但是 lombok 的优点是之后再添加属性也会有,不用还要再滚次键盘
    sagaxu
        23
    sagaxu  
       2018-01-26 01:36:05 +08:00   6
    lombok 会侵入代码,lambda 也是侵入,stream 也是侵入,foreach 也是侵入,Java 6 可以用到天荒地老
    liuzuo
        24
    liuzuo  
       2018-01-26 03:14:27 +08:00
    @lihongjie0209 我是架构我说了算系列
    danielzhang0212
        25
    danielzhang0212  
       2018-01-26 05:38:33 +08:00
    kotlin 多好
    dizhang1109
        26
    dizhang1109  
       2018-01-26 05:47:44 +08:00   2
    有用 groovy 的朋友吗?虽然开发环境用 groovy 的不多,但写单元测试或者自动化测试,用 groovy 的效率提高几倍。
    zzlhr
        27
    zzlhr  
       2018-01-26 08:01:35 +08:00 via iPhone
    Lombok ?每月总有那么几天!
    wizardforcel
        28
    wizardforcel  
       2018-01-26 08:18:59 +08:00 via Android
    java9 的 aot 和 kotlin 混合编程
    ihuotui
        29
    ihuotui  
       2018-01-26 08:21:36 +08:00 via iPhone
    g1 垃圾回收器
    Cbdy
        30
    Cbdy  
       2018-01-26 08:46:19 +08:00 via Android
    Java 10 类型推断

    var s = "一个字符串";
    liuhuansir
        31
    liuhuansir  
       2018-01-26 08:47:44 +08:00
    Lombok 这个渣渣卵用没有,推荐这个的同学是不是天天在写 pojo 类?你真当自己是打字员么?用快捷键需要几秒?
    nl101531
        32
    nl101531  
       2018-01-26 08:52:44 +08:00 via Android
    nl101531
        33
    nl101531  
       2018-01-26 08:53:11 +08:00 via Android
    @liuhuansir lombok 远比快捷键方便。
    Sypher
        34
    Sypher  
       2018-01-26 08:57:53 +08:00
    Lombok 真没必要推广。会被喷的
    chenguoyu
        35
    chenguoyu  
    OP
       2018-01-26 08:58:56 +08:00
    @ihuotui g1 收集器已经完善了吗?记得深入理解 java 虚拟机里面写 java7 才出的商业版,但是具体如何还不知道
    stanjia
        36
    stanjia  
       2018-01-26 09:08:26 +08:00
    Lombok 的优点难道不是他的 setter 最后会 return this 么?

    new Person()
    .setName('baba')
    .setAge(18);
    lihongjie0209
        37
    lihongjie0209  
       2018-01-26 09:11:29 +08:00
    @liuzuo #24 6666
    lihongjie0209
        38
    lihongjie0209  
       2018-01-26 09:13:09 +08:00
    @stanjia #36 这是链式构造, 有 builder 插件可以直接生成代码, 其次, 这种不符合 pojo 规范, 不太敢用
    amon
        39
    amon  
       2018-01-26 09:13:55 +08:00   1
    lombok 让 java 程序员擅长的代码行数大大降低,kpi 直线下降,请不要推广,谢谢!
    junbaor
        40
    junbaor  
       2018-01-26 09:17:35 +08:00
    @amon #39 又一个使用代码行数计算 kpi 的案例
    jlkm2010
        41
    jlkm2010  
       2018-01-26 09:28:46 +08:00
    vert.x
    sagaxu
        42
    sagaxu  
       2018-01-26 09:35:09 +08:00 via Android
    @chenguoyu 再过几个月都 java 10 了,g1 的下一代 gc 已经在路上了
    ipeony
        43
    ipeony  
       2018-01-26 09:39:17 +08:00
    @lihongjie0209 #38 它有 @Builder 注解,可以生成标准 builder 模式的
        44
    RuzZ  
       2018-01-26 09:53:03 +08:00
    dubbo 合并了 dubbo.x,官方已经放出 release 了
    baoanlol
        45
    baoanlol  
       2018-01-26 09:57:39 +08:00   1
    用 lombok 最爽的是可以写 val,这样不用写超级长的类型啊,特别是 Map 里面有个 list 之类的。(没错,我就是 scala 支持者)

    进公司一开始是写 scala 的,后来项目停止换到另外一个项目开始写 java,到现在一年多了,还是各种用起来难受,特别是 java 那个 stream。。。。
    Lullaby
        46
    Lullaby  
       2018-01-26 10:06:27 +08:00
    orangeD
        47
    orangeD  
       2018-01-26 10:08:57 +08:00   1
    打开一个类看到一堆毫无意义的 getter/setter 就想吐,lombok 成功解救了我。
    kylefeng
        48
    kylefeng  
       2018-01-26 10:09:29 +08:00
    jjianwen68
        49
    jjianwen68  
       2018-01-26 10:19:51 +08:00
    目前我用 lombok,只用在 pojo 上,以及注解日志。pojo 看起来整洁了很多。强迫症福音
    swim2sun
        50
    swim2sun  
       2018-01-26 10:27:09 +08:00   7
    一开始看到那么人多喷 lombok 很诧异,很多人竟然只是因为要给 ide 装个插件就放弃了 lombok
    但站在他们的角度想想,也许他们确实不太需要 lombok,如果你仍然用着 N 层架构,项目里就是一堆 service, dao, pojo 的话,那 getter/setter 方法全部集中在了 pojo 里,这种情况下 lombok 的意义确实不大,因为你根本不会在意 pojo 里有哪些函数。
    但是,如果你恰好了解领域驱动设计( DDD ),你不满足于贫血模型,开始实践充血模型,那么你的实体类里不但会有 getter/setter,还会有很多业务方法。这个时候你就会觉得那些 getter/setter 很多余、能自动生成的代码最好应该是在编译的时候生成,这是你发现 lombok 是个大救星。当然 lombok 的功能不只是生成 getter/setter,安装插件这个小小的麻烦与它带来的收益相比根本不算什么。
    xarrow
        51
    xarrow  
       2018-01-26 10:48:00 +08:00
    kotlin 支持协程
    pizida
        52
    pizida  
       2018-01-26 11:12:42 +08:00
    @huclengyue 高级黑呀!
    Len1133
        53
    Len1133  
       2018-01-26 11:18:21 +08:00
    lombok 对代码的简洁还是很有帮助的,getter/setter 的代码本来就不该出现在项目里
    paragon
        54
    paragon  
       2018-01-26 11:24:05 +08:00
    @swim2sun 对于 json.get 神教明显没作用…… 好奇的是他们为什么不转 python ……
    Amayadream
        55
    Amayadream  
       2018-01-26 11:27:55 +08:00
    拿 lombok 和 ide 快捷键相比实在是不敢苟同, 个人认为 lombok 最大的作用是删除了大量的冗余代码(getter/setter/slf4j 等), 使得原来非常臃肿的类看起来简洁明了, 简直是强迫症的福音.
    mosliu
        56
    mosliu  
       2018-01-26 11:32:40 +08:00
    lombok 是好东西
    不过这啥年代的?
    genesys
        57
    genesys  
       2018-01-26 11:35:33 +08:00
    @swim2sun 即使实践充血模型,这些 getter / setter 是不是看起来不爽还是因人而异的。在简洁性和代码侵入性之间不同人有不同的选择。当然个人感觉 lombok 为 Java 语言特性的演进提供了很好的启示。
    ZhLTE
        58
    ZhLTE  
       2018-01-26 11:39:52 +08:00
    c#6.0 还是 7.0 支持了这一特性
    xuhaoyangx
        59
    xuhaoyangx  
       2018-01-26 11:40:31 +08:00
    java 对不定格式的 json 处理真麻烦
    lihongjie0209
        60
    lihongjie0209  
       2018-01-26 11:51:10 +08:00
    @swim2sun #50 不是某个人的问题, 是你用了 lombok 之后所有同事必须装插件, 你怎么说服他们? 技术推广从来不是技术的问题, 是人的问题.
    vjnjc
        61
    vjnjc  
       2018-01-26 11:56:41 +08:00
    如果想自动完成 get/set 用 idea 的生成器。
    如果想不写 get/set,用 groovy 混编。
    swim2sun
        62
    swim2sun  
       2018-01-26 12:01:42 +08:00
    @lihongjie0209 我们团队使用微服务架构,一个服务主要由一个人主导开发,最多不会超过三个人参与,所以推广的成本小,并不是“所有同事”都必须装插件。而且我的同事在使用 lombok 后都表示好用。所以你说的问题还是看环境吧,如果你的环境确实不适合使用 lombok 那就不用,但因此而批评 lombok 的话就不合理了。
    rb6221
        63
    rb6221  
       2018-01-26 12:15:02 +08:00
    看了这么多层,好多吐槽 lombok 的,但是一直没看到让人信服的论据,你们倒是举个栗子啊……我真的,一个都没看出来。
    至于那些违反规范……让人变懒……你觉得这真的像个正经栗子吗
    stanjia
        64
    stanjia  
       2018-01-26 12:27:40 +08:00
    @vjnjc groovy 混编 黑科技求分享
    ming7435
        65
    ming7435  
       2018-01-26 13:05:13 +08:00
    我一直弄不明白为啥要用 lombok,一键生成 setter/getter 有什么不好?非得强制别人也装插件
    wallriding
        66
    wallriding  
       2018-01-26 13:12:28 +08:00
    有些程序员吧,你让他装个插件,他觉得天都要塌了:“居然*强制*我装插件?!”
    装个插件难道不是两分钟的事情么
    choice4
        67
    choice4  
       2018-01-26 13:28:50 +08:00
    @lhx2008 老哥了解 jdk9 的 javax.annoatation 模块不可见怎么解决吗?@Resource 注解已拉闸 除了降 8 还有没有别的办法
    sggzh
        68
    sggzh  
       2018-01-26 13:53:17 +08:00
    vavr
    zpf124
        69
    zpf124  
       2018-01-26 14:07:12 +08:00
    为什么 装插件不是一个问题, 如果 lombok 仅仅是个 maven 插件或者 git submodel,那毫无疑问我支持他。

    这就和 你写了一个 word,然后告诉别人 想看这个 word,请先去下个 360 解压工具,然后才可以看。
    sagaxu
        70
    sagaxu  
       2018-01-26 14:23:26 +08:00
    @lihongjie0209 需要推广吗? maven/gradle 编译又不会报错。IDE 里出错他们自己会解决。
    @zpf124 什么?还要 word ?很多时候纯文本就能搞定的事情,你还要让我装个 word 才能看?
    @wallriding 如果同事里很多这种装个插件都抱怨的,首先要考虑的不是怎么推广,是怎么跳槽。
    vexjoe
        71
    vexjoe  
       2018-01-26 14:43:15 +08:00
    @sggzh 这个厉害了
    lihongjie0209
        72
    lihongjie0209  
       2018-01-26 14:46:34 +08:00
    @sagaxu #70
    别的同事没理由因为你提交的代码就去专门装一个插件
    别的同事也没理由因为你提交的代码就去看 lombok 的文档
    tairan2006
        73
    tairan2006  
       2018-01-26 14:48:40 +08:00
    lombok 的 @ToString @Data 你们没用过么…啥只有 getter setter,兼职 naive
    lihongjie0209
        74
    lihongjie0209  
       2018-01-26 14:51:29 +08:00
    @sagaxu #70
    因为一个插件, 你要浪费其他同事多少时间?
    出了 BUG 的负责改吗?
    文档看不懂你负责教吗?
    我当然同意 lombok 是个好东西, 不然我也不会在这里和你讨论.
    自己的项目怎么搞无所谓, 但在工作上别给别人添麻烦.
    不是所有的开发都喜欢新技术, 特别是这种已经有解决方案的新技术
    deadEgg
        75
    deadEgg  
       2018-01-26 14:58:04 +08:00
    没看到什么我认为的“黑科技”。

    倒是因为工具吵起来了。
    Mogugugugu
        76
    Mogugugugu  
       2018-01-26 15:38:10 +08:00
    就问一句:leader 说用 lombok,有几个人会因为不想装插件或者不想看文档 而 选择离职 的?
    lihongjie0209
        77
    lihongjie0209  
       2018-01-26 15:40:59 +08:00
    @Mogugugugu #76 我说的是同事, 不是上下级关系. 当领导怎么干都随意, 工资给到就好了.
    zpf124
        78
    zpf124  
       2018-01-26 15:46:00 +08:00
    @sagaxu 拿纯文本举例那也行啊, 我传给你的 md 文件, 结果内容都是 非标准 markdown 语法,某第三方厂商的方言扩展, 然后我告诉你必须去下个 支持我用的这个方言的渲染器。
    sagaxu
        79
    sagaxu  
       2018-01-26 15:58:06 +08:00
    @lihongjie0209 我推过很多东西,阻力并没有你想象的那么大。

    我推过 springboot,反馈都是正面的。推过 vue,稍微指导了一下,很快大家都上手了。lombok 是跟 springboot 一起推的,没人提出过异议。推 coffeescript 遭到了抵抗,我也没坚持,强推的瓜不甜。是给人添麻烦,还是大家一起提高效率,因团队而异,只有做了才知道。
    lihongjie0209
        80
    lihongjie0209  
       2018-01-26 16:03:34 +08:00
    @sagaxu #79 你说的对.
    jy02405651
        81
    jy02405651  
       2018-01-26 16:54:37 +08:00
    看了全部回复~没看一个正经的黑科技!
    zjp
        82
    zjp  
       2018-01-26 17:01:11 +08:00 via Android
    #12 没想到都在争论 lombok
    感谢#49 解决了我的疑惑…
    hantsy
        83
    hantsy  
       2018-01-26 17:22:27 +08:00
    @jy02405651 这个也太复古了。。。之前项目用过 modelmapper,mapstruct,不过现在力求在 Pojo 设计上尽量用一些 DDD 概念,这些 Mapper 显得有点累赘了。
    hantsy
        84
    hantsy  
       2018-01-26 17:23:31 +08:00
    @wizardforcel 这个有例子吗?
    hantsy
        85
    hantsy  
       2018-01-26 17:31:46 +08:00   1
    Lombok 这个项目用了好多年,现在 Spring 官方的 Spring Cloud 官方项目中都已经用了。

    编译时(运行时不需要),其利用 Java Compiler APT 特性在 java classes 中加入一些常见辅助方法等。除了 Getter,Setter 外,Builder,ToString,hashCodeAndEquals, Data,Slf4j, 三个 XXXContrcutor 都很常用。

    类似的工具很多,AutoValue,Immutables 等。

    https://dzone.com/articles/lombok-autovalue-and-immutables
    hantsy
        86
    hantsy  
       2018-01-26 17:35:35 +08:00
    @sagaxu CoffeeScript 我也觉得难受,难道是为写 Python 的人准备的吗?之前一个 AngularJS 1.5 项目从 CoffeeScript 切换到 ES 6,舒服多了。
    hantsy
        87
    hantsy  
       2018-01-26 17:37:11 +08:00
    @xupefei Java 10 应该会引入 Local Variable 的 var 声明支持,感觉这些是动态语言才有的特性。暂时只能用 Kotlin 之类的玩玩。
    hantsy
        88
    hantsy  
       2018-01-26 17:45:12 +08:00   1
    @lihongjie0209
    文档都看不懂???
    安装个 Lombok 插件有那么难?对于 IDEA,Eclipse 有相应的插件,NetBeans 根本不需要插件自动启用了 APT。
    这是新技术? Lombok 仅仅只是利用 Java Compiler 的 APT 特性而已,这个特性是 2004 年 Java 5 年加入的,至今 14 年了。稍微花几分钟了解一下 APT 就可以理解 Lombok 是做什么的。
    lihongjie0209
        89
    lihongjie0209  
       2018-01-26 17:49:27 +08:00
    @hantsy #88 正常做项目都要加班, 你还要同事去学新东西, 我是不敢这么干的, 至于说用了 lombok 能带来多大的效率, 这个见仁见智
    hantsy
        90
    hantsy  
       2018-01-26 17:51:30 +08:00
    @dizhang1109 Geb,Spock ?很少用。Geb 用过一次。Spock 的一些概念好像 JUnit 5 也有了。
    hantsy
        91
    hantsy  
       2018-01-26 17:59:59 +08:00
    @lihongjie0209 那是你们项目没有人推动技术和工具,对于项目管理基本上靠吼的团队来说很正常,只要有一点技术的东西都认为是项目进度的障碍。这样的团队我可以理解,因为团队里没人知道工具来带来的效率。
    viakiba
        92
    viakiba  
       2018-01-26 18:05:05 +08:00
    lombok 我们只用一个 @Log4j 注解,setter/getter 需要用来打断点不能省
    wizardforcel
        93
    wizardforcel  
       2018-01-26 18:22:33 +08:00
    @lihongjie0209 请你把你们的 pom.xml 发出来让大家看看用了多少库。我敢保证 lombok 的 api 比里面大多数都少。
    lihongjie0209
        94
    lihongjie0209  
       2018-01-26 18:41:22 +08:00
    统一回复一下:
    1. 我用过 lombck, 但是没有在同事之间推广, 因为它入侵代码还要装插件.
    2. lombck 解决的问题并不是没有解决方案的, ide 自动生成也没有多难, 所以并没有使用 lombok 的需求.
    3. 学习 lombck 是有个过程的, 包括试错以及个人的学习能力, 在已有的自动生成代码非常稳定以及熟悉的情况下, 没有必要引入新的东西.4. 这种东西感觉没什么讨论的意义, 与公司的环境有很大关系, 后面的内容不再回复了.
    lihongjie0209
        95
    lihongjie0209  
       2018-01-26 18:44:11 +08:00
    aristotll
        96
    aristotll  
       2018-01-26 19:17:36 +08:00
    @lihongjie0209 #94 你的几点都站不住脚的 入侵代码 getter setter 才是 装插件之类也是醉了

    你的同事连 lombok 的学习能力都没吗

    如果是遗留代码的确没必要加 但是新代码加绝对没问题的
    laodao1990
        97
    laodao1990  
       2018-01-26 19:26:51 +08:00
    我嚓嘞!楼主明明好意讨论下 java 新技术,咋变成 lombok 攻防战了。。。
    wallriding
        98
    wallriding  
       2018-01-26 19:53:18 +08:00
    觉得看个 lombok 的文档也能算学习成本的人也基本上属于弱智了
    chocotan
        99
    chocotan  
       2018-01-26 21:17:50 +08:00
    lombok 好东西+1,自己的小项目在用,领导也觉得不错,缺点楼上们也说了要装插件
    winglight2016
        100
    winglight2016  
       2018-01-26 21:33:32 +08:00
    用 playframework 的一笑而过~~~
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5402 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 09:11 PVG 17:11 LAX 02:11 JFK 05:11
    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