函数命名不是取名字:它是在描述系统边界

函数命名不是取名字:它是在描述系统边界 副标题: 好的函数名不只是“好听”。它应该让读者看出:这个函数在做读取、 解析、校验、筛选、创建,还是修改状态。 适读人群: 正在写 Python service、runner、pipeline、SDK 或业务模块的开发者 阅读时间: 8 min 背景:为什么 get_dependencies 不是总比 resolve_graph 直观? 看一个小型 graph pipeline runner: def trigger(self, mode, context): dependencies = self._resolve_graph(mode) self._validate_graph(dependencies) record = self._create_graph_record(mode, dependencies, context) while True: ready_nodes = self._ready_nodes(record) if not ready_nodes: break for node_name in ready_nodes: ... 刚开始可能会问: 为什么不叫 get_dependencies? 为什么不叫 get_handler? 为什么 ready_nodes 没有动词? 为什么 skip_dependents 一看就像会改状态? 这些不是风格洁癖。函数命名背后其实是在表达系统边界: mode 是外部语言,graph 是内部执行结构。 handler name 是配置语言,handler 是可调用对象。 ready node 是运行时状态,不是普通列表。 skip dependents 是副作用,不是查询。 这篇文章用一个 pipeline runner 作为例子,讲清楚函数命名应该如何暴露设计意图。 ...

2026年6月3日 · 4 分钟 · map[name:Jeanphilo]

从顺序 Pipeline Runner 演进到 Graph Runner

本文是最小 Pipeline Runner 系列的 v1 后续章节:从 v0 的顺序 workflow list 出发,推导 dependency graph、ready wave、graph validation、node record 和 failed dependency blocking。

2026年6月3日 · 5 分钟 · map[name:Jeanphilo]

从普通函数调用推导一个最小 Pipeline Runner

本文保留 nano-pipeline-runner v0 的完整推导链条:先证明普通函数调用什么时候足够,再通过工程接入、运行观察、失败记录、重复执行策略和共享 context 的压力,构建一个最小顺序 Pipeline Runner。

2026年5月29日 · 11 分钟 · map[name:Jeanphilo]