刚看完那篇讲Unix spell怎么塞进64kB内存的文章,想聊个没人提的角度。
大家都在感慨资源匮乏逼出优雅,我觉得更值得注意的是它的架构姿势:词典和算法耦合得极浅,想换方言词库直接替换就行。没有插件机制、没有依赖注入框架,就是简单的管道和文本流,反而比现在很多开源项目的设计更自由。你去看一些现代工具,挂个词库要先读三页文档,实现一个Provider接口,跑通构建工具链——自由度被框架本身吃掉了。
还有一点容易被忽略:spell没有测试套件,没有CI,但它活了几十年。健壮性是哪来的?是几十年真实终端环境的混沌使用磨出来的。现在很多开源项目把流程完备当成了质量本身,覆盖率刷到90%心里就踏实了,其实那是两码事。测试证明你写了测试,用户使用才证明软件活着。简单说
这不是说不要测试,是说别把手段当目的。真正经得起时间的东西,往往长得都挺朴素。