差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 后一修订版 | 前一修订版 | ||
| 实战 [2026/03/20 14:39] – 创建 张叶安 | 实战 [2026/03/27 14:15] (当前版本) – 张叶安 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | 如果是小项目 / 单文件 | + | [[实战: |
| - | 1. 看程序入口 | + | [[实战: |
| - | 2. 看主流程 | ||
| - | 3. 再看具体函数实现 | ||
| - | 4. 最后看细节 | ||
| - | |||
| - | 如果是大型项目(重点) | ||
| - | |||
| - | 正确顺序应该是: | ||
| - | |||
| - | 🔹 第一步:看整体结构 | ||
| - | - 项目目录结构 | ||
| - | - 模块划分 | ||
| - | - 依赖关系 | ||
| - | - README | ||
| - | - 配置文件 | ||
| - | |||
| - | |||
| - | 理解: | ||
| - | |||
| - | - 这个项目是干什么的? | ||
| - | - 核心模块在哪? | ||
| - | - 入口在哪? | ||
| - | |||
| - | 🔹 第二步:找到入口 | ||
| - | |||
| - | 不同语言入口不同: | ||
| - | |||
| - | 语言 入口 | ||
| - | Python main / app.py | ||
| - | Java main() | ||
| - | C/ | ||
| - | 前端 index.js / main.js | ||
| - | SpringBoot @SpringBootApplication | ||
| - | Node server.js | ||
| - | |||
| - | 🔹 第三步:画调用链 | ||
| - | |||
| - | 比如: | ||
| - | |||
| - | isbl | ||
| - | main() | ||
| - | | ||
| - | | ||
| - | | ||
| - | ├── route_a() | ||
| - | └── route_b() | ||
| - | |||
| - | 👉 你要搞清楚的是 调用流程 | ||
| - | |||
| - | 而不是细节。 | ||
| - | |||
| - | 🔹 第四步:看核心逻辑 | ||
| - | |||
| - | 不要一开始钻算法细节。 | ||
| - | |||
| - | 先问自己: | ||
| - | |||
| - | - 数据从哪里来? | ||
| - | - 数据怎么流动? | ||
| - | - 数据怎么被处理? | ||
| - | - 最终输出是什么? | ||
| - | |||
| - | 这叫: | ||
| - | |||
| - | ✅ 数据流思维 | ||
| - | |||
| - | 🔹 第五步:最后才看难点函数 | ||
| - | |||
| - | 比如: | ||
| - | |||
| - | - 复杂算法 | ||
| - | - 递归 | ||
| - | - 多线程 | ||
| - | - 网络逻辑 | ||
| - | |||
| - | 二、怎么做代码笔记(非常关键) | ||
| - | |||
| - | 代码笔记不能写成“代码翻译”。 | ||
| - | |||
| - | ❌ 错误方式: | ||
| - | |||
| - | 第10行:定义了一个变量x | ||
| - | |||
| - | 第11行:x加1 | ||
| - | |||
| - | 第12行:输出x | ||
| - | |||
| - | 这种没意义。 | ||
| - | |||
| - | ✅ 正确做代码笔记的方法 | ||
| - | |||
| - | 我推荐 4 层笔记法: | ||
| - | |||
| - | 🧠 第一层:一句话总结模块 | ||
| - | 例如: | ||
| - | |||
| - | auth.py:负责用户认证 | ||
| - | |||
| - | db.py:数据库操作封装 | ||
| - | |||
| - | router.py:接口路由 | ||
| - | |||
| - | 🧠 第二层:核心流程图(文字版) | ||
| - | 例如: | ||
| - | |||
| - | 用户登录流程: | ||
| - | |||
| - | 前端提交账号密码 | ||
| - | ↓ | ||
| - | 后端验证 | ||
| - | ↓ | ||
| - | 查询数据库 | ||
| - | ↓ | ||
| - | 生成token | ||
| - | ↓ | ||
| - | 返回前端 | ||
| - | |||
| - | 🧠 第三层:关键函数说明 | ||
| - | |||
| - | 格式建议: | ||
| - | |||
| - | 函数名:login(user, | ||
| - | |||
| - | 作用: | ||
| - | |||
| - | 验证用户并生成token | ||
| - | |||
| - | 输入: | ||
| - | |||
| - | user: 用户名 | ||
| - | |||
| - | password: 密码 | ||
| - | |||
| - | 输出: | ||
| - | |||
| - | token字符串 | ||
| - | |||
| - | 关键逻辑: | ||
| - | - 查询数据库 | ||
| - | - 比对密码 | ||
| - | - JWT生成 | ||
| - | |||
| - | 🧠 第四层:不懂点记录 | ||
| - | |||
| - | 专门记录: | ||
| - | |||
| - | 不懂: | ||
| - | | ||
| - | - JWT加密机制 | ||
| - | - 为什么这里要加锁? | ||
| - | - 线程池怎么管理? | ||
| - | |||
| - | 然后单独研究。 | ||