折腾的代价
每一次技术选型都是对未来的一次押注。有些押注经得起岁月——语义化 HTML、渐进增强、清晰的关注点分离。有些则不然——把你锁死的框架特有模式、被弃置的构建工具、解决你从未真正遇到过的问题的抽象层。
选错的代价不只是迁移本身。它是与工具对抗而非协作所积累的摩擦。它是与你正在运行的版本对不上的文档。它是维护那些三年前说得通、如今已不再成立的模式所带来的心智负担。
什么经得起岁月
以我的经验,那些经得起岁月的东西有一些共同特质:
- 它们很无聊。 无聊的技术之所以无聊,是因为它们已被反复检验。缺陷是已知的。边界情况有文档。社区里有现成的答案。
- 它们很简单。 不是容易——是简单。它们的接口面很小。它们只做一件事,并把它做好。它们与其他工具组合协作,而不是试图成为整个技术栈。
- 它们尊重标准。 HTML、CSS、HTTP、URL——这些是 Web 的承重墙。直接在它们之上构建,而不是把它们抽象掉,往往能造出长寿的系统。
- 它们是显式的。 魔法很有趣,直到你需要调试它。显式的代码、清晰的数据流和可预测的行为,比那些省下几次击键的巧妙抽象更有价值。
简单产生复利
一个你完全理解的简单系统,比一个你只理解一部分的精巧系统更有价值。这在每一个尺度上都成立——从单个函数到整个架构。
简单不是写更少的代码。而是让每一行代码都有一个你能说清楚的存在理由。是选择在仍能解决问题的前提下活动部件最少的方案。是抵制为假想的未来需求做优化的冲动。
这种自律的回报是复利式的。简单的系统更容易扩展、更容易调试、更容易交接,也更容易在压力之下推理。它们老化得更好,因为可能出错的地方更少。
修行
为长久而构建是一种修行,而不是一张清单。它意味着在添加依赖之前停一停。意味着追问这层抽象是否值得那份间接性。意味着选择可读性而非小聪明,选择稳定而非新奇。
这不是最令人兴奋的路线。但正是它让你把时间花在真正重要的工作上,而不是与工具搏斗。