🎯 学完这课你能
- 看懂项目文件夹结构,知道每个目录是干什么的
- 区分配置文件、源代码、静态资源
- 用你的绩效系统做实战导览
这课真正要练的,不是背一堆术语。
你要练的是一种判断力:以后看到任意一个文件时,先能分清它是写界面的、写逻辑的、存配置的,还是放密钥的;再判断它会影响什么、谁会读取它、出了问题该先去哪里找。
项目文件夹 = 公司组织架构
你打开一个项目文件夹时,看到一堆乱七八糟的文件和目录,是不是觉得像第一天入职走进一家新公司——完全不知道谁是谁、谁管什么?
其实,项目的文件结构就像公司的组织架构图。每个文件夹是一个"部门",每个文件是一个"岗位"。一旦你理解了这张图,你就知道出了问题该找谁。
公司 = 项目根目录
部门 = 文件夹(src, components, pages...)
员工档案 = 具体文件(.js, .ts, .css, .html...)
岗位说明书 = 配置文件(package.json, tsconfig.json...)
先找“公司大门”
先确认自己是不是在项目根目录。这里通常会放 package.json、.env、README 这类总控文件。
再分“部门”和“岗位”
文件夹解决“这块功能归谁管”,文件解决“具体是谁在干活”。目录名告诉你范围,文件后缀告诉你职责。
遇到报错先追路径
只要报错里出现了路径,先去打开那个文件和它所在目录。路径通常比“错误名字”更能告诉你问题发生在哪一层。
不认识文件别慌
先看后缀,再看它待在什么目录里。后缀告诉你类型,位置告诉你上下文,两者一起看才不会误判。
你的绩效项目长什么样
让我们看看你做的 jixiao(绩效考评系统)项目的结构:
常见文件类型速查
只记“这个后缀像哪个公司岗位”还不够。真正有用的是:你看到它时,知道它通常放在哪、主要解决什么问题、最容易踩什么坑。
这些文件主要负责“让程序做事”——处理逻辑、状态、事件、接口调用。.tsx 只是多了“能写界面标签”的能力,不代表它比 .ts 更高级。
- 你会在哪看到
src/、app/、components/、api/ 这类业务目录里最常见。
- 新手最容易误解一看到这里报错就以为“代码全坏了”。其实很多时候只是某个变量没传对、某个判断条件写错了。
- 看到它先怎么判断如果问题是“按钮没反应、数据没显示、逻辑跑偏”,优先看这类文件,而不是先去找样式。
记忆动作:看见 .ts / .tsx,先想“这里决定程序怎么动”。
它们负责“页面看起来怎样”——颜色、间距、字体、布局、动画。页面丑、挤、错位,通常先怀疑这里。
- 你会在哪看到
styles/、app/globals.css,或者跟组件放在一起的局部样式文件。
- 新手最容易误解把所有视觉问题都归因于组件代码。很多时候逻辑是对的,只是样式把元素藏起来了、挤歪了、透明了。
- 看到它先怎么判断如果问题是“内容在,但显示不对”,先看样式;如果是“数据压根没来”,再去看代码逻辑。
记忆动作:看见 .css,先想“这里决定它怎么长、怎么摆”。
HTML 负责页面的骨架:哪里有标题、哪里有按钮、哪里有表单。它定义“页面有什么”,不负责“它好不好看”。
- 你会在哪看到静态网页项目最常见;在 React / Next.js 项目里,它的结构职责常常被
.tsx 组件接过去。
- 新手最容易误解以为任何网页项目都有一堆
.html 文件。其实很多现代项目已经不用单独写大量 HTML 了。
- 看到它先怎么判断如果是传统静态页,少了某个区块先看这里;如果是 React 项目,更多要去找组件文件。
记忆动作:看见 .html,先想“这里决定页面骨架里有没有这块东西”。
JSON 不是“程序在干活”,而是在告诉程序“应该按什么规则干活”或者“这里有一份结构化数据”。
- 你会在哪看到
package.json、tsconfig.json、配置文件、假数据文件都很常见。
- 新手最容易误解把它当成普通文档随便改格式。JSON 对逗号、引号、括号很敏感,少一个字符都可能直接报错。
- 看到它先怎么判断如果问题是“项目配置不生效、命令跑不起来、某些参数不对”,优先查这类文件。
记忆动作:看见 .json,先想“这里更像制度表,不是业务执行现场”。
Python 文件说明这个项目里有另一套运行环境,常见于自动化脚本、数据处理、后端服务,不一定直接负责网页界面。
- 你会在哪看到自动化工具、数据脚本、机器人、后端接口项目里很常见。
- 新手最容易误解以为只要看到 Python 就和当前网页无关。其实很多网页背后的数据清洗、定时任务、接口服务都可能是 Python 写的。
- 看到它先怎么判断如果问题发生在脚本执行、定时任务、数据导入导出,不要只盯着前端页面,也要回头查 Python 文件。
记忆动作:看见 .py,先想“这里可能是另一条后台工作流”。
这里通常放账号、密码、API Key、数据库地址等敏感信息。程序启动时会读它,但它绝对不该被公开上传。
- 你会在哪看到项目根目录最常见,有时还会分成
.env.local、.env.production 这类不同环境的版本。
- 新手最容易误解只把它当“一个普通文本文件”。实际上这里的每一行都可能决定项目能不能连上数据库、能不能调用外部 API。
- 看到它先怎么判断如果问题是“权限不对、密钥无效、连接不上服务”,优先检查这里,同时确认它有没有被错误提交到公开仓库。
记忆动作:看见 .env,先想“这是保险柜,不懂别乱贴出去,改完常常还要重启服务”。
不要只看后缀,还要看位置。
同样是 page.tsx 和 Button.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?