AI做的python项目让它改成JAVA项目,我经历了什么
前一篇文章【开源我用AI在1个月开发的类禅道“任务管理系统” – 染卷’blog】写到我使用AI实现了一个任务管理系统,因为后端是python的,这几天又花了几天时间熬夜让他改成了java spring项目(java代码已更新到git仓库:https://github.com/joolan/TaskManagementSystem-CodedByAI)。
下面罗列下改造遇到的一些问题,以便备忘。
1、决定改造成java项目的第一个指令:
请阅读README文件,然后帮我把 task-board-backend 这个python后端项目改造成java spring项目;且最终改造前需要我进行手动确认后才开始改造,下面是一些改造要求:
1、要求创建一个新的项目文件夹,作为改造后的java项目文件夹
2、改造遵循主流的java spring设计模式及框架,使用java1.8版本
3、在原python中有些需求改造成java时可灵活处理,比如RBAC权限控制
4、在java项目下要有完整的项目说明文件,用来说明项目情况及相关技术架构
5、正式开始编写java代码前需要跟我手动确认是否开始
2、等了很长时间,在构建的时候遇到错误,根据AI的错误信息又让他进行修复
你说Gradle构建失败,能不能把Gradle地址改成国内可访问的然后再进行构建
3、构建中遇到的其他问题直接复制错误信息让AI进行修复,然后又让其将端口修改为8083
4、遇到的第一个大坑,因为python项目用的是sqlite数据库,本次改动AI直接使用mysql数据库,只创建了空白的数据库表(没有内容,像菜单配置、权限配置表都没有,都是我后面手动导入的),然后还有一些表并没有创建也需要手动创建。尤其是用户表里面也没有用户,然后反复沟通让AI生成admin用户(因为用户密码的加密方式java实现时是另一种加密方式 跟python里面的加密算法不一样,不想浪费功夫就索性重新创建用户了)
5、等用户创建完后终于可以开始测试了,发现前端vue页面不对,没有获取到菜单,这时候改造的万里长征开始了!我是直接F12打开浏览器控制台,前端调用接口让AI参考python项目给我进行修改,遇到有问题的接口都让它参考python的实现来修改。


6、刚开始没多久发现java的数据库操作用的是IPA?然后就让它重新改为Mybatis

7、第二个大坑就是,发现AI很多接口只是实现了简单的增删改查,并没有参考python的逻辑来进行代码编写,看起来一次性给太多需求它完全会遗漏(后面把模型改成了Qwen3.5-Plus,因为自动选择模型老是让我排队)。所以真的是对着前端的接口调用一个接口一个接口地进行测试,如果有不符合预期都需要让AI参考python项目逻辑进行修改!







8、AI创建了很多“表面”接口,其实并没有写具体的业务逻辑,这些都是具体测试的时候需要跟AI沟通并让它进行修复的。有的接口逻辑也不完善,比如评论任务接口其实后面还要写一个消息表来通知任务负责人有人评论了消息,但是首次改造后并没有这个逻辑,就需要提示AI完善接口逻辑。



9、后面的上传图片、上传附件接口java后端都没实现,这些真的只能是测试发现了再让AI修改,好在之前的功能都是我自己让AI写的,功能点都很清楚。


10、用户权限控制也并不是我想要的实现,转java后权限控制的颗粒度无法精确到用户及接口维度,就让AI重新做了。实现后就让AI给所有接口添加权限校验的注解。


11、回归测试,java后端一轮测试改造完毕后又登录web页面,把所有功能全部点一遍,必须全部点一遍,还有一些没有店端操作入口的逻辑也要复测。否则你不知道AI给你漏了什么功能,相当于是重新开发一遍功能了。改造强烈建议把前端页面告诉(喂给)AI,这样它才更能准确理解前后端的交互对接。





12、修改代码还是得适当能懂一些数据库、代码方面的内容,如果指出来AI会修复的更快,否则需要对话沟通很多次。



总结:
1、一次性不要给AI太复杂的任务,最好拆分下,一个一个任务一次完成。
2、可以给AI具体的文件路径或名称,以便AI更快地找到需要处理的文件。
3、比较复杂的逻辑没办法讲清楚时,可以尝试直接把相关的数据库表、表字段怎么查询怎么关联/处理一起告诉AI,让它帮你写代码实现。
4、在于AI沟通中可以多看看AI的思考过程,有助于更好地学会怎么跟AI提问(会提问真的是门学问)对自己的逻辑能力及表述能力也会有所提高。
5、开发方面必要的知识还是需要有的,有些项目代码还是建议平常也看看不一定要精通,看的多了就能大概猜到功能了,避免出现项目弄完什么代码都不看不去了解。 如果本身就有开发能力的人应该用好“代码审查”功能,看看AI每次修改了哪些代码是否采纳,这样才能确保AI修改的可控性。
6、可以在特定的环节让AI更新README.md文件,或讲相关沟通修复过程总结为经验文档写下来,等下次继续迭代项目时AI阅读后能更好地上手。
发表评论