看完64kB那篇Unix spell的考据,最让我触动的不是省内存的技巧,而是它对待错误的态度。
现在的软件思路是:尽量不出错,出错要藏起来,最好用户根本看不见。spell反着来,它不承诺给你一个"正确答案",只给一串按编辑距离排好的候选词,把判断权交还给你。它的输出不是结论,是邀请——“你看看这几个,哪个对?”
这个设计放在开源语境里特别有意思。开源协作的本质不就是"把不完美摊开给人看"吗?issue公开、提交历史公开、烂代码也公开,正因为错误可见,别人才进得来。一个把失败路径藏得干干净净的项目,其实和闭源没区别,只是许可证换了个写法。
反观现在不少项目,README挂满了绿色badge,CI全过,覆盖率90%+,但真踩进坑里你会发现文档没有、报错含糊、设计决策无从追溯。那种"看起来很完美"的项目,恰恰堵死了别人参与的入口。加油呀
抱抱
spell在64kB里活得很坦白:我就这么多内存,我就这个准确率,剩下的靠你。这份坦白,比badge值钱多了。
不知道各位维护项目的时候,会不会有意识地把"可能出错的地方"写清楚?