sagaxu
V2EX  ›  编程

Vertx + Kotlin coroutine = 真香

  •  
  •   sagaxu · Nov 12, 2019 via Android · 7483 views
    This topic created in 2558 days ago, the information mentioned may be changed or developed.
    项目积累了大量异步回调的 JVM 代码,层层回调的复杂业务逻辑维护起来有些心累,引入协程能明显改进可读性和易维护性。

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

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

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

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

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

    next.cloudopt.net
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2615 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    ♥ Do have faith in what you're doing.