最近在开发 Kairoa 这个桌面版的开发者工具时,又一次感受到了 AI 辅助开发的魅力,AI 写代码已经完全改变了我的开发方式。
从零到一:快速上手新技术
Kairoa 用的是 Tauri 2 和 SvelteKit 5,这两个技术栈对我来说都是全新的。特别是 Svelte 5 的 runes 系统(derived、$effect),和之前用过的框架差异还挺大的。
刚开始的时候,我对着文档看了半天,还是有点懵。后来干脆直接问 AI:"Svelte 5 的 runes 怎么用?能给我个实际例子吗?" 它直接给了我一个完整的组件示例,还解释了每个 rune 的用途。我照着例子改改,很快就上手了。
这种学习方式比看文档快多了。文档往往比较抽象,而 AI 能直接给你可运行的代码,还能根据你的具体需求调整。比如我想实现一个响应式的状态管理,AI 不仅能给出代码,还能解释为什么这样写,有什么需要注意的地方。
解决那些"卡住"的时刻
开发过程中,总有一些小问题会卡住你。比如有一次,我在实现图片拖拽功能时,发现 Tauri 环境下拖拽事件不触发。我查了半天文档,试了各种方法都不行。
后来我把问题描述给 AI,AI 很快就指出了问题:Tauri 会拦截拖拽事件,需要在全局监听,而且要用 capture 阶段。不但给了解决方案,还解释了原理。我照着改,问题立马解决了。
这种"卡住"的时刻,以前我可能要花一两个小时查资料、试错,现在几分钟就能搞定。AI 就像一个经验丰富的同事,随时可以请教。
实现复杂功能:国密算法支持
最近要给 Kairoa 添加国密算法支持(SM2、SM3、SM4),这个功能我之前完全没接触过。如果自己研究,可能需要:
- 找合适的库
- 看文档理解 API
- 实现加密解密逻辑
- 处理各种边界情况
但有了 AI 辅助,整个过程变得顺畅多了。我先问它:"JavaScript 里有什么好用的国密算法库?"它推荐了 sm-crypto-v2,还告诉我怎么安装和使用。
然后我描述需求:"要在现有的加解密工具里添加 SM2、SM3、SM4 支持,需要集成到现有的 UI 中。它帮我做了如下事情:
- 设计类型定义
- 实现加密解密函数
- 处理不同模式(ECB、CBC、GCM)
- 更新 UI 和国际化
整个过程大概花了半个小时,如果自己研究,可能得两三天。而且 AI 给出的代码质量还不错,基本不需要大改,只需要根据项目风格微调一下。
代码质量和最佳实践
AI 不仅能写代码,还能帮你改进代码。比如有一次我写了个函数,功能是实现了,但代码有点冗长。我问 AI:"这段代码能优化吗?",AI 不但给出了更简洁的版本,还解释了优化思路。
还有一次,我遇到了一个 TypeScript 类型错误,错误信息有点晦涩。我把错误信息贴给 AI,很快定位到了问题,还告诉我怎么修复,以及如何避免类似问题。
这种"代码审查"式的帮助,让我学到了不少最佳实践。比如:
- 如何更好地组织代码结构
- 如何处理异步操作
- 如何设计类型系统
- 如何写出更健壮的错误处理代码
UI/UX 优化的迭代
Kairoa 的图片处理功能,UI 改了好几版。每次改版,我都会和 AI 讨论:
- "这个布局怎么样?"
- "用户操作流程是否顺畅?"
- "有没有更好的交互方式?"
AI 会给出建议,比如:"可以把角度输入框和滑动条放在同一行以节省空间"、"拖拽时应该给视觉反馈"等等。这些建议都挺实用的,让界面变得更友好。
而且,当我描述一个交互问题时,AI 能快速给出解决方案。比如"选择同一张图片后没反应",它马上指出是文件输入的 value 没重置,需要手动清空。
调试和问题定位
开发中最烦的就是调试。有时候一个 bug 要查很久,特别是那些偶发性的问题。
有一次,我遇到了一个编译错误,提示某个类型不匹配。我看了半天代码,没看出问题。后来把错误信息和相关代码给 AI,它很快指出是某个函数的返回类型定义不对。
还有一次,功能在浏览器里正常,但在 Tauri 里就不行。AI 帮我分析了可能的原因,还给出了排查步骤。按照它的建议,我很快定位到是事件监听的问题。
学习新技术栈
Tauri 2 的插件系统,我之前完全不了解。当需要添加更新功能时,我问 AI:"Tauri 2 怎么实现应用更新?"它给了我完整的实现方案,包括:
- 需要安装哪些依赖
- 如何配置
- 前端如何调用
- 如何处理更新流程
我照着实现,很快就搞定了。这种学习方式,比看官方文档效率高多了。
反思:AI 是工具还是伙伴?
用了这么久 AI 辅助开发,我觉得它更像是一个"超级实习生":
- 它知识面广,什么技术都了解
- 它不知疲倦,随时可以请教
- 它反应快,几秒钟就能给出答案
- 但它需要你的指导,需要你判断对错
最重要的是,AI 不能替代你的思考。它给出的代码,你需要理解,需要根据项目实际情况调整。它给出的建议,你需要判断是否合适。
比如,AI 可能会给出一个"标准"的解决方案,但你的项目可能有特殊需求。这时候,你需要告诉 AI 你的约束条件,让它给出更合适的方案。
一些经验总结
- 明确描述问题:问题描述得越清楚,AI 给出的答案越准确。包括上下文、错误信息、你尝试过的方法等。
- 验证 AI 的答案:AI 有时候也会出错,特别是涉及最新技术或者复杂逻辑时。要自己验证,不要盲目相信。
- 理解而非复制:不要直接复制粘贴代码,要理解它的逻辑,然后根据项目需求调整。
- 保持学习:AI 能帮你快速实现功能,但基础知识还是要掌握。否则,你只是在使用工具,而不是在开发。
- 迭代优化:AI 给出的第一版代码可能不是最优的,可以继续和它讨论,优化代码质量。
结语
AI 辅助开发,让我感受到了技术进步的威力。以前需要几天才能完成的功能,现在可能半天就搞定了。以前卡住的问题,现在几分钟就能解决。
但 AI 只是工具,真正的价值在于:
- 它让你能更快地实现想法
- 它让你能学习更多技术
- 它让你能专注于核心逻辑,而不是重复劳动
Kairoa 这个项目,如果没有 AI 辅助,我可能不会选择用 Tauri 2 和 SvelteKit 5 这些新技术,因为学习成本太高了。但有了 AI,我可以大胆尝试,快速上手,把更多精力放在产品功能上。
这或许就是 AI 辅助开发的意义:它降低了技术门槛,让开发者能更快地把想法变成现实。而在这个过程中,我们也在不断学习,不断成长。
未来,AI 辅助开发可能会成为标配。但无论工具怎么变,开发的核心不变:理解需求、设计架构、实现功能、测试验证。AI 只是让这个过程更高效,而真正的创造力,还是来自开发者自己。
关于 Kairoa 开发者工具
Kairoa 是一款简洁、直观且跨平台的桌面开发者工具。下载地址:github.com/covoyage/ka…