一个待办清单应用,输入框会随着打字四处漂移,你越敲字,界面越不给你安全感。没有清晰的视觉反馈,像在大雨里开车。这个程序是作者亲手做的,而且他明确说:里面的东西是故意弄错的。
![]()
更反常的是他对这个"错误"的态度——他喜欢它。理由只有一句:它不生产任何东西,不优化任何东西,也不证明任何东西,它存在的唯一原因是做它的时候让人开心。市场的尺子量不到这个程序,所以它才真正属于作者。
这件事被放进了一场关于"技术债"的讨论里。作者说的不是 package.json 文件有多长——那种东西他日常见得太多了。他说的是另一件事:最近几乎每周都有新的门槛在倒下。
过去,人们用已经掌握的语言和技术解决问题。但最近六个月,情况变了。你不再需要待在自己的舒适区里,几乎可以用任何你想要的技术。软件开发的焦点,从"我怎么把它建出来"转向了"我该建什么"。团队也变小了,有时候一个开发者就够了,而这个人会突然发现自己站在软件架构师的位置上。
团队小,责任就大。选对技术栈,是这份责任带来的第一批决定之一。所以经验仍然重要,而且非常重要。
但选完语言只是第一步。用 Rust、C、Go,或者任何最适合任务的语言写代码,都只是开头。容易掉进的坑是:把东西建出来,然后立刻走人,把它扔在原地。一个程序要变成超出简历一行字、超出一次学习体验的东西,靠的是在初次开发很久之后还继续照顾它——维护它、改进它,用工匠的心态对待整个过程,注意那些把它从"做出来了"变成"真的有用"的小细节。
有时候情况反过来。一个在架子上积了多年灰的旧项目,某天你意识到换个技术就能给它续命。这类机会等着被挖,而旧项目里藏着的潜力,有时候连你自己都没注意到。作者的一个旧待办应用就是这样。
他为这个应用辩护的方式很特别。没人会因为你晚上跑步就说不值得,毕竟汽车更快;没人会因为有餐厅而且做得更好,就说你不该做饭;也没人看着卧室里弹吉他弹得很难听的人说,Spotify 上有专业人士,这件事的经济账怎么算。真有人这么说,我们会觉得他疯了。
可换到写程序,这套逻辑就自动生效了。在一个不断进步的世界里,人们习惯用钱、有用性、花掉的时间来衡量一切。作者提到古罗马人计时的方式:他们只把一天分成十二个小时,从日出到日落,冬天小时短,夏天小时长。那时候人和自然的连接还没断得这么彻底。
现在的时间被压平成一个个相同、可计数、可变现的单位。每个小时都挂上了以前看不见的价签,于是花一小时去做"不产出"的事,几乎变得不可能。作者说,这就是那座祭坛——人们把几乎所有东西都献了上去。
所以那些纯粹出于兴趣的项目,是一种安静的拒绝。而"故意弄错还爱着它"的程序,是这种拒绝最彻底的一次动作。
这个程序并非完全无用。从可用性角度看,它是一次训练:练习使用一个可见度有限的输入框。你一开始打字,整个表单就开始浮动,立刻破坏你的安全感和可见性。一个输入框让你实时编辑整份待办清单,规则是某个符号代表换行——这条规则得你自己发现,并且要放下"永远有清晰视觉反馈"的期待。
它同时是一次实时调试的演示:靠一个标签就能看到状态变化,因为用的是响应式技术,那个持续运行的计数器也在证明这一点。作者不称它为框架,因为他只用了一个叫 signal 的函数。所以它算 React 的替代品,也是无构建开发的一个例子——一个 HTML 文件,JavaScript 写在里面,全部手写。当时他还在练习凭记忆写出 Tailwind 的引入和整个 HTML 骨架。
这因此也是对笨重构建系统和被 linter 规训的代码格式的一次反抗。他甚至手工压缩了代码,这个细节预示了 mordorproject 隐藏信息、躲开 AI 的最强手段之一。
海明威的冰山理论被拿来作比:作者知道整个故事,但只写下水面上的八分之一。
最后他抛回一个问题:你在考虑哪些技术栈?有没有用过那些你其实并不太了解、靠 AI 帮忙才用起来的技术?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.