复杂的沉重代价

这种过度工程化的趋势带来了一连串的问题。开发团队常常会陷入“依赖地狱”,为了更新一个小功能,就得在一堆相互关联的库里挣扎,每个库一升级就可能出问题。最后,项目就成了一个维护噩梦,修复一个小 bug 都得花上好几天。

更要命的是,复杂是安全的天敌。每多一个框架、每加一个第三方插件,就多一个被攻击的风险。一个不起眼的小依赖出了漏洞,整个系统可能就全线崩溃了。

用户体验也同样糟糕。比如,一个餐厅网站,就因为套用了一套复杂的应用框架,加上各种花里胡哨的动画和追踪脚本,结果打开要等上十秒。说真的,一个能流畅完成核心功能的简单应用,远比一个功能堆砌却根本用不顺手的“大而全”产品有价值。我们的目标,应该是打造轻巧实用的工具,而不是炫耀自己能把东西做得多复杂。

拥抱简约

要摆脱这种复杂性,最好的办法就是运用奥卡姆剃刀定律:如无必要,勿增实体。对工程师来说,这意味着要砍掉所有不必要的部分,直到留下那个最核心、最精简的版本。

这需要我们时常反思。比如,一个不怎么更新内容的营销博客,真的需要用 React 或 Angular 这种重型框架吗?用静态网站生成器会更快、更安全,托管成本也更低。

再比如,一个只有三个功能的小型内部工具,真的有必要上马分布式微服务架构吗?管理网络、部署和监控所带来的额外开销,恐怕远远超过了一个简单的单体应用能带来的好处。

很多时候,我们选择复杂,只是因为它听起来很“潮”,而不是因为它真的好用。如果我们能强迫自己想清楚每一个组件的价值,我们才能开发出更高效、更可靠的系统,也能更深刻地理解问题的本质。

为了追逐潮流而堆砌技术是个无底洞,它只会让产品变得臃肿、难用。只有主动选择简约,把奥卡姆剃刀作为开发过程中的一把尺子,我们才能创造出真正优秀的产品——它们易于维护、响应迅速,而且更加稳固。是时候关掉那些花哨的技术,拨开过度工程化的迷雾,重新发现简约的力量了。