先说明。 2026 年 1 月,本刊登过一篇文章:有人用聊天和记事本管理社区足球队的会费,在周末下午做了个自用的工具。这个现场不是某个特定的团体。 我们把它实际运转的形状照实构成,也不点名是哪里。以下是按那个形状自己做的。
原文的角度很好。要点不是工具,而是门槛 — 忍着、硬塞进 Excel、或者去求开发者朋友。而在这三条旁边,出现了「自己的需要自己做」这第四条路。
可那篇文章说要给你看的东西,一样都没给。 号称做出来的工具,画面 0 张、定义 0 行、过程 0 步。「不是开发者的人在周末下午就做出来了」是唯一的主张,而撑着它的只有这句话本身。
在「现场」这一支里这尤其致命。这一支存在的理由是「你也做得到」这份许可,而没有证据的许可就是广告。
数一数多少行
时间量不了。后面会写,我做它花的时间没有参考价值。
改为量体量。 做的人实际动到的是多少行。
what the maker edits: ui/pages/dues.json 38 lines, ui/app.json 7 lines
四十五行。 一个画面(38 行)和一张路由表(7 行)。
把那 38 行整个亮出来,是这篇文章里最重要的事。不是摘录,是画面的全部。
{
"type": "page",
"title": "Dues",
"initialState": { "rows": [], "paidCount": 0, "total": 0,
"collected": "", "owed": "", "notice": "" },
"content": {
"type": "center",
"child": {
"type": "linear", "direction": "vertical", "alignment": "center", "spacing": 14,
"children": [
{ "type": "text", "text": "APRIL DUES" },
{ "type": "text", "text": "{{paidCount}} of {{total}} paid" },
{ "type": "text", "text": "{{collected}} in · {{owed}} still out" },
{ "type": "box", "width": 460, "height": 230,
"child": {
"type": "list", "items": "{{rows}}",
"itemTemplate": {
"type": "linear", "direction": "horizontal",
"children": [
{ "type": "text", "text": "{{item.name}}" },
{ "type": "text", "text": "{{item.mark}}" }
]
}
} },
{ "type": "button", "label": "Jiwon paid",
"onTap": { "type": "tool", "tool": "dues.toggle",
"params": { "who": "Jiwon" } } },
{ "type": "text", "text": "{{notice}}" }
]
}
}
}
(上面去掉了样式属性。实际文件带上颜色和字号是 38 行。)
它读得懂。 这就是这篇文章的全部主张。一个没学过编程的人看到它,能不能把 "APRIL DUES" 改成 "5 月会费" — 大概能。能不能猜出 {{paidCount}} of {{total}} paid 是什么意思 — 大概能猜到。