Vertx + Kotlin coroutine = 真香

2019-11-12 09:29:26 +08:00
 sagaxu
项目积累了大量异步回调的 JVM 代码,层层回调的复杂业务逻辑维护起来有些心累,引入协程能明显改进可读性和易维护性。

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/618664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX