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

有用 Groovy 做业务开发的吗

  •  
  •   fuye · 143 天前 · 2340 次点击
    这是一个创建于 143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    尝试了几个业务开发,真的是很快,语法糖也封装的很简洁。

    如 集合类 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 来开发业务的好像不多?是不是只用来写单元测试或动态规则配置啥的。

    30 回复  |  直到 2018-11-02 13:05:28 +08:00
        1
    tinybaby365   143 天前
    相似地位的 Scala 没有侵蚀 Java 的存在,却在 Spark 里面有一席之地,kafka 也是用 Scala 写的。Groovy 已经经由 gradle 体现了价值。Groovy 其他发扬光大的地方,因为工作领域的原因真没发现。

    JVM 系非 Java 的招人难度大,这是和 Java 比最大的劣势。你说你开发效率高,执行效率和 Java 一样,但招不到开发,白说。
        2
    jiafaner   143 天前   ♥ 1
    能行的

    我们给客户做的一个数据管理系统是用 Java 写的,然后用 groovy 提供了一个用户接口,用户能够用 groovy 写一点小东西直接嵌入

    用户都说我们做得好,不过老板对用户吹的是我们自己写的 DSL,嘿嘿嘿
        3
    ghos   143 天前 via Android
    @jiafaner java 怎么和 groovy 组合一起用啊 求教
        4
    PythonAnswer   143 天前 via iPhone
    2 楼老板人才
        5
    fuye   143 天前
    @tinybaby365 如果是从团队的角度来看,选一门招人不方便的语言的确不太合适,用 JAVA 招人方便
        6
    CFO   143 天前 via Android
    在用 不过用的简单 只是用来算公式
        7
    Resource   143 天前
    纯 groovy 没有,某些场景当脚本用
        8
    Resource   143 天前
    只能说动态一时爽,
        9
    fuye   143 天前
    @ghos 目前了解的有两种做法,一种就是通过 maven 的 groovy-compile 插件直接编译成字节码,另一种就是动态解析执行 groovy 脚本,可以传入当前程序的上下文进行 binding,网上教程很多的
        10
    zhuangzhuang1988   143 天前
    用动态语言等死吧.
        11
    Resource   143 天前
    另外,groovy 的性能比较低,很多地方并不适用
        12
    jiafaner   143 天前
    @ghos 就是动态执行 groovy 脚本的,很多教程的
        13
    leconio   143 天前 via Android
    kotlin 瑟瑟发抖
        14
    fuye   143 天前
    @Resource 性能的确会有些影响,但是日常的 CURD 业务性能瓶颈主要是在网络、DB 这块,所以整体性能也不会差太多
        15
    Resource   143 天前
    @fuye 所以说做些业务简单的还行,大型的复杂系统还是上不了台面
        16
    fuye   143 天前
    用简单 ab 测试的结果来看的话,我写的大部分普通 groovy 接口(包含<5 个 rest 调用+<5 个 DB 调用+<5 个 redis 调用) 比纯 java 写的慢了 <5ms,主要耗时的都在外部调用上。但是如果是计算型的接口,有的能慢<100ms.不过整体上这点损耗都是可以接受的
        17
    fuye   143 天前
    我这个都是静态编译的,如果是动态解析执行就会慢的比较多
        18
    xcstream   143 天前
    node 用的人更多。
        19
    Dainslef   143 天前
    Groovy 是动态语言,写写小脚本尚可,在 JVM 系的主战场后端服务这块其实并没有多大优势,在后端服务这块静态类型语言是工程上的首选。
    而且 JVM 上好语言太多啦,Scala 有强大的类型系统和高阶 FP 特性,Kotlin 有各类精心设计的语法糖和强类型 DSL,哪个不比 Groovy 设计的更优秀。
    而且 Groovy 的尴尬在于没有真正的 Killer 级别应用,Scala 有 Spark/Akka,Kotlin 更专注 Android 平台,在各自的细分领域都有巨大的优势,Groovy 真正广泛应用的只有 Gradle,但这货也不是框架 /库;至于 Grails 什么的也是小众框架,不成气候。
        20
    axb   143 天前
    我们有一个系统用了纯 groovy 写,后来发现动态语言开发一时爽……
    现在是 java+groovy 混合编程了
        21
    sagaxu   143 天前 via Android
    你说的这些 kotlin 都有,还是静态类型
        22
    viakiba   143 天前
    @ghos BSF 引擎好像可以
        23
    fuye   143 天前
    @sagaxu 是的,这些 kotlin 也都有,而且 IDEA 支持上对 kotlin 更友好。不过个人感觉 groovy 的语法对 javaer 更加友好?目前用在一些内部业务型项目是 OK 的,如果是大型项目或者稳定的平台、服务层项目,从团队招聘成本、学习成本和技术风险上来看,可能还是会老老实实选择 JAVA 作为第一语言,其他作为一些辅助
        24
    flyingghost   143 天前
    JVM 系开发 DSL,groovy 简直爽歪。
        25
    wancaibida   143 天前
    一般 groovy+grails.闭包,GORM 用起来是爽,但动态语言坑起来也很爽啊.
        26
    aristotll   143 天前
    @Resource #11 groovy 可以用 compileStatic 来增加性能 ,
        27
    aristotll   143 天前
    个人比较喜欢 groovy 当脚本用 调用 Java 相关的库也很方便
        28
    lowzoom   143 天前
    除了业务本身其他都上 groovy
        29
    orm   142 天前
    公司一个产品在用,grails 框架,语言是 groovy
        30
    jeffreyning   107 天前
    公司在用 groovy 结合 springboot 开发,效率很高。接口层用的都是 springboot、springmvc 和 springcloud 的注解,业务实现用的 groovy 写速度快还支持热部署,没有用 grails 框架,用的这个 groovy 框架 micro-mvc,比 grails 胜在兼容性强,兼容 spring 体系各种 mvc 框架。
    https://github.com/jeffreyning/micro-mvc
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   714 人在线   最高记录 4346   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 20:02 · PVG 04:02 · LAX 12:02 · JFK 15:02
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1