codecamp

3. AI编程核心基础:精准需求描述法则

Claude Code、Codex 与所有 AI 编程工具的核心用法一致:通过精准的自然语言描述,让 AI 生成符合预期的代码。模糊需求会导致代码偏差、无法运行,规范需求必须包含 5 大核心要素:功能细节、编程语言、输入输出规则、格式要求、异常处理。

正反示例对比:

  • ❌ 模糊需求:“用 Python 写一个登录功能”(无边界、无细节,AI 无法判定逻辑与场景)
  • ✅ 精准需求:“用 Python 写一个控制台版用户登录功能,固定账号密码(admin/123456),验证成功提示‘登录成功’,失败提示‘用户名或密码错误’,最多允许 3 次尝试,处理空输入、非预期字符输入异常”

3.1 五大核心要素落地解析

为避免零基础用户对术语理解模糊,对五大要素做通俗化解释并明确核心关注点,让需求描述的核心要点更易落地:

  1. 功能细节:明确「做什么 + 适用场景」,避免模糊表述,例:“批量处理文件”→“批量遍历指定文件夹的 CSV 文件,提取第 1/3 列数据并去重”
  2. 编程语言:明确具体开发语言 / 技术栈,若有版本要求需同步注明,例:“Python3.8+”“JavaScript(ES6)”“React18+TS”
  3. 输入输出规则:明确「输入来源(控制台 / 文件 / 参数 / 接口)+ 输出形式(控制台打印 / 文件保存 / JSON 返回 / 页面渲染)」,例:“输入为控制台手动输入的学生姓名,输出为控制台打印该学生的成绩信息”
  4. 格式要求:明确代码的编写规范、输出格式,例:“符合 PEP8 规范”“代码带详细注释”“输出为 Markdown 格式的报告”“模块化编写”
  5. 异常处理:明确需要处理的具体异常场景,而非笼统的 “处理异常”,例:“处理非数字输入 / 文件不存在 / 路径错误 / 空值入参异常”

3.2 高频场景精准需求描述模板

为让零基础用户实现 “照搬修改即可用”,针对 AI 编程入门阶段 3 类高频场景,制定标准化需求描述模板,覆盖控制台程序、自动化脚本、简单功能函数:

3.2.1 模板 1:控制台交互程序(计算器 / 登录 / 成绩管理 / 猜谜游戏)

通用模板:用「编程语言」写一个控制台版「功能名称」,实现「核心功能 1 + 核心功能 2」,输入为「控制台手动输入的内容」,输出为「控制台打印的指定格式结果」,处理「具体异常 1 + 具体异常 2」,限制「额外规则(如最多尝试次数 / 输入值范围)」。

实战示例:用 Python 写一个控制台版商品库存查询程序,实现库存查询 / 库存修改,输入为控制台手动输入的商品编号,输出为控制台打印 “商品名 + 当前库存 + 修改结果”,处理非数字编号输入 / 商品编号不存在异常,限制库存修改值为正整数。

3.2.2 模板 2:自动化脚本(文件处理 / 数据清洗 / 批量重命名)

通用模板:用「编程语言」写一个「功能名称」脚本,实现「核心操作(遍历 / 读取 / 修改 / 导出 / 重命名)」,处理「目标文件类型 / 文件夹路径」,输出为「保存至指定路径 + 指定文件格式」,处理「文件不存在 / 路径错误 / 空文件 / 无目标文件」异常,要求「代码带基础注释,可直接运行」。

实战示例:用 Python 写一个 TXT 文件合并脚本,实现遍历指定文件夹下的所有 TXT 文件,按文件名排序合并为一个新文件,输出为保存至原文件夹的 “all_merged.txt”,处理文件夹不存在 / 无 TXT 文件 / 文件读取失败异常,要求代码带基础注释,可直接运行。

3.2.3 模板 3:简单功能函数(计算 / 数据处理 / 格式转换)

通用模板:用「编程语言」写一个「函数名」函数,实现「核心计算 / 处理逻辑」,入参为「参数 1(类型)+ 参数 2(类型)」,返回值为「指定类型结果」,处理「入参类型错误 / 入参范围异常 / 空值入参」,要求「函数带文档字符串(说明功能 / 入参 / 返回值),添加详细注释」。

实战示例:用 JavaScript 写一个 calcAverage 函数,实现计算数组中所有数字的平均值,入参为数字类型数组,返回值为保留 2 位小数的浮点数,处理非数组入参 / 数组为空 / 数组含非数字元素的异常,要求函数带文档字符串,添加详细注释。

3.3 需求描述的 3 个进阶小技巧

贴合 AI 的语言理解逻辑,在五大要素基础上做简单优化,即可大幅提升 AI 输出代码的精准度,新手易掌握、易落地:

  1. 分点描述,短句为主:用数字序号拆分核心需求,避免冗长复杂的长句(AI 对分点内容的解析精度更高),例:用①②③拆分多个核心功能;
  2. 明确禁用要求:通过 “禁止 XX” 排除无关需求,减少 AI 输出偏差,例:“禁止使用第三方库”“禁止硬编码文件路径 / 密钥”“禁止修改原有业务逻辑”;
  3. 限定代码风格 / 体量:根据需求明确代码编写要求,例:“轻量化编写,无冗余代码”“模块化编写,按功能拆分函数”“符合团队 PEP8 编码规范”。

3.4 新手常见易错点提醒

直击零基础用户写需求时的高频问题,提前避坑,减少因需求描述问题导致的 AI 输出偏差:

  1. 遗漏具体异常场景:只说 “处理异常”,AI 大概率会忽略异常处理逻辑,代码易崩溃;
  2. 模糊技术栈 / 版本要求:如 “写一个前端登录页”,未说明 React/Vue/ 原生 JS,AI 生成的代码不符合预期;
  3. 未限定输入输出形式:如 “处理数据”,未说明输入来源和输出形式,AI 可能仅打印结果,无实际业务价值;
  4. 口语化表述过多:如 “写个能算东西的 Python 程序”,无明确功能和边界,AI 生成内容杂乱无章;
  5. 需求过于复杂:入门阶段避免一次提出多个无关的复杂需求,建议拆分需求,分步实现。
2. 工具注册与环境配置(实战必备)
4. 基础实战:代码生成、运行与调试优化
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }