代码世界的地图

Track A: 工程化 ~15 分钟

🎯 学完这课你能

这课真正要练的,不是背一堆术语。
你要练的是一种判断力:以后看到任意一个文件时,先能分清它是写界面的、写逻辑的、存配置的,还是放密钥的;再判断它会影响什么、谁会读取它、出了问题该先去哪里找。

项目文件夹 = 公司组织架构

你打开一个项目文件夹时,看到一堆乱七八糟的文件和目录,是不是觉得像第一天入职走进一家新公司——完全不知道谁是谁、谁管什么?

其实,项目的文件结构就像公司的组织架构图。每个文件夹是一个"部门",每个文件是一个"岗位"。一旦你理解了这张图,你就知道出了问题该找谁。

公司 = 项目根目录
部门 = 文件夹(src, components, pages...)
员工档案 = 具体文件(.js, .ts, .css, .html...)
岗位说明书 = 配置文件(package.json, tsconfig.json...)

先找“公司大门”

先确认自己是不是在项目根目录。这里通常会放 package.json.envREADME 这类总控文件。

再分“部门”和“岗位”

文件夹解决“这块功能归谁管”,文件解决“具体是谁在干活”。目录名告诉你范围,文件后缀告诉你职责。

遇到报错先追路径

只要报错里出现了路径,先去打开那个文件和它所在目录。路径通常比“错误名字”更能告诉你问题发生在哪一层。

不认识文件别慌

先看后缀,再看它待在什么目录里。后缀告诉你类型,位置告诉你上下文,两者一起看才不会误判。

你的绩效项目长什么样

让我们看看你做的 jixiao(绩效考评系统)项目的结构:

performance-review/ src/app/ 🏢 "业务部门" components/ 🧱 "通用零件库" prisma/ 📁 "档案室设计图" page.tsx 📄 页面 layout.tsx 🏗 布局框架 -- 配置文件区 -- package.json 📋 "人员编制表" tsconfig.json 📐 "工作规范" .env 🔐 "密码本" 💡 速记 src/app/ → 页面和业务逻辑(前台接待、业务处理) components/ → 可复用组件(标准化的表格、按钮模板) prisma/ → 数据库结构定义(档案室的柜子怎么摆) package.json → 项目依赖清单(需要哪些外包团队)

常见文件类型速查

只记“这个后缀像哪个公司岗位”还不够。真正有用的是:你看到它时,知道它通常放在哪、主要解决什么问题、最容易踩什么坑。

JS
源码文件

.js / .ts / .tsx

这些文件主要负责“让程序做事”——处理逻辑、状态、事件、接口调用。.tsx 只是多了“能写界面标签”的能力,不代表它比 .ts 更高级。

  • 你会在哪看到src/app/components/api/ 这类业务目录里最常见。
  • 新手最容易误解一看到这里报错就以为“代码全坏了”。其实很多时候只是某个变量没传对、某个判断条件写错了。
  • 看到它先怎么判断如果问题是“按钮没反应、数据没显示、逻辑跑偏”,优先看这类文件,而不是先去找样式。
记忆动作:看见 .ts / .tsx,先想“这里决定程序怎么动”。
CSS
样式文件

.css / .scss

它们负责“页面看起来怎样”——颜色、间距、字体、布局、动画。页面丑、挤、错位,通常先怀疑这里。

  • 你会在哪看到styles/app/globals.css,或者跟组件放在一起的局部样式文件。
  • 新手最容易误解把所有视觉问题都归因于组件代码。很多时候逻辑是对的,只是样式把元素藏起来了、挤歪了、透明了。
  • 看到它先怎么判断如果问题是“内容在,但显示不对”,先看样式;如果是“数据压根没来”,再去看代码逻辑。
记忆动作:看见 .css,先想“这里决定它怎么长、怎么摆”。
HTML
结构文件

.html

HTML 负责页面的骨架:哪里有标题、哪里有按钮、哪里有表单。它定义“页面有什么”,不负责“它好不好看”。

  • 你会在哪看到静态网页项目最常见;在 React / Next.js 项目里,它的结构职责常常被 .tsx 组件接过去。
  • 新手最容易误解以为任何网页项目都有一堆 .html 文件。其实很多现代项目已经不用单独写大量 HTML 了。
  • 看到它先怎么判断如果是传统静态页,少了某个区块先看这里;如果是 React 项目,更多要去找组件文件。
记忆动作:看见 .html,先想“这里决定页面骨架里有没有这块东西”。
JSON
配置 / 数据

.json

JSON 不是“程序在干活”,而是在告诉程序“应该按什么规则干活”或者“这里有一份结构化数据”。

  • 你会在哪看到package.jsontsconfig.json、配置文件、假数据文件都很常见。
  • 新手最容易误解把它当成普通文档随便改格式。JSON 对逗号、引号、括号很敏感,少一个字符都可能直接报错。
  • 看到它先怎么判断如果问题是“项目配置不生效、命令跑不起来、某些参数不对”,优先查这类文件。
记忆动作:看见 .json,先想“这里更像制度表,不是业务执行现场”。
PY
脚本 / 后端

.py

Python 文件说明这个项目里有另一套运行环境,常见于自动化脚本、数据处理、后端服务,不一定直接负责网页界面。

  • 你会在哪看到自动化工具、数据脚本、机器人、后端接口项目里很常见。
  • 新手最容易误解以为只要看到 Python 就和当前网页无关。其实很多网页背后的数据清洗、定时任务、接口服务都可能是 Python 写的。
  • 看到它先怎么判断如果问题发生在脚本执行、定时任务、数据导入导出,不要只盯着前端页面,也要回头查 Python 文件。
记忆动作:看见 .py,先想“这里可能是另一条后台工作流”。
ENV
敏感配置

.env

这里通常放账号、密码、API Key、数据库地址等敏感信息。程序启动时会读它,但它绝对不该被公开上传。

  • 你会在哪看到项目根目录最常见,有时还会分成 .env.local.env.production 这类不同环境的版本。
  • 新手最容易误解只把它当“一个普通文本文件”。实际上这里的每一行都可能决定项目能不能连上数据库、能不能调用外部 API。
  • 看到它先怎么判断如果问题是“权限不对、密钥无效、连接不上服务”,优先检查这里,同时确认它有没有被错误提交到公开仓库。
记忆动作:看见 .env,先想“这是保险柜,不懂别乱贴出去,改完常常还要重启服务”。
不要只看后缀,还要看位置。
同样是 page.tsxButton.tsx,前者大概率是整页入口,后者更像可复用零件。后缀告诉你“它是哪种文件”,目录告诉你“它在系统里担什么角色”。

看到一个文件,先问自己四个问题

1. 这是给谁看的?

给用户看的界面文件,还是只给程序读的配置文件?先分清“面向人”还是“面向机器”。

2. 它主要影响什么?

影响样式、逻辑、数据结构,还是访问权限?这决定你排查问题时先去哪里找。

3. 这类文件常见风险是什么?

源码常见逻辑 bug,JSON 常见格式错误,.env 常见密钥缺失或泄露,别把每种文件都当成同一种问题。

4. 改它会不会影响别处?

改样式通常影响显示,改配置可能影响整个项目启动,改密钥可能影响所有外部服务连接。

"路径"是什么?

当 Claude Code 说 src/app/page.tsx 的时候,它在说一个路径(path)——就像公司里的"位置描述":

src/app/page.tsx 相当于:
"公司 → 业务部 → 前台页面岗"

/Users/wepie/Desktop/项目/jixiao/performance-review/src/app/page.tsx
这是完整地址,从"地球"开始定位——就像写快递地址从国家写起。

./src/app/page.tsx
这是相对地址,从"当前位置"开始——就像说"从前台往左走到底"。

为什么这很重要? 当 CC 报错说 "找不到 ./components/Button",你就知道——它在当前目录下找一个叫 components 的文件夹里的 Button 文件,但没找到。可能是路径写错了,或者文件确实不存在。

🎮 练习:把文件拖到正确的"部门"

把左边的文件拖到右边对应的文件夹中

page.tsx (页面组件)
schema.prisma (数据模型)
Button.tsx (按钮组件)
.env (API密钥)
src/app/ ← 拖到这里
prisma/ ← 拖到这里
components/ ← 拖到这里
项目根目录 ← 拖到这里

📝 小测验

当 Claude Code 说 "Error in src/components/Header.tsx:42",这意味着什么?

📝 小测验 2

以下哪个文件绝对不能上传到 GitHub?

← 课程目录 第 2 课:读懂报错 →