|
| 1 | +--- |
| 2 | +tags: ["Dev"] |
| 3 | +title: "AI时代下,Java该如何起手项目开发" |
| 4 | +linkTitle: "AI时代下,Java该如何起手项目开发" |
| 5 | +weight: 32 |
| 6 | +description: > |
| 7 | + 结合人工智能在软件工程领域大行其道的当下,该如何快速开启Java项目的设计开发 |
| 8 | +--- |
| 9 | + |
| 10 | +{{% pageinfo %}} |
| 11 | +30多年来,开发者工具层面终于出现了革命者,本文主要结合人工智能在软件工程领域大行其道的当下,针对从零开始和迭代已有项目,介绍如何快速开启Java项目的设计开发。 |
| 12 | +{{% /pageinfo %}} |
| 13 | + |
| 14 | +最近常听到一句话,`AI不会替代你,但熟练使用AI的人可以轻松干废你`。 初听有点儿耸人听闻,实际却在发生中.... 甚至斯坦福大学最近也开设了[CS146S课程](https://themodernsoftware.dev/), 要求必须使用AI完成开发任务,作业是提交完成开发任务的提示词prompt。专门教授如何将大模型和AI工具(如编程智能体、AI IDE)集成到软件开发流程中,从而大幅提升开发者的生产力,并探讨了现代软件工程师的角色演变。课程大纲如下: |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | +## 工欲善其事必先利其器 |
| 19 | + |
| 20 | +### 传统开发,必备神器IDEA |
| 21 | +下图是2025.3版本,安装包大小1G,包括java生态的大量工具插件,还内置了教学引导,默认给30天的免费旗舰试用期。 |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +导引学习,主要介绍一些快捷键(包括any搜索、补全建议、重构)和调试技巧等。 |
| 26 | +- Ctrl+Shift+A或者两次Shift按键,触发anything search。 |
| 27 | +- Alt + Enter, 万能修复/提示 |
| 28 | +- Ctrl + Shift + Space,智能代码补全 |
| 29 | +- Ctrl + Alt + L,代码格式化 |
| 30 | + |
| 31 | +传统IDE中,补全是当初能让其迅速普及开的功能之一,而调试也是另一个极好的功能。在现代AI IDE中,调试似乎也不需要了,直接贴错误日志,就自动开始debug纠错了。 |
| 32 | + |
| 33 | +### 使用AI开发的现状 |
| 34 | + |
| 35 | +当下主流的使用AI开发模式有3种基本形态: |
| 36 | +- 一种是传统IDE + **编程插件助手**,代表有Lingma、Continue等,是属于渐进式拥抱AI辅助开发,从而提高生产力的方式。 |
| 37 | + |
| 38 | +- 另一种是基于开源IDE打造的**AI原生IDE**, 提供更沉浸式的AI编程体验,由AI自主完成分析、设计、编码乃至测试的完整流程,一般需要订阅收费。 |
| 39 | + - 国外:Cursor(基于VS Code) |
| 40 | + - 国内:Trae.CN(字节)、CodeBuddy(腾讯),Qoder(阿里.新加坡团队) |
| 41 | + |
| 42 | +- 还有一种**终端工具**,代表是Claude Code、Codex CLI等,可以灵活集成到以上两种模式和其他第三方CI/CD协作流水线中 |
| 43 | + |
| 44 | +现在市场参与者,基本都在布局各形态的开发场景,本文发稿时,通义lingma也在公测IDE了,CodeBuddy已实现插件、IDE、CLI三端全形态覆盖。 |
| 45 | + |
| 46 | +年初我个人也结合开源vscode+roocode插件,开发过一款自己的IDE,叫`aide`,基本功能也都具备,后面有时间可以整理发出来一篇手把手打造自己的AI原生IDE。 |
| 47 | + |
| 48 | + |
| 49 | +> 不过github Copilot在国内市场才是比较可惜的,背靠微软(VS生态),手里有github,竟然在市场上,没有国外初创企业Cursor等的声势浩大。 |
| 50 | +
|
| 51 | +这几种形态,反映了一个演进方向: 将AI集成到开发工具 ====> 将开发工具集成到AI中。人在其中的动手参与度逐步降低,后者看上去是最理想的终极形态,合理设置后,可以让AI把整个软件交付的全流程(需求分析->设计->编码->测试->部署上线)自动完成。 |
| 52 | + |
| 53 | +不过这里不应该存在谁更好的说法,最终要看你的团队运作模式,是单人全栈还是严格‘瀑布模式’下的团队模式,毕竟康威定律还在生效(技术问题的背后,往往是人的问题和组织问题)。这类AI原生IDE现在也基本支持个人版和企业版了,不过从业内的实践来看,在单人全栈模式下,AI原生IDE的优势会更明显。 |
| 54 | + |
| 55 | +由于本人工作行业限制,接触最多的是lingma,不过为了客观对比更高阶的形态,这里以Trae.CN为例 |
| 56 | + |
| 57 | +安装包大小204M,内置前端工具链,如涉及其他技术栈,需要自行安装插件。 支持两种模式(IDE和solo模式),就是前面提到的IDE+插件助手模式和AI原生IDE的形态。 |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | +AI原生IDE,相对传统IDE,最大的区别是在软件工程中的参与阶段左移了,从需求分析开始就可以介入了,并且以AI为主导推理,自动调度集成MCP工具来推进工作。 |
| 63 | + |
| 64 | + |
| 65 | +## Vibe Coding 氛围/AI结对编程 |
| 66 | + |
| 67 | +### 零开项目(避免重复造轮子) |
| 68 | + |
| 69 | +java生态已经非常丰富,几乎每个领域都有对应成熟、经过验证的开源项目,遵循专业的事情找专业的工具干的原则(寻找轮子),避免让AI从零开始重复造轮子。 |
| 70 | + |
| 71 | +> 鉴于LLM的工作原理,预测Token,让AI从零开始重复造轮子,这是血亏的实践结论。。。应该利用已有成熟库,喂文档,进入迭代阶段。 |
| 72 | +> 当前最佳STOA实践是Claude的Skills攻略,此处不介绍,如涉及复杂项目可考虑(个人还没试过)。 |
| 73 | +
|
| 74 | + |
| 75 | +推荐先要根据项目需求场景,直接驱动builder使用成熟脚手架或者传统IDE初始化一个项目基础架构。整理提示模版如下: |
| 76 | + |
| 77 | +```bash |
| 78 | +我需要实现 [集成类系统的权限管理],请帮我: |
| 79 | +1. 分析这个需求可能涉及哪些技术领域,有没有成熟的库/项目已经做过类似的事? |
| 80 | +2. 确定使用Java技术栈,并使用mvn初始化合适的脚手架 |
| 81 | +``` |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | +> 需要提前安装配置好JDK和Maven环境,此处不表。 |
| 86 | +
|
| 87 | +如果公司有对应的研发规范,推荐使用rules规则,将提示模版作为rules规则,让AI根据规则进行架构设计选型。 |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | +### 迭代存量项目 |
| 92 | + |
| 93 | +打开已有项目的根目录,会自动判断项目技术栈,并推荐安装相应的插件。 |
| 94 | + |
| 95 | + |
| 96 | +IDE模式下,内置了4中智能体 |
| 97 | + |
| 98 | + |
| 99 | +大多数情况下,builder就可以完成开发任务,要熟悉存量项目架构设计的话可以使用chat模型。建议先在buidler模式下,自动生成团队规范。提示词如下 |
| 100 | + |
| 101 | +```bash |
| 102 | +生成该项目的一个团队规范,存放于.trae\rules\project_rules.md文件中 |
| 103 | +``` |
| 104 | + |
| 105 | +确认自动生成规范是否有误并合理。 |
| 106 | + |
| 107 | +迭代项目时,让AI根据规则进行架构设计选型和代码编写。 未完...后面单独开章分享。 |
| 108 | + |
| 109 | + |
| 110 | +## 总结 |
| 111 | + |
| 112 | +要想真正在AI原生IDE中上手生产级系统开发,还是要掌握一些基础的编程技能,如数据结构、算法、设计模式、软件工程等等。 |
| 113 | + |
| 114 | +本文开头提到的CS146S课程,也是要求学生必须具备扎实的编程经验,才能报名的。不然,一是不知道如何让AI更好的替我们工作产出(prompt该如何写),二是不知道AI的产出是否存在隐患,很快就会进入AI“屎山”代码中,是你真的会看不懂一小时前的某段代码逻辑意图... 至少当下,会因为AI的易得性反而更容易欠下技术债务。软件还是要讲究可维护性的,不过话又说回来,不需要后续维护的,讲究快速原型的场景,确实是极好的。 |
| 115 | + |
| 116 | +AI协同并不简单,让开发人员最讨论的文档编写,直接上升到第一公民,变成**面向文档编程**了。协同原则总结: |
| 117 | + |
| 118 | +- 人来负责“规划”,AI 负责“执行” |
| 119 | +- 绝不提交自己不理解的代码 |
| 120 | +- 避免重复造轮子 |
| 121 | +- 小步迭代,持续清理 |
| 122 | + |
| 123 | +参考资料: |
| 124 | +- Vibe Coding 指南 - https://github.com/tukuaiai/vibe-coding-cn |
| 125 | +- “AI 辅助编程”第一案 - https://zhuanlan.zhihu.com/p/1984901894875935875 |
0 commit comments