Skip to main content

"完形填空"式快速开始的设计想法

为什么不用传统方式

开源项目最常见的两种快速开始:

  1. 克隆现成项目跑一遍。 代码是别人写的,看懂了,但手没动。每个决策——appID 为什么是这个值、参数用什么类型、返回值字段怎么命名——不需要你想,抄就完了。跑通了,但真到自己接入时还是不知道该从哪下手。

  2. 从零开始照着文档写。 六步流程,每一步都要自己建文件、搭结构、写代码。步骤是对的,但中间任何一步卡住——比如 JSON 格式写错、字段名跟代码里不一致——新手就得在文档和编辑器之间来回跳。

两种方式都缺一样东西:让学习者在动手的同时,被限制在正确的轨道上

模板填空

模板搭好框架,关键位置留空。填完一个空 = 做一个决策 = 理解一个设计选择。

每个空都有标准答案——不是开放题,是引导题。appID 这一格,你填了 com.github.hxh.msgreminder 而不是 0x00000014,等于你理解了新格式和旧格式的区别。参数类型选了 input 而不是 static,等于你想清楚了调用方需不需要自己填这个值。

填完一个文件、验证一步、勾掉一步。六步走完,程序已接入 KnotLink,可以提 PR 署名收录。

和常见教学工具的差别

Rustlings、Kotlin Koans、Exercism 都是代码填空——填完就完了,产物留在本地,目标纯粹是学习。

KnotLink 的模板填空不一样:填完的代码是真实可用的项目,提 PR 直接收录进节点索引,署名公开。 每个填完模板的人,产出一个真实节点,名字挂在索引里。这不是练习,是发布。

市面上没有第二个项目用这个模式做开发者 onboarding。代码填空有人做,PR 提交有人做——填空产出直接进入真实生态、署上作者名字,目前没找到先例。

KnotLink 的接入流程天然适合填空式引导:六个步骤是固定的、每个步骤的产物是明确的、每个产物的格式是规范的。FuncList.json 的字段就那么几个,plugin_manifest.json 更是只有七项。模板把骨架撑好,空白刚好是那些需要开发者自己做决定的地方。

而且每个完成的人都在帮生态冷启动——节点索引里多一个节点、多一个署名贡献者。这个人以后更可能帮你在别的地方说话,因为他名字在上面。