借助AI写代码来练手,很多人一开始就想挑战大项目,结果AI直接输出一个“完整系统”,连登录页面和数据库接口全部包含,你盯着屏幕只想问:“我只是想练练手,不是要给自己压力测试啊!”——任务颗粒度过大,容易失控,这是常见问题。
如何破解这个问题?核心原则只有一个:将大任务拆解为针对单个技术点的最小可执行指令。
首先检查当前提示词是否包含隐性大任务指令
找出最近一次失败的提示词,逐一扫描每个关键词,看看是否出现“完整系统”“全流程”“包含前后端”“部署上线”等字眼——哪怕出现一个,MarsCode就会默认你需要一个可运行的产品,而非单点技能训练。
果断删除这些超出练习范围的修饰词。举例来说:把“做一个用户管理功能”改为“只编写一个验证邮箱格式是否合法的JavaScript函数”。
使用“三阶缩粒法”强制拆解任务
第一步:写下原始目标,例如“实现登录功能”。
第二步:问自己“在这个功能里,哪一行代码是我今天最不熟悉、最想仔细研究它如何运行的?”答案可能是“JWT token解析逻辑”或“密码明文如何进行安全比对”。【必须锁定唯一技术点,不能写‘登录流程’这样的复合概念】
第三步:将该技术点转化为最小可执行指令,例如:“用Node.js的crypto模块,编写一段代码,输入base64编码的JWT payload字符串,输出解析后的JSON对象(不校验签名)”。
完成这三步后,原本模糊的“练练手”就变成了一个具体到可以直接动手敲代码的任务。
给MarsCode添加“沙盒约束”提示词
方法一:在提示词开头加上固定前缀
“请严格按以下规则响应:①只输出一个文件;②代码行数≤30;③不包含console.log以外的任何输出;④不调用外部API或require未明确指定的包。”
方法二:使用角色限定来缩小输出范围
“你现在是一名前端新手练习助手,只负责教授React useState基础用法。请用1个组件实现:点击按钮后,数字从0变成1,再点击变2,仅此功能。”
注意:角色描述越具体,MarsCode越不容易偏离方向。写“编程助手”不如写“Vue 3 Composition API单项练习教练”。
验证拆分是否成功的唯一标准
将改写后的提示词输入MarsCode,如果返回的结果能让你在5分钟内读完、理解、手动敲一遍并运行通过,就说明拆分合格;如果看到代码第一眼就想查文档、翻教程、怀疑自己环境没配置好,说明任务仍然太大了。
简单粗暴的判断标准:练手,就应该让结果在喝口水的功夫里落地。
