[size=5]背景[/size]
我本人是一个 Java 后端开发,大概有两次接触 AI 写代码,第一次是去年十一月份左右,用的是 Cursor,当时高强度使用了一个月后 发现很容易出现幻觉,而且括号经常搞不明白,当时体验是比较差的,就没用了;第二次是今年四月份左右,使用的是 Copilot 说实话我被 AI 的成长给震惊到了,随后我逐步将自己的开发工作转移给 ai 去完成,经过我几个月的使用,很明显的发现 AI 写代码有个短板就是: [b]ai 是根据代码去推测结果的[/b] 他几乎不会去运行代码 最多只会根据某些场景写单元测试,这样会导致出什么结果呢 第一个 写完代码后 实际的运行结果达不到期望,有时甚至编译都不通过,原因可能是 当需求稍微复杂一些,就很难根据代码推算出结果。第二个 排查问题很容易钻牛角尖,就是可能某段代码确实有问题 但是问题并不出在这个代码段,这个问题说白了 就是有的时候信息有噪音,导致大模型的注意力全在噪声上面了。我就在想,面对上面这两个比较常见的问题,人类开发者是怎么解决的?其实很简单 写完需求后把项目启动起来,然后实际的去跑一次看下结果对不对,遇到复杂问题的直接 debug 一步一步的走 看问题实际出现在哪里。基于这种需求我在七月初的时候 开始开发 joLink 了
[size=5]joLink[/size]
joLink 大概开发了四个多月,是用 Python 写的,MCP 提供执行能力,Skill 告诉 Agent 如何使用这些能力,还有一套全局规则开发要求: 尽量以“事上磨练”的方式写代码,用简单直接的方式,而不是提前解决所有问题,再根据实际运行取得相关证据,而不是等用户单独要求验证。代码基本都是 gpt 写的,我做的项目管理和技术选型以及验收,中间是遇到了非常多的困难,就比如启动,Java 项目一般都是先将代码编译成字节码文件,编译这部分是非常麻烦的,主流使用的 idea 是有增量编译的功能,就是只编译有改动和改动影响到的代码,这点是非常难实现的,如果没有就只能改一行代码,然后用 maven 去编译整个项目,这里大概摸索了两个多月,经过大量的实验和测试最后选择使用 Eclipse JDT 包去实现这个功能。个人从产品的角度去看增量编译是非常重要 如果不解决就无法实现 写代码->启动->验证->有问题 继续改代码->启动 这个开发闭环的。
[size=5]dogfood[/size]
因为我本人是 Java 开发,所以我自己是 joLink 的一个用户,会在实际的工作中去使用他,经过不断的使用和调整: 目前 joLink 能让 coding agent 交付的代码大概率可信,就是我基本不会去看 ai 写的代码了,但是实际的上线前还需要专业的测试去测试,因为 jolink 目前还是针对开发这个阶段。主要是 joLink 补全了目前 coding agent 的短板:写完代码后能看到实际运行结果,AI 再根据反馈去调整代码。但是这只是我个人的工作流,在其他人身上不知道能不能稳定工作,另外 joLink 的边界还是比较浅的,目前能确定的是能运行大部分 Maven/Gradle 构建的 Spring Boot 的项目 以及 JDK8 到 JDK17,可能还不够稳定,joLink 还在早期阶段,我后续也会继续在 GitHub 上找不同开源 Java 项目来试探并且扩大它的边界。但是我期望大家能尝试一下 joLink 看看他能否对大家的工作有帮助,如果没有帮助,也希望知道原因。
github: https://github.com/L1ch404/jolink-runtime
最后感谢大家能看完这篇文章
⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉