社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

【第3573期】初高级开发者:如何使用 ChatGPT 编程(关键区别解析)

前端早读课 • 11 月前 • 236 次点击  

前言

探讨了初级开发者和高级开发者在使用 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、再请求代码

示例:

根据推荐的设计,生成一个最小可行实现方案:

  • 接口和类型定义
  • 不超过 80 行的小规模实现代码
  • 覆盖所列场景的 Jest 测试
  • 在代码中用注释解释关键设计决策,确保从概念上能通过 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)

背景
  • 技术栈:TypeScript + Axios
  • 需求:开发一个工具来遍历 API 返回的 { items, nextCursor } 数据
  • 约束条件:
    • 当收到 429 响应时执行退避(backoff)
    • 到达最大条数时停止
    • 以惰性方式(lazy)逐条返回数据
高级开发者式的请求(简化版)
  • 请提出两种设计方案(迭代器 vs 回调),并说明优缺点。
  • 选择其中一个,定义接口和类型。
  • 生成最小实现(<80 行),并写 Jest 测试(错误、429、最后一页情况)。
  • 列出需要的日志和监控指标,并说明内存使用注意事项。
为什么这样有效?
  • 你强制提出多种设计方案 → 避免了盲目写代码
  • 测试与退避逻辑是前置条件 → 而不是事后补救
  • 实现规模足够小 → 易于审查和快速上线
如何像高级开发者一样衡量进步?
  • PR 质量指标:更少的评审轮次、更小的代码差异、更清晰的解释
  • 缺陷率:更少的合并后修复,因为测试优先
  • 信心建立速度:更快,因为有测试和设计推理作证
  • 可复用性:产出的工具和模式可以在后续任务中继续使用
  • 团队采纳度:同事会借用你的提示词和清单
一份可随手放在编辑器旁的清单
  • 我提供了上下文背景信息(技术栈、版本、仓库结构、代码风格、约束条件)
  • 我要求了设计选项和推荐方案
  • 我先要接口 / 类型,再写完整代码
  • 我要求测试(正常路径 + 边界情况)和验证计划
  • 我要求风险与缓解措施,以及性能说明
  • 我集成时保持最小补丁,确保通过 lint/CI
  • 我写了 ADR(架构决策记录)和文档注释
  • 我执行了 “红队审查” 步骤

最后思考

从初级到高级的跨越,并不是某个神奇的提示词,而是一种思维方式。

【早说】设计与工程思维

把 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

这期前端早读课
对你有帮助,帮” 
 “一下,
期待下一期,帮”
 在看” 一下。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185779