Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

systematic-thinking

陌生项目快速上手:从菜鸡到大师的代码库解剖术

这是什么

一个帮助你系统性理解任何陌生代码库的思维框架。不需要你是大牛——只需要你已经学过 Java 基础、JUC、操作系统、计算机网络。这套方法教你用已知推导未知,把零散的知识点串成体系。

什么时候用

  • 刚入职/实习,面对几百个文件的项目无从下手
  • 面试被要求介绍项目,不知道从何讲起
  • 想深入理解一个模块,但代码看了一遍还是懵
  • 学了一堆 API 和框架,但感觉它们之间没有联系

核心思路

不查文档,先猜;不看代码,先画图;不记 API,记它解决了什么问题。

1. 从 main() 切第一刀 → 画启动流程
2. 追一次完整数据流 → 用户输入到结果输出
3. 每个包一句话 → 这个包解决了什么问题?
4. 遇到不认识的 → 先用学过的类猜怎么实现
5. 深入模块 → 问题→武器→映射→取舍
6. 串知识网 → OS→网络→JUC→设计模式

文件说明

  • SKILL.md — 完整的方法论(可在 PaiCLI 中通过 load_skill("systematic-thinking") 加载)
  • architecture-guide.md — 以 PaiCLI 项目为例的完整架构分析(作为解剖示例)

示例:用这套方法分析 PaiCLI 的并发熔断

问题:4 个并发 Task,其中一个外部 HTTP hanging
  ↓
武器盘点(只用你学过的):
  ├─ Future.get(timeout)     → 课上学过,能感知超时
  ├─ Future.cancel(true)     → 课上学过,能发中断信号
  ├─ invokeAll(tasks, time)  → 课上学过,批量超时控制
  ├─ OkHttp readTimeout      → 计网学过,Socket 层超时
  └─ Process.destroyForcibly → OS 学过,杀子进程
  ↓
映射到问题 → 取舍分析 → 串成知识网

许可

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors