Think Before Coding(编程前思考)
Think Before Coding(编程前思考) 是一种编程实践原则,旨在解决大语言模型(LLM)在代码生成过程中常见的问题:做出错误假设、隐藏困惑、缺乏权衡考虑等。该原则强调在编写代码之前进行明确的推理和澄清。^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
核心理念
Think Before Coding 的核心理念是"不要假设,不要隐藏困惑,要呈现权衡"。这一原则直接针对 Andrej Karpathy 观察到的 LLM 编程陷阱:模型会代表用户做出错误假设,并在没有检查的情况下继续执行,它们不管理自己的困惑,不寻求澄清,不呈现不一致性,不展示权衡,在应该反驳时不反驳。^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
实践方法
明确陈述假设
当面临不确定性时,应该询问而不是猜测。LLM 经常会默默选择一种解释并继续执行,这种做法需要被明确的推理过程所取代。^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
呈现多种解释
当存在歧义时,不要默默选择,而应该呈现多种可能的解释供用户选择。^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
适时反驳
如果存在更简单的方法,应该明确指出。这有助于避免过度工程化的解决方案。^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
承认困惑
当遇到不清楚的情况时,应该停下来,明确指出什么不清楚,并寻求澄清。^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
与其他原则的关系
Think Before Coding 是四个核心原则之一,与以下原则协同工作:
- Simplicity First(简洁优先):解决过度复杂化和臃肿抽象的问题
- Surgical Changes(精准修改):解决正交编辑和触及不应修改代码的问题
- Goal-Driven Execution(目标驱动执行):通过测试优先和可验证的成功标准实现杠杆效应^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
效果验证
当 Think Before Coding 原则生效时,你会看到:
- 在实现之前出现澄清问题,而不是在犯错之后
- 减少因过度复杂化而需要重写的情况
- 更清晰的沟通和更少的误解^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
权衡考虑
这些指导原则倾向于谨慎而非速度。对于简单任务(简单的拼写错误修复、明显的单行代码),需要运用判断力——不是每个更改都需要完整的严格性。目标是减少非平凡工作中的代价高昂的错误,而不是拖慢简单任务。^[inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md]
来源
- inbox(剪藏进来的)__SMARTclip__forrestchang-andrej-karpathy-skills- A single CLAUDE.md file to improve Claude C__e35e9215.md