在现在的开发工作中,AI 辅助编程已经成了很多程序员的日常标配。虽然像 Cursor、Copilot 这类工具很强大,但有时候面对一段乱七八糟的“祖传代码”,或者是刚接手的一团乱麻的项目,直接让 AI “帮我优化”往往得不到太好的结果。

问题出在上下文不够精准。与其给 AI 模糊的指令,不如给它一套结构化的“咒语”。最近折腾了两个非常通用的 Prompt,分别针对代码重构模块划分,实测效果不错,今天就分享给大伙,希望能帮大家减少一点加班时间。

场景一:面对“屎山”代码的重构

很多时候,我们为了赶功能,写出来的代码虽然能跑,但逻辑链条冗长、变量命名随意、甚至还有硬编码。过段时间回头看,连自己都懵。这时候就需要重构。

直接丢给 AI:“请重构这段代码”,大概率它只会给你换个排版,或者把变量名改得花里胡哨。

推荐 Prompt 思路:

你现在是一位拥有 10 年经验的高级架构师。请仔细阅读下面的代码片段,它目前存在逻辑混乱、可读性差以及潜在的维护性问题。

请按以下步骤进行重构:

  1. 分析意图:首先简述这段代码的核心业务功能是什么。
  2. 识别痛点:指出当前代码中存在的坏味道(如深层嵌套、魔法值、过长函数等)。
  3. 代码重构:基于 SOLID 原则,重写这段代码。要求拆分函数,提取常量,并添加清晰的注释。
  4. 对比说明:简要解释重构后的代码在性能和可维护性上的提升。

代码如下: [插入你的代码]

为什么这个 Prompt 有效? 它强制 AI 先“理解”再“动手”。特别是“识别痛点”这一步,能让你明白 AI 为什么这么改,而不是盲目地接受结果。

场景二:大型项目的模块化拆分

当你需要把一个几百行的大文件,或者是一个功能杂乱的 Service 类拆分成多个小模块时,人工拆分非常费脑子,既要考虑功能内聚,又要担心拆分后引用报错。

这时候就需要一个能够统筹全局的划分策略。

推荐 Prompt 思路:

我需要将这些代码(或功能列表)拆分为低耦合、高内聚的模块。请扮演系统架构师的角色,协助我进行模块划分。

要求:

  1. 功能归纳:根据代码的职责,先将相关功能归类。
  2. 模块定义:定义每一个模块的名称、职责边界以及对外暴露的接口。
  3. 依赖关系:画出模块之间的依赖调用关系,确保循环依赖不存在,或者提供解耦方案。
  4. 实施建议:如果要进行物理拆分(如分成不同文件或目录),请给出具体的文件结构建议。

具体代码/功能描述如下: [插入代码或功能描述]

实际应用场景: 这个 Prompt 特别适合那种“大杂烩”式的工具类,或者是一个处理了太多业务逻辑的 Controller。拆分不仅能降低单文件复杂度,还能方便后续做单元测试。

一些额外的使用心得

  • 不要一次丢代码库:虽然现在的模型上下文窗口很大,但最好还是“分而治之”。先拆模块,再针对每个模块内的具体函数用第一个 Prompt 进行细化重构。
  • 指定编程语言规范:如果你的项目是 Java 或 Go,记得在 Prompt 里加上“遵循 Google Java Style”或“Go 官方惯用法”,这样生成的代码更符合你的代码规范,减少 Review 时的修改成本。
  • 循环迭代:一次生成不代表完美。如果第一次拆分不满意,可以基于 AI 的输出进行追问:“我觉得 A 模块和 B 模块关联度太高,能进一步合并吗?”

总结

好的 Prompt 就是程序员的第二把“铲子”。它不会替你写完所有代码,但能帮你把脑力劳动从琐碎的细节中解放出来,去思考更宏观的业务逻辑。上面这两个模板我已经整理好,大家可以复制下来直接改改用,有啥好用的 Prompt 也欢迎在评论区交流,互通有无嘛!

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭