前言
探讨了初级开发者和高级开发者在使用 ChatGPT 编程时的不同方式,并提供了如何提升使用 ChatGPT 编程水平的建议。今日前端早读课文章由 @Er Raj Aryan 分享,@飘飘编译。
译文从这开始~~
探索初级和高级开发者在使用 ChatGPT 编程时的真实差异。学习高级开发者在设计上的思维方式和实践方法。
初级开发者 vs 高级开发者在使用 ChatGPT 编程时的区别(以及如何提升自己)
初级 vs 高级
初级开发者通常会直接让 ChatGPT “写代码”,然后再对其进行修改;而高级开发者则把 ChatGPT 当作一个 “思考伙伴”,用于帮助设计、验证、处理边界情况和维护。
区别不在于工具的使用权限,而在于 意图、拆解问题的方式、验证过程,以及如何把结果融入系统。
【第3564期】从“物造”到“改善”:开发者的独特编程之道
为什么写这份指南?
我经常看到大家在问同一个问题:
“我使用 ChatGPT 的方式,和高级工程师一样吗?”
这份指南整理了在实际团队、工程博客和公开案例中常见的模式,并把它们转化为可立刻实践的工作流程,而不是空洞的 “提高提示词质量” 的建议。
一句话总结核心差异
- 初级开发者的模式是:“生成一段能实现 X 功能的代码。”
- 高级开发者的模式是:“帮我探索设计方案、权衡利弊、生成一个最小可测试的实现,并验证它是否符合约束条件。”
这一点转变,会从根本上改变:你如何写提示词,以及你最终代码的可靠性。
高级开发者风格的提示模式
1、先提出设计需求
示例:
“你是一名资深工程师,正在协助设计一个解决方案。背景:我们正在使用 Node.js 构建一个受速率限制的 API 客户端,用于访问一个每分钟 100 次请求的第三方服务。我们用 TypeScript、Axios、Jest,并遵循 ESLint + Prettier。
约束条件:必须能处理突发流量、支持指数退避重试、幂等键、熔断机制。
任务:请给出 2–3 种设计方案,并列出优缺点(延迟、复杂度、可测试性)。推荐一个最佳方案,并提供一个最小接口定义和测试清单(包含正常路径、边界情况、失败场景)。”
2、再请求代码
示例:
根据推荐的设计,生成一个最小可行实现方案:
- 在代码中用注释解释关键设计决策,确保从概念上能通过
npm run test。
3、最后进行验证和优化
示例:
请审查实现,找出可能的竞态条件、退避逻辑是否正确、超时处理是否合理。再提供一个简单的性能测试方案,以及如何埋点监控指标。
这个顺序迫使模型先思考,再写代码,最后验证 —— 这正是高级开发者的思维流程。
实例对比:同一个任务,不同的结果
任务:写一个函数来验证邮箱并返回域名
初级开发者风格的提示
写一个 JavaScript 函数来验证邮箱并返回域名。
可能的结果
- 一个依赖正则的函数,遗漏不少边界情况(如国际化域名、注释、不常见但合法的格式);
高级开发者风格的提示
考虑到 RFC 5322 的复杂性和实际需求:
目标:用于用户注册时的邮箱验证(不严格遵循 RFC),允许国际化域名,并能提取域名。
语言 / 技术栈:TypeScript,严格模式。
约束条件:性能合理、代码可读。需要 5 个单元测试,覆盖国际化域名,并说明不支持哪些情况以及原因。
交付内容:函数 + 类型定义 + 测试 + 简短说明(正则 vs 库的取舍理由)。”
可能的结果
高级开发者可以用 ChatGPT 练习的技能
上下文包装(Context Packaging)
- 提供的信息包括:语言、框架、版本、lint 规则、类型严格度、CI、目标平台、性能预算、安全约束。
拆解能力(Decomposition)
- 将流程拆分为:设计 → 接口 → 测试 → 代码 → 验证 → 文档 → 集成。
基于证据的验证(Evidence-Driven Verification)
- 始终要求:单元测试、基于性质的测试(适用时)、微型基准测试计划、边界情况清单。
权衡思维(Trade-off Thinking)
要求模型提供 2–3 种方案,并给出优缺点(如:简洁 vs 可扩展、内存 vs 延迟、可读性 vs 性能)。
仓库上下文意识(Repository Awareness)
- 提供文件树、package.json 脚本、类型定义和关键接口。
运维考虑(Operational Concerns)
提示 ChatGPT 添加日志、指标和运行手册:在代码中加上调试 / 信息 / 警告 / 错误日志,并设计一个包含 5 个关键指标的仪表盘草案。
文档挂钩(Documentation Hooks)
如果要更改行为:文档注释(docstrings)、架构决策记录(ADR)、迁移指南(在行为变更时)。
可直接使用的提示词
“设计优先” 系统提示(Design-First)
请作为一名资深工程师行事。优先保证设计清晰度、约束条件、权衡点和可验证性,而不是单纯追求代码量。如果缺少关键信息,请列出最重要的 5 个问题,它们会改变设计方向。
“验收清单” 提示(Acceptance Checklist)
在开始编码之前,给我一个‘完成’清单:测试覆盖、边界情况、性能预算、安全问题、文档更新、依赖影响。
“仅补丁” 提示(Patch-Only)
给定文件树和 lint 规则,请只输出需要修改的文件的最小补丁。保持函数小而清晰、严格类型化,并添加文档注释。同时生成相应的测试文件补丁。
“代码红队” 提示(Red-Team My Code)
请对以下实现代码进行批评。列出正确性风险、并发陷阱、性能热点和变量命名歧义。提出具体修复方案,并补充 5 个会失败的测试用例。
初级开发者常犯的错误(以及解决方法)
- 1、请求信息不完整 → 提前给出约束条件和成功标准。
- 2、过度依赖生成的代码 → 先要求测试,把代码当作草稿,而不是绝对可靠的结果。
- 3、缺少仓库上下文 → 分享文件树、工具链和接口,请求最小补丁而不是整块代码。
- 4、忽略权衡 → 要求多种方案,并解释选择理由,同时记录未采用的方向。
- 5、错误处理薄弱 → 从一开始就提示 ChatGPT 考虑失败模式、重试逻辑、幂等性和可观测性。
高级开发者的防护措施
- 设置复杂度预算:函数保持在 40 行以内,优先纯函数。
- 强制风格 / 类型规范:符合 ESLint/Prettier,使用严格的 TypeScript 类型。
- 安全检查:列出可能的注入点或不安全解析,并修复它们。
- 性能说明:估算时间 / 空间复杂度,并给出一个微基准测试计划。
- 文档 & ADR:添加一个 10 行的架构决策记录,简要说明决策和备选方案。
小型案例研究:API 分页工具(API Pagination Helper)
背景
- 需求:开发一个工具来遍历 API 返回的
{ items, nextCursor } 数据
高级开发者式的请求(简化版)
- 请提出两种设计方案(迭代器 vs 回调),并说明优缺点。
- 生成最小实现(<80 行),并写 Jest 测试(错误、429、最后一页情况)。
- 列出需要的日志和监控指标,并说明内存使用注意事项。
为什么这样有效?
如何像高级开发者一样衡量进步?
- PR 质量指标:更少的评审轮次、更小的代码差异、更清晰的解释
- 可复用性:产出的工具和模式可以在后续任务中继续使用
一份可随手放在编辑器旁的清单
- 我提供了上下文背景信息(技术栈、版本、仓库结构、代码风格、约束条件)
最后思考
从初级到高级的跨越,并不是某个神奇的提示词,而是一种思维方式。
【早说】设计与工程思维
把 ChatGPT 当作系统思考的助手,而不是代码贩卖机。
当你始终前置约束条件、要求证据、并严格把结果融入工作流时,你产出的成果自然会带有高级工程师的特质 —— 因为这就是高级的做法。
加分提示:一条可直接用的全能提示词
你是一名资深工程师。给定以下仓库上下文,请为所需功能提出 2 种设计方案并分析权衡,推荐一个方案,定义接口和测试,然后生成最小的 TypeScript 补丁和 Jest 测试。请包含风险与缓解措施表格、复杂度估算,以及一份 10 行的 ADR。如果有任何假设可能影响设计,请提出 5 个澄清问题。保持函数简短并使用严格类型,遵守 ESLint/Prettier,确保代码易于审查。
今天就能用,明天可以继续改进。
这就是高级开发者使用 AI 的方式。
关于本文
译者:@飘飘
作者:@Er Raj Aryan
原文:https://er-raj-aryan.medium.com/junior-vs-senior-developers-how-they-use-chatgpt-for-coding-key-differences-explained-5e2b669d4a01
这期前端早读课
对你有帮助,帮” 赞 “一下,
期待下一期,帮” 在看” 一下。