再学 AI
第 43 课 / zoom-out
历史对照阅读 → 对照 → 问答 → 场景

历史对照:从代码细节回到系统关系

这份极短的历史技能要求提高一层抽象,画出相关模块及调用者,并使用领域语言。

历史文件,不在当前目录

本课使用下方注明的历史提交原文,帮助理解旧文章和旧提示词。请勿据此认定当前版本仍能直接调用该名称。

还不清楚 Skill、Agent、安装和调用?先读 从零开始的6节入门课

在关系图中查看 zoom-out 与其他技能的关联 →

先把必要的概念讲清楚

看不懂某段代码时,先退到更高一层理解相关模块与调用关系。这不是放弃细节,而是先建立能安放细节的整体结构。

下面是老师补充的入门说明;原作者的要求保留在中英对照正文中。所有例子均为帮助理解而构造的教学情境。

module|模块

承担一组相关职责的代码单元,可以是文件、包或服务,不必等于一个文件。学习进度模块可以公开“记录进度”和“查询进度”,把计算完成比例、保存数据等细节藏在内部。划分是否合理,要看职责和依赖,不能只数文件。

interface / API|接口

使用者与一项能力交互时遵循的约定,包括可调用什么、传入什么、得到什么、失败怎样表示。接口可以是程序函数,也可以是网络请求。创建收藏接口接收用户和课程信息、返回收藏结果;它不需要向调用者暴露数据库表结构。这里的接口通常不是指页面外观。 本教材涉及更广义的“接口”时,还包括错误、调用顺序和约束等使用约定;不能把接口一概等同于网络 API。

domain glossary|业务领域术语表

规定项目的重要概念叫什么、指什么。domain 在这里是业务领域,不是互联网域名。课程是一组课时,课时是一份学习内容;混用会把“收藏课程”实现成“收藏某一课时”。统一语言不仅统一拼写,还统一概念边界。

读原文,理解每一步为什么这样做

左右内容按小节对应;窄屏先中文、后英文。两种语言均完整展示,对应讲解紧接在小节之后。译文传达原文要求;老师讲解补充概念、原因、例子与适用边界。

中文译文English · 英文原文
中文译文
name: zoom-out
description: "请 Agent 提高一层抽象,使用项目领域语言梳理相关模块与调用者。"
disable-model-invocation: true
English · 英文原文
name: zoom-out
description: Ask the agent to zoom out a level and map the relevant modules and callers using the project's domain language.
disable-model-invocation: true
中文译文

我对这部分代码还不熟悉。请先把观察层次提高一级,暂时离开局部实现细节。用项目业务术语表中的名称,为我说明所有相关模块以及它们的调用方,让我先看清这些部分怎样配合。

English · 英文原文

I don't know this area of code well. Go up a layer of abstraction. Give me a map of all the relevant modules and callers, using the project's domain glossary vocabulary.

老师讲解 · 对应上方原文 · 含教学举例

抽象层级是解释单位的大小

逐行代码层面,你可能看到许多变量和函数;模块层面,你看到“学习记录输入—进度计算—结果保存—页面展示”。后者更适合先理解系统承担的职责。

**例子:**你问收藏数据怎样流动,AI 应说明页面调用哪个公开入口、谁检查用户身份、谁保存、谁读取显示,而不是一开始贴 200 行代码。

地图需要包含相关调用者,才能看见改某一模块会影响谁。使用领域术语表,是让图里的“课时”“课程”与需求同义,不是给内部缩写画漂亮框。

讲清模块关系后,再选一个节点深入。这种先总后分的学习方式有助于减少无处安放的术语,但地图本身仍要依据真实代码,不能按常见架构想象。

先看整体关系,才能理解某个函数为什么存在

假设你正在看 saveFavorite,却不知道它从哪里被调用。逐行解释语法,可能仍然不能回答“为什么需要用户编号”。

提高一层后,应先说明:页面发起收藏请求,后端识别用户,收藏模块决定如何保存,数据存储保留结果。再指出当前函数负责哪一步。

调用方就是使用这个函数或模块的地方。找出调用方,可以判断一次修改影响哪些功能。“相关模块”不等于列出全仓库文件名;图或说明应围绕当前问题,让你明白职责、输入与结果的关系。

原作者:Matt Pocock · 中文翻译为非官方译本

来源:skills/engineering/zoom-out/SKILL.md ↗

固定版本:221ffca96736afefdc08ca7cf0b3965e9ea83f41

先作答,再看参考思路

Q1 · 理解

用自己的话说明:它解决什么问题,完成后会留下什么?

请各用一句话回答。若它只做规划或解释,不要把“已开发”“已部署”写成产物。

Q2 · 判断

一张漂亮架构图怎样才能成为可靠的学习材料?

我已思考,查看参考思路

每个节点和关系应能对应真实模块或流程,并说明范围与省略之处。图形整齐不能替代依据。

Q3 · 追问

原文中哪条要求在你的环境下可能不成立?

说出具体一句及其前提,例如工具不可用、资料缺失、已有项目约定冲突,或它只是作者偏好。把你的答案带回课堂,我们据此继续讨论。

课堂回传格式:第 43 课 / 我的理解 / Q2 回答 / 仍不理解的原句。这里是阅读教材;实时问答在我们的对话中进行。

把方法放进一个具体情境

教学案例:与其先讲十个解析函数,可以先说明“资料读取—证据核验—讲义生成—页面显示”。随后追踪一份资料怎样成为一篇课文,读者才有定位细节的地图。

边界与容易误读的地方

抽象图必须来自真实代码,而不能只画理想架构。它不负责重构,也不自动找全仓库所有关系。

讨论后再实践:先判断上述情境是否适用,再选择真实任务。现在无需安装、运行命令或修改现有项目。

关联阅读