Skip to content

AI 编程心得:告别『全自动』的坑,我的『半指导』高效实践

最近接手了个有点年头的 CodeIgniter 3 老项目,需要增加几个功能,例如招聘、考勤、出入账等。寻思着用 AI 辅助一下,结果捣鼓下来,我对怎么使唤 AI 编程有了点新想法,或者说,踩了些坑后的心得吧。

现在 AI 编程这么火,你要说你不用,好像都快跟不上时代了。但要说完全依赖那些 AI IDE(像 Cursor、Windsurf、Trae 这些)或者把整个项目都交给 AI 大包大揽,说实话,心里是真没底。 特别是搞复杂项目或者像我这样维护老系统,结果往往是『生成 5 分钟,修改 debug N 小时,后期维护想捶墙』。

所以,今天就聊聊我的这点实践体会,顺便也掰扯掰扯纯 AI 辅助、AI IDE 和我这套“半指导”玩法各自的利弊。

AI 编程的『双刃剑』:上下文理解力是硬伤,维护起来真头疼

AI 写代码是快,这没得说,但它的软肋也挺明显的:对项目的整体“上下文”理解能力还是差点意思。前后端怎么互动、数据库怎么设计的、业务逻辑绕几个弯,稍微复杂点,AI 就容易“懵圈”。

比如,你要是用 Cursor 这类 AI IDE 直接让它上手干活,它可能上来就给你来个“乾坤大挪移”,文件结构改得面目全非;或者生成一堆跟你项目风格八竿子打不着的代码;更吓人的是,它甚至可能悄悄把你那些『祖传』老代码给干掉了,那真是哭都没地方哭。

特别是老项目,里面各种历史遗留问题、定制化的东西,鬼知道 AI 会怎么『自由发挥』去“脑补”功能? 稍不留神,那就是一场小型灾难。

就拿我这次加功能来说,如果直接把任务甩给 AI IDE 让它“全自动驾驶”,我估计至少得搭进去大半天时间给它“擦屁股”。为啥?CodeIgniter 3 这种“老古董”框架,就算 AI 的训练库里有,但项目里那些犄角旮旯的自定义库、历史遗留问题,它哪儿知道啊?生成的代码很可能跑不通,我还得吭哧吭哧去 debug,效率不升反降。

我的『半指导』策略:我搭骨架,AI 填肉,效率起飞!

为了不让 AI “脱缰”,我琢磨出这么一套相对稳妥的打法:先把项目的“规矩”和“蓝图”给 AI 画好,再让它往里填充细节。 具体我是这么干的:

  1. 交代“家底”:明确告诉 AI,“咱这项目用的是 CodeIgniter 3.1.10,MVC 架构哈,后端控制器代码放 /admin/Renyuan.php,数据库操作认准 $this->db,前端是 Bootstrap 4.6 配 jQuery 3 的底子。” 这样,AI 就不用瞎猜了,按着现成的路子来。
  2. 画个草图:别让 AI 瞎猜界面长啥样。我直接用画图工具勾勒个大概布局(表单在哪,按钮放哪儿),截图丢给 AI,告诉它:“喏,就照着这个样子,把前后端功能给我实现了。”
  3. 立点“规矩”:给 AI 加点限制,比如强调前后端逻辑要分开、先帮我生成建表的 SQL 语句、尽量别用外链和子查询(这俩它老出错)、前端代码直接输出 HTML、CSS、JS 到一个文件里,后端呢,就用简单的查询加个 JOIN 就行。
  4. 分步“验收”:等 AI 把表结构 SQL、后端控制器代码、前端页面代码都吐出来后,我再动手创建 Renyuan.phprenyuan.html 这些文件(如果需要模型层,再加个 Renyuan_model.php),把 AI 给的代码小心翼翼地粘贴进去,然后运行 SQL 建表,最后跑起来测试。

效果怎么样?还真不赖! AI 很“听话”地生成了清晰的建表 SQL、逻辑还算靠谱的后端代码,以及基本能用的前端代码。复制代码到对应文件,执行 SQL,简单测试一下,大部分功能一次跑通!原本预估可能要折腾一周的工作量,硬生生压缩到了 1 天左右,效率提升是实打实的,而且出错也少了很多。

图片示意:就像给了AI一张明确的“施工图

三种姿势对比:纯聊天、AI IDE 全家桶、我的『半指导』

聊到这儿,咱们对比下这几种方式的感受:

  • 纯聊天式 AI 辅助(比如直接跟 ChatGPT 或 Gemini 对话):

    • 感觉像:随叫随到的技术顾问。哪里不懂问哪里,改一小段代码也方便。
    • 但问题是:得自己手动把零散的代码拼起来,缺乏整体感,搞复杂任务容易聊着聊着就“断片儿”了。
  • AI IDE 全家桶(Cursor/Windsurf /Trae这类):

    • 感觉像:直接给你配了个“副驾驶”,能直接在项目里改代码、自动补全,看着挺集成、挺方便。特别适合新开的项目或者简单场景。
    • 但问题是:就像前面说的,它对复杂项目的“路况”理解不行,尤其老项目水土不服,容易瞎操作,改出问题来,擦屁股的成本太高。
  • 我的『半指导』模式

    • 感觉像:你开着车,但用了个超智能的“导航+语音助手”。大方向(项目结构、核心逻辑)还是你来把控,具体的“怎么走”(代码实现细节)让 AI 来建议和填充。
    • 好处在于:既利用了 AI 的快速生成能力,又保留了人的掌控力。特别适合复杂项目或老系统改造。你把框架和限制条件给足了,AI 输出的东西就更贴合实际需求,错误少,后期维护也心里有底。
    • 当然,也得费点心思:前期需要花点时间准备好“导航路线”(项目信息、草图),给 AI 的指令(prompt)也得想清楚说明白。

简单说,AI IDE 有点像开了“全自动驾驶”,看着酷炫省事,可一旦路况复杂(老项目就是典型),它就容易“迷路”甚至“闯祸”。我这方法呢,更像是你牢牢握着方向盘,同时让 AI 这个得力助手帮你处理大部分常规操作,灵活又可控。

一点心得和碎碎念

这次主要靠 gemini-2.5-pro-preview-03-25 生成代码,总的来说挺给力的。虽然偶尔会犯些小迷糊(比如单双引号搞混、某个 原生JS 方法和jquery库方法混淆),但都是些小修小补的活儿,不算麻烦。

另外,我发现一个“窍门”:让 AI 用简单的查询和 JOIN 比让它写复杂的子查询要稳得多。 不知道为啥,它写子查询老是翻车,而且报错信息给它反复修改也无济于事,可能是训练数据里这块儿的“坑”比较多吧。

所以,以后再跟 AI 打交道,我肯定还会坚持 “我搭骨架,AI 填肉” 这套路,尤其是在老项目上,轻易不碰那些“全自动”工具,免得挖坑把自己埋了。

总而言之,AI 编程是大势所趋,但想用好它,真得有点『人机协作』的智慧。 别总想着让 AI 包办一切,把它当成一个需要引导的“聪明学徒”或“得力助手”,给足方向和框架,它才能真正帮你实现效率翻倍。