补全:按顺序列出要做的
(RULES 里每个目标记着它的依赖和命令;stale(目标) 判它要不要重做:目标不存在、或任何一个依赖比它新、或依赖自己就要重做;plan(目标) 按依赖先、目标后的顺序列出要重做的目标。) 贯穿 n05 的构建规则(目标 ← 依赖:命
补全:执行并更新时间
(RULES 里每个目标记着它的依赖和命令;stale(目标) 判它要不要重做:目标不存在、或任何一个依赖比它新、或依赖自己就要重做;plan(目标) 按依赖先、目标后的顺序列出要重做的目标。) 贯穿 n05 的构建规则(目标 ← 依赖:命
补全:谁被谁用到
(RULES 里每个目标记着它的依赖和命令;stale(目标) 判它要不要重做:目标不存在、或任何一个依赖比它新、或依赖自己就要重做;plan(目标) 按依赖先、目标后的顺序列出要重做的目标。) 贯穿 n05 的构建规则(目标 ← 依赖:命
为什么要拆成多个模块
一个 2000 行的 main.py 拆成 app/cli.py、app/core/calc.py 这样的多个文件,最主要的好处是【0】。
包和 __init__.py
贯穿 n06 的工程: app/ __init__.py cli.py # import app.core.report, app.util util.py core/ __init__.py
循环 import 是什么
app/core/report.py import 了 app.cli,而 cli 本来就 import 了 report。结果是【0】。
这张图里谁依赖谁
(IMPORTS 记每个模块 import 了谁;deps_of 一路找到全部间接依赖;who_imports 找谁用了它;has_cycle 判有没有循环 import;order 给出「被依赖的先、依赖别人的后」的顺序。) 贯穿 n06
加一条反向 import
(IMPORTS 记每个模块 import 了谁;deps_of 一路找到全部间接依赖;who_imports 找谁用了它;has_cycle 判有没有循环 import;order 给出「被依赖的先、依赖别人的后」的顺序。) 贯穿 n06
补全:全部间接依赖
(IMPORTS 记每个模块 import 了谁;deps_of 一路找到全部间接依赖;who_imports 找谁用了它;has_cycle 判有没有循环 import;order 给出「被依赖的先、依赖别人的后」的顺序。) 贯穿 n06
补全:有没有环
(IMPORTS 记每个模块 import 了谁;deps_of 一路找到全部间接依赖;who_imports 找谁用了它;has_cycle 判有没有循环 import;order 给出「被依赖的先、依赖别人的后」的顺序。) 贯穿 n06