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

Vertx + Kotlin coroutine = 真香

  •  
  •   sagaxu · 2019-11-12 09:29:26 +08:00 via Android · 6108 次点击
    这是一个创建于 1840 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目积累了大量异步回调的 JVM 代码,层层回调的复杂业务逻辑维护起来有些心累,引入协程能明显改进可读性和易维护性。

    首选是 Go 或者 Elixir,但是脱离 JVM 意味着不仅业务要重写,对接的众多第三方服务也要重写,周除了易出错,周期也会拉的很长,风险明显超出我能 handle 的范围。

    然后考虑的是挂 agent 改字节码协程化方案,对我们而已,跟魔改 JVM 的方案一样,风险偏高,代码层面仍然要改造不少地方。

    Vertx 3.6.x 开始,会给回调方法自动生成用于 Kotlin 协程的 xxxAwait 方法,第一时间拿来试了一下,然后就停不下来了,最近完成了整个项目所有代码的协程改造。总结下来就是真香,举个例子,接入公司自研的微服务体系,之前是几千行代码的 NIO 实现的,再后来基于 netty 重写也有大几百行代码,到现在的 vertx+协程不到 500 行代码了。
    7 条回复    2020-08-18 11:18:36 +08:00
    cpdyj0
        1
    cpdyj0  
       2019-11-12 09:49:25 +08:00 via Android
    是的,非常香,写起来非常舒服
    lbp0200
        2
    lbp0200  
       2019-11-12 10:02:46 +08:00 via iPhone
    厉害了
    tt67wq
        3
    tt67wq  
       2019-11-12 10:33:55 +08:00
    elixir 也香
    blackccc
        4
    blackccc  
       2019-11-13 10:05:54 +08:00
    有什么缺陷吗
    foamvalue
        5
    foamvalue  
       2019-11-18 13:09:08 +08:00
    一般什么业务场景呢?
    itfanr
        6
    itfanr  
       2019-12-06 13:44:14 +08:00
    vertx+协程不到 500 行代码了……
    cloudopt
        7
    cloudopt  
       2020-08-18 11:18:36 +08:00
    可以试下 Cloudopt Next 哦。

    Cloudopt Next 是一个非常轻量级且现代的、基于 Kotlin 编写的全栈开发框架,同时支持 Java 和 Kotlin,您可以处理 Url 的解析,数据的封装,Json 的输出等等,从根本上减少开发时间、提升开发体验。

    vertx 官方推荐项目( vertx-awesome ),kotlin 推荐项目( awesome-kotlin )

    next.cloudopt.net
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1371 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.