尝试了几个业务开发,真的是很快,语法糖也封装的很简洁。
如 集合类 def list =[{a:1,b:2},{a:2,b:1}]
list.sort{[it.a,it.b]} //按 a,b 排序
list.collectEntries{[it.a,it.b]} //a 的 value 作为 key,b 的 value 作为 value
list.groupBy{it.a} //a 分组
。。。还有其他如 map、filter、find、any、every 等函数简直不要太舒服
IO 类处理起来也特别简单; Sql 也很强大; 反射也很好用; 单元测试就不用说了; 也能轻松的扩展一个类的方法; 文档也很清晰;
整个开发下来,加班没有了,bug 也少了,不知道为嘛,感觉用 groovy 来开发业务的好像不多?是不是只用来写单元测试或动态规则配置啥的。
1
tinybaby365 2018-09-27 09:57:56 +08:00
相似地位的 Scala 没有侵蚀 Java 的存在,却在 Spark 里面有一席之地,kafka 也是用 Scala 写的。Groovy 已经经由 gradle 体现了价值。Groovy 其他发扬光大的地方,因为工作领域的原因真没发现。
JVM 系非 Java 的招人难度大,这是和 Java 比最大的劣势。你说你开发效率高,执行效率和 Java 一样,但招不到开发,白说。 |
2
jiafaner 2018-09-27 10:01:15 +08:00 2
能行的
我们给客户做的一个数据管理系统是用 Java 写的,然后用 groovy 提供了一个用户接口,用户能够用 groovy 写一点小东西直接嵌入 用户都说我们做得好,不过老板对用户吹的是我们自己写的 DSL,嘿嘿嘿 |
4
PythonAnswer 2018-09-27 11:03:15 +08:00 via iPhone
2 楼老板人才
|
5
fuye OP @tinybaby365 如果是从团队的角度来看,选一门招人不方便的语言的确不太合适,用 JAVA 招人方便
|
6
CFO 2018-09-27 11:14:05 +08:00 via Android
在用 不过用的简单 只是用来算公式
|
7
Resource 2018-09-27 11:14:08 +08:00
纯 groovy 没有,某些场景当脚本用
|
8
Resource 2018-09-27 11:15:12 +08:00
只能说动态一时爽,
|
9
fuye OP @ghos 目前了解的有两种做法,一种就是通过 maven 的 groovy-compile 插件直接编译成字节码,另一种就是动态解析执行 groovy 脚本,可以传入当前程序的上下文进行 binding,网上教程很多的
|
10
zhuangzhuang1988 2018-09-27 11:19:33 +08:00
用动态语言等死吧.
|
11
Resource 2018-09-27 11:19:58 +08:00
另外,groovy 的性能比较低,很多地方并不适用
|
13
leconio 2018-09-27 11:30:38 +08:00 via Android
kotlin 瑟瑟发抖
|
14
fuye OP @Resource 性能的确会有些影响,但是日常的 CURD 业务性能瓶颈主要是在网络、DB 这块,所以整体性能也不会差太多
|
16
fuye OP 用简单 ab 测试的结果来看的话,我写的大部分普通 groovy 接口(包含<5 个 rest 调用+<5 个 DB 调用+<5 个 redis 调用) 比纯 java 写的慢了 <5ms,主要耗时的都在外部调用上。但是如果是计算型的接口,有的能慢<100ms.不过整体上这点损耗都是可以接受的
|
17
fuye OP 我这个都是静态编译的,如果是动态解析执行就会慢的比较多
|
18
xcstream 2018-09-27 12:11:18 +08:00
node 用的人更多。
|
19
Dainslef 2018-09-27 12:56:01 +08:00 1
Groovy 是动态语言,写写小脚本尚可,在 JVM 系的主战场后端服务这块其实并没有多大优势,在后端服务这块静态类型语言是工程上的首选。
而且 JVM 上好语言太多啦,Scala 有强大的类型系统和高阶 FP 特性,Kotlin 有各类精心设计的语法糖和强类型 DSL,哪个不比 Groovy 设计的更优秀。 而且 Groovy 的尴尬在于没有真正的 Killer 级别应用,Scala 有 Spark/Akka,Kotlin 更专注 Android 平台,在各自的细分领域都有巨大的优势,Groovy 真正广泛应用的只有 Gradle,但这货也不是框架 /库;至于 Grails 什么的也是小众框架,不成气候。 |
20
axb 2018-09-27 13:28:15 +08:00
我们有一个系统用了纯 groovy 写,后来发现动态语言开发一时爽……
现在是 java+groovy 混合编程了 |
21
sagaxu 2018-09-27 13:32:22 +08:00 via Android
你说的这些 kotlin 都有,还是静态类型
|
23
fuye OP @sagaxu 是的,这些 kotlin 也都有,而且 IDEA 支持上对 kotlin 更友好。不过个人感觉 groovy 的语法对 javaer 更加友好?目前用在一些内部业务型项目是 OK 的,如果是大型项目或者稳定的平台、服务层项目,从团队招聘成本、学习成本和技术风险上来看,可能还是会老老实实选择 JAVA 作为第一语言,其他作为一些辅助
|
24
flyingghost 2018-09-27 16:53:04 +08:00
JVM 系开发 DSL,groovy 简直爽歪。
|
25
wancaibida 2018-09-27 17:01:08 +08:00
一般 groovy+grails.闭包,GORM 用起来是爽,但动态语言坑起来也很爽啊.
|
27
aristotll 2018-09-27 19:01:56 +08:00
个人比较喜欢 groovy 当脚本用 调用 Java 相关的库也很方便
|
28
lowzoom 2018-09-28 01:03:25 +08:00
除了业务本身其他都上 groovy
|
29
orm 2018-09-28 11:57:11 +08:00
公司一个产品在用,grails 框架,语言是 groovy
|
30
jeffreyning 2018-11-02 13:05:28 +08:00
公司在用 groovy 结合 springboot 开发,效率很高。接口层用的都是 springboot、springmvc 和 springcloud 的注解,业务实现用的 groovy 写速度快还支持热部署,没有用 grails 框架,用的这个 groovy 框架 micro-mvc,比 grails 胜在兼容性强,兼容 spring 体系各种 mvc 框架。
https://github.com/jeffreyning/micro-mvc |