大家好!今天我想跟大家分享的主题是"如何在软件开发中用AI解决真实问题"。
可能很多人对AI的印象还停留在"ChatGPT聊聊天"、"帮我写个文案"、"调试一下代码"这些场景。但今天我想告诉大家,AI已经可以承担完整的项目实施工作——从零搭建基础设施、跨技术栈迁移,甚至帮你踩完所有的坑。
今天我不会给大家列一个工具清单,因为那没什么意义。我会讲两个真实的落地案例:
在讲这两个案例之前,我先简单介绍一下我的工具箱:
好,下面进入第一个案例。
先说背景。我们团队之前一直用公司的Jenkins服务器做构建,但最近有个需求:需要在局域网搭一个独立的Jenkins,给特定项目用。
领导就把这个任务交给我了。问题是,我只用过Jenkins,从来没搭过。而且环境还挺复杂:
传统做法是什么?啃官方文档,Google各种教程,然后一个坑一个坑地踩。我估计至少要3-5天。
但这次我决定让AI当我的"搭档",边做边问,遇到问题立刻让AI诊断。结果1天就搞定了,而且直接投产使用。
一开始我就问AI:"Windows Server上搭建Jenkins,需要哪些前置条件?"
AI给我生成了一个检查清单:
然后AI直接给我生成了安装命令和配置文件模板。我照着做,10分钟就把Jenkins跑起来了。
跑起来是跑起来了,但真正用的时候,各种问题冒出来了。这才是AI价值最大的地方。
坑1 - Node.js版本冲突
第一个问题:构建报错node: command not found。
我把错误日志直接贴给AI,AI秒级诊断:"系统装了多个Node版本,环境变量冲突了"。
然后AI给我生成了nvm配置脚本,指定项目使用Node 16。问题解决。
如果是传统做法,我得先Google"Jenkins node not found",然后看10几个StackOverflow的回答,再试各种方案,至少要1-2小时。
坑2 - JDK版本不匹配
第二个问题:Jenkins启动失败,提示Unsupported class version。
我又贴日志给AI。AI分析:"Jenkins需要JDK 11,但你系统默认是JDK 8"。
AI直接给我写了个环境变量切换脚本,动态指定JAVA_HOME。又解决了。
坑3 - 控制台乱码(GBK vs UTF-8)
第三个问题:构建日志里中文全是乱码,根本没法看。
AI诊断:"Windows默认GBK编码,但Node.js输出UTF-8"。
解决方案:在构建脚本开头加一行chcp 65001,把控制台切换到UTF-8编码。完美解决。
这三个坑,如果靠自己Google,每个至少1-2小时。但有了AI,贴日志、秒级诊断、直接给方案,每个坑5-10分钟就搞定了。
基本功能跑通之后,AI还帮我做了优化:
我做了个对比表:
| 维度 | 没有AI | 有AI |
|---|---|---|
| 学习成本 | 需要啃官方文档3-5天 | 边做边问,1天搭完 |
| 踩坑时间 | 每个问题Google 1-2小时 | 贴日志秒级诊断 |
| 配置质量 | 能跑就行,不敢优化 | AI给出最佳实践 |
| 知识沉淀 | 零散笔记 | AI生成完整文档 |
这就是AI的价值:不是替代你,而是让你能快速搞定之前不敢碰的事情。
第二个案例更复杂。我们公司有个收银系统,原本是Vue2 + Electron的桌面应用,跑在PC上。现在客户要求适配Android平板,当收银机用。
这个项目的难度在哪?
electron-store、@electron/remote、say语音播报),这些在Android上全都不能用。autoUpdater,Android要自己实现APK下载和安装。如果纯靠自己,预估要2-3个月,而且我不会Java,可能还得招个Android开发。
但最后,通过AI协助,1.5个月就完成了,而且没招人。
一开始我就问AI:"Vue2 + Electron项目,要改Android,用什么方案?"
AI给我分析了4种方案:
最后AI推荐:选Capacitor,因为成本最低,70%的代码可以复用。
这一步如果自己查资料对比,至少要2-3天。AI给了个对比表,10分钟就决策了。
技术方案定了,接下来要把Electron的依赖全部剥离。
AI帮我做了什么?
扫描package.json,标记所有Electron依赖
逐个生成替换方案:
electron-store → Capacitor Preferences APIsay(语音播报) → Web Speech API@electron/remote → 移除,改用Capacitor插件生成迁移脚本,批量替换导入语句
这个过程如果手动做,很容易漏掉某个依赖,导致后面报错。AI扫一遍,确保不遗漏。
这是整个项目最难的部分,也是AI价值最大的地方。
收银机必须对接打印机、钱箱、扫码枪。在Electron上,我们是通过Node.js的串口库实现的。但Android上完全不一样,需要原生Java代码。
我问AI:"Android上怎么控制热敏打印机?"
AI给出方案:
然后AI直接给我生成了Capacitor原生插件模板(Java桥接代码)。
我举个具体例子——钱箱控制。
钱箱是通过打印机的串口开的,需要发送一个ESC/POS指令。AI给我生成了这段Java代码:
public void openCashDrawer(PluginCall call) { byte[] openCommand = {0x1B, 0x70, 0x00, 0x19, (byte) 0xFA}; sendToSerialPort(openCommand); call.resolve();}我只需要把这个插件集成到Capacitor,然后在前端JS里直接调Device.openCashDrawer()就行了。
再举个例子——获取设备MAC地址(用于授权)。
Capacitor默认API没有这个功能。我问AI:"Android上怎么获取MAC地址?"
AI操作:
WifiManagerDevice.getMacAddress()如果没有AI,我不会Java,这一步就卡死了,必须招个Android开发。
但有了AI,我把硬件厂商的SDK文档贴给它,AI帮我封装成JavaScript可调用的接口。半天就搞定了。
Electron有autoUpdater,自动下载更新。但Android不一样,需要:
AI帮我:
xxxxxxxxxxIntent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);Element UI的按钮太小,触摸屏上点不准。
AI操作:
.vue文件,找出Element组件使用每次改代码都要重新打包APK,太慢了。
AI方案:配置Capacitor Live Reload(局域网实时预览)。生成调试脚本:
xxxxxxxxxxionic cap run android -l --external --host=192.168.1.100平板连上开发机,改代码秒级生效。开发效率提升10倍。
| 维度 | 纯靠自己 | AI辅助 |
|---|---|---|
| 技术选型 | 查资料对比2-3天 | 10分钟得出方案 |
| 原生插件开发 | 不会Java,需招安卓开发 | AI生成模板,改改就能用 |
| 硬件对接 | 啃厂商SDK文档1周+ | 贴文档给AI,半天搞定 |
| 总耗时 | 预估2-3个月 | 实际1.5个月完成 |
这个案例的核心启示:AI不仅能帮你做你会的事,还能帮你做你不会的事。
刚才讲了两个大案例,现在我系统介绍一下我平时用的AI工具。
VSCode + Antigravity / Cursor / trae
这是日常开发最常用的。
Cursor的特色功能:
Claude CLI
用法:claude "帮我写个Git Hook检查Commit规范"
优势:直接在终端拿结果,不用切窗口。
适合场景:写脚本、生成配置文件、快速问答。
Codex CLI
OpenAI的命令行工具,擅长生成标准化代码(CRUD、测试用例)。
Antigravity
项目级AI助手,能理解整个repo的上下文。
功能:
适合场景:大型项目重构、技术债务清理。
ccswitch(Context Switch)
作用:在不同AI上下文间快速切换。
例子:Jenkins项目和Android项目分别维护独立对话历史,不会混淆。
cpa(Code Pattern Analyzer)
分析代码模式,生成最佳实践建议。
例子:检测项目中的反模式(如过度嵌套、重复代码)。
这部分稍微技术一点,但很重要。
在AI编程工具中,有三个层级:
| 层级 | 作用 | 例子 |
|---|---|---|
| 全局规则 | 限制AI行为边界 | "禁止修改src/core/目录" |
| Skills | 定义标准工作流 | "遇到Bug先写测试" |
| MCP | 提供工具能力 | 文件读写、数据库查询、API调用 |
CLAUDE.md、GEMINI.md).claude/skills/)~/.claude/skills/)实际例子:
比如我在全局规则里写:"所有Commit必须包含Jira单号"。
那么AI在生成Git Commit时,会自动校验并提示我。
不同项目有不同的代码规范。
比如Jenkins项目和Android项目,Commit风格不一样。
我的做法:
.claude/skills/commit-style.md这样就不会混淆了。
这是个很实际的问题。
我们收银系统有2.0(v1190)和3.0两个版本。现在要把2.0的新功能迁移到3.0,但不知道3.0是从2.0的哪个提交点拉出来的。
传统做法:手动对比Git历史,可能要看几百个Commit,非常痛苦。
AI协助流程:
我问AI:"帮我找出3.0分支是从2.0的哪个Commit拉出来的"。
AI生成Git命令:
xxxxxxxxxxgit merge-base release/2.0 release/3.0然后AI进一步分析:对比两个分支的文件差异,生成迁移清单。
结果:10分钟定位到起点,节省2-3小时人工对比时间。
场景:项目中有50+处使用旧API getUserInfo(),需要统一改成新API fetchUserData()。
AI操作:
如果手动改,50个地方,每个5分钟,要4小时。AI帮忙,20分钟搞定。
场景:线上报错Cannot read property 'name' of undefined。
AI协助:
user对象可能为空xxxxxxxxxxconst userName = user?.name || '未知用户';传统流程:打断点调试、复现问题、写修复、测试,至少30分钟。AI辅助,5分钟搞定。
痛点:写完代码懒得写文档。
AI方案:贴代码,AI自动生成:
文档质量甚至比我自己写的还规范。
✅ 适合AI:
❌ 不适合AI:
❌ 差:"帮我修这个Bug"
✅ 好:"Vue项目,登录后跳转失败,控制台报router.push is not a function,贴相关代码..."
上下文越完整,AI的答案越准确。
不要一次性问:"帮我把整个项目改成TypeScript"。
而是:
CLAUDE.md定义项目规范AI生成的代码必须自己过一遍。
AI是助手,不是替代品。
效率提升:
能力边界拓展:
知识沉淀:
不是替代人,而是放大人:
改变工作模式:
AI会越来越深入开发流程:
但核心能力依然是人:
Q1:AI生成的代码质量如何保证?
A:必须人工审核 + 测试覆盖。AI是助手,不是替代品。
Q2:会不会过度依赖AI,导致能力退化?
A:关键是"用AI做什么"。用它做重复劳动✅,用它替代思考❌。
Q3:公司代码安全吗?会不会泄露?
A:选择靠谱的工具(Claude、GitHub Copilot企业版),有数据隔离保障。
Q4:团队怎么推广AI?
A:从小场景开始(比如让AI写测试用例),让大家尝到甜头。
谢谢大家!