V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pangdundun996
V2EX  ›  程序员

能否通过 GPT 改写开源框架

  •  1
     
  •   pangdundun996 · 2023-12-07 11:47:53 +08:00 · 1685 次点击
    这是一个创建于 387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近需要做 SQL 语法解析、语义校验相关的工作,语言是 golang ,调研下来相关框架基本都是语法树解析的,后续语义校验的功能没找到,然后我发现 java 那边有比较成熟的实现:apache Calcite ,我就想要是 GPT 能将开源库实现语言翻译一下就好了。 但,显然是不行的-_-,以下是 GPT 的回答

    Q:给你一个 java 库,能否将其改写 golang 实现,需要保证功能一致
    A:
    将一个 Java 库直接翻译成 Go 并保持功能一致是一项复杂的任务。Java 和 Go 有不同的语法、并发模型、类型系统等,因此直接进行翻译可能会导致不符合 Go 语言习惯的代码。此外,一些 Java 特定的功能在 Go 中可能需要以不同的方式实现。
    
    如果你有一个具体的 Java 库,并希望将其功能翻译成 Go ,我建议以下步骤:
    
    了解 Java 代码: 仔细研究 Java 代码,理解其结构、设计模式、算法和功能。
    
    设计 Go 实现: 在理解 Java 代码的基础上,设计相应的 Go 实现。在这个阶段,你可能需要考虑如何在 Go 中表示 Java 中的类、方法和其他结构。
    
    逐步实现: 逐步将 Java 代码翻译成 Go 代码。在这个过程中,需要注意 Java 中的一些特性(例如继承、接口、异常处理)在 Go 中可能需要以不同的方式实现。
    
    测试和验证: 针对翻译后的 Go 代码编写测试,确保它们能够正确地模拟 Java 代码的行为。验证代码是否在不同的场景下都能正确工作。
    
    性能调优:Java 和 Go 有不同的性能特征,因此你可能需要在 Go 代码中进行一些性能调优。这可能涉及到并发模型、内存管理等方面。
    
    文档: 编写适当的文档,使其他开发者能够理解你的 Go 代码并正确使用它。
    
    请注意,直接翻译可能并不总是最佳的做法。在进行翻译的过程中,你可能会发现一些 Go 特有的语言特性更适合替代 Java 中的某些功能,这时你可以考虑采用更 Go 风格的实现。
    
    此外,如果 Java 库涉及与 Java 特有的技术栈相关的功能,比如 Spring 框架、JavaEE 等,那么在 Go 中可能需要找到类似的替代品,或者重新设计和实现相应的功能。
    
    11 条回复    2023-12-08 10:08:29 +08:00
    ysicing
        1
    ysicing  
       2023-12-07 11:51:24 +08:00
    钱不够用😂
    PTLin
        2
    PTLin  
       2023-12-07 11:51:35 +08:00
    你在想什么,要是能做到世界就不需要程序员了 :)
    razor1895
        3
    razor1895  
       2023-12-07 11:53:04 +08:00
    https://chat.openai.com/g/g-MXIPFnXHY

    另外 github 也有一个项目调用 chatgpt api 也能做到,我找找
    tomatocici2333
        4
    tomatocici2333  
       2023-12-07 11:53:52 +08:00
    gpt 最大的作用还是辅助开发人员,你要先自己会才行。
    InDom
        5
    InDom  
       2023-12-07 12:00:02 +08:00
    你可以把每一段代码都让他重新实现,然后你在让他把代码串起来。
    version
        6
    version  
       2023-12-07 12:01:06 +08:00
    Java 项目: 又老又坑的项目.没请求.没文档.一个接口对应十几种业务. if 和 map 树状能穿越几个世纪.. 人都改不了..ai 能插手.感觉有点悬..

    chatgpt github 试过单文件.简单业务还是可以转换..但是很多业务要自己补..起码要懂才能转语言..
    thinkershare
        7
    thinkershare  
       2023-12-07 12:01:36 +08:00
    你要先有能力判断它给出来的结果是否正确再说。
    HojiOShi
        8
    HojiOShi  
       2023-12-07 12:03:15 +08:00
    GPT 还没万能到这种地步,但是给个代码片段还是可以的。
    litwater
        9
    litwater  
       2023-12-07 17:34:42 +08:00
    搞个微服务,go 和 java 之间通过 dubbo 调用 哈哈
    guyeu
        10
    guyeu  
       2023-12-08 09:57:14 +08:00 via iPhone
    jni 允许 c++直接调 Java 的方法,就是部署拿到点儿。
    pangdundun996
        11
    pangdundun996  
    OP
       2023-12-08 10:08:29 +08:00
    @guyeu 准备自己用 golang 写了,发这个贴就是吐槽一下,也知道现在 GPT 还做不了这个事,后续有空可能会参照 Calcite 做个简化的 golang 库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.