能否通过 GPT 改写开源框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
pangdundun996
V2EX    程序员

能否通过 GPT 改写开源框架

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

    最近需要做 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     Solana     3552 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 04:34 PVG 12:34 LAX 21:34 JFK 00:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86