关于复杂性、简洁性和希望
Source: Dev.to
“An idiot admires complexity, a genius admires simplicity.”
— Terry A. Davis
从复杂到简约
在过去的七年软件开发生涯中,我目睹了无数分布式系统的兴衰。才华横溢的工程师们在服务之上层层堆叠服务,为监控添加元服务,并发明工具来管理日益庞大的系统堆。
我见过 Kubernetes 集群只托管几个静态文件,内容管理系统只管理少量 markdown 文档,甚至自建的注册中心分发本该直接包含在发布二进制中的补丁。
最终,这些系统中的许多在自身体量的压垮下崩溃,导致下游服务在没有备份的情况下全线宕机。
刚入行时,我曾赞叹这种复杂性。我甚至问道:“你见过 JDSL 吗?就像我说的,Tom 是天才。”
然而时间教会我,现代技术应当追求简约。
为什么简约会赢
- 硬件很快。 一台打磨得很好的单体服务器就能在没有集群、CDN 或无状态 Lambda 队列的情况下,每秒处理数百甚至数千请求。
- 文件系统是永恒的。 用于存储文本和图像的方案自 1960 年代就已存在。全球几乎所有服务器仍然依赖标准文件系统(如 ext4、FAT32)和 UTF‑8 编码。一个 1980 年代的 FAT32 格式软盘仍能在现代机器上读取——而复杂的 WordPress 安装则无法保证这一点。
- 长期兼容性。 如果人类在 200 年后仍在使用电脑,他们很可能知道如何挂载 ext4 卷并读取 UTF‑8 文件。依赖专有二进制或晦涩的 CMS 数据库则远不能提供这种保障。
对于我认为“远程重要”的任何数据,我更倾向于使用标准化的文件系统和成熟的编码方式。未来系统能够读取这些文件的概率,远高于有人能够解开专有 CMS 转储的可能性。
极简博客搭建
我第一次搭建博客时,使用了一个免费的 WordPress 空间。面对层出不穷的选项,我凑合出一个最终停滞不前的方案——我在写文章之前先在搭框架。
尝试迁移已有的文章非常困难,尤其是想要一种可移植的格式。于是我转向 Ghost,因其 markdown‑first 的理念,但很快又陷入了日益膨胀的 Vue.js 项目中。
两天专注工作后,我实现了突破:
- 站点现在只由少量 markdown 文件和一个 HTML 模板组成。
- 一个轻量级服务器(例如
5000blogs)负责渲染并提供页面。 - 没有数据库,除配置文件、markdown 源文件和静态模板外,没有其他输入/输出。
这个配置可以轻松迁移到任意静态站点生成器、Obsidian Publish 或 GitHub Pages。它提供基本的博客功能——标签、通过 Git 自动更新内容、全文搜索——且不依赖任何 JavaScript。当访客加载页面时,服务器只返回一个静态文件,毫无请求痕迹。
结论
简约不仅是一种审美选择,更是一种面向可靠性、持久性和安心感的务实策略。通过剥离不必要的层级,拥抱文件系统和 markdown 等永恒工具,我们能够构建远超现代技术潮流的持久系统。
反正,我就是我,我就在这里。你好。