我还没写过关于别人的文章的评论,所以打算尝试这么一种形式:推荐一些文章,并附上我的评论。

这是本系列的第二篇。

如果你感兴趣,可以点击这里阅读第一篇关于依赖项更新的文章


最近读到一篇炮轰"最佳实践"的文章,在此分享我的看法。原文链接在此。以下是给没耐心读者的TL;DR摘要:

作者批判编程领域对"最佳实践"的盲目崇拜。虽然承认许多最佳实践确有价值,但指出当缺乏经验者或热衷树立权威者将其教条化时,反而会产生危害。作者强调必须理解每个实践背后的上下文和逻辑,而非视其为金科玉律。文中以Postel定律、避免全局变量、DRY原则等为例,说明这些准则虽普遍合理却存在例外。作者抨击将"最佳实践"作为权威论据的行为,认为这会扼杀讨论与批判性思维,并类比安全领域规范——由于倡导者的道德优越感,质疑现有规则往往举步维艰。

先说说文章的闪光点:

每个人都该培养批判性思维,不该盲从教条,更不该把这些教条当作支撑观点的廉价论据。

对此我完全赞同——这反而让我有点不习惯,毕竟我平时看什么都想抬杠。

顺带一提,上文的TL;DR摘要由Gemini生成,质量相当过硬。

但问题在于:这篇文章的行文结构,恰恰无法支撑"不该盲从最佳实践"的核心论点。

且听我分解。


文章标题是《反对最佳实践》,开篇却大段讨论Postel定律。这个例子本身没问题,但"Postel定律"根本不算"最佳实践"——这个案例完全跑题了。

不信?问问谷歌:搜索"Postel’s law" + “best practice”,结果页没有任何内容同时提及这两个术语。因为从来没人鼓吹"Postel定律是必须遵循的最佳实践"这类说法。

就像写《反对酗酒》,却用"每天喝可乐有害健康"作为开篇案例——可乐又不是酒精饮料。


退一步说,我们来看看Postel定律,或者说所有所谓的"定律"。

作者声称这不是真正意义上的"定律",违反也不会怎样。但事实上,所有"定律"都如此:摩尔定律康威定律要么已失效,要么存在例外。给某个观点冠以"定律"之名(或原则、规则等)从不能保证其绝对正确——这本该是常识。世上本无百分百正确的理论,称之为定律也不代表你要盲从。

再退一步,看看现实世界的法律。并非所有法律都合理,也非所有违法行为都会受惩。但这不意味着你可以不守法。遵纪守法仍是"最佳实践",因为这是常识,通常也对你无害。

即便是牛顿定律这样的科学定律,在微观层面也会失效。


好了,关于这些非最佳实践的"定律"的题外话到此为止,回到正题。

作者随后举了些真正的"最佳实践"例子(比如搜索该术语+“best practice"能同时出现的结果),这很好。例如12要素应用。

但这里论证却显得乏力:作者认为12要素应用"包含部分可取观点、部分可疑观点和部分彻头彻尾的坏主意”,却未作任何解释。

作为自由人类,你当然可以持任何观点,但多些解释总归更好。十二要素里哪些可疑?哪些是坏主意?作者没说,我们永远无从得知。

当然,12要素并非放之四海皆准。比如在不使用容器编排平台时它就效用有限——它本就是为现代容器化、K8s环境设计的。在这个特定语境下,它非常可靠,因此才成为公认的最佳实践:这是在特定上下文中形成的共识。即便你搜索"12要素应用是错的"这类关键词,也很难找到有力反驳——因为它们本身没错,在适用场景下非常可靠,这正是它能成为最佳实践的原因:为日常处理容器化部署的人们提供了简化工作的共同基础。


总结来说,这篇文章的标题观点我完全赞同,可惜内容无法支撑标题,导致说服力大打折扣——虽然我本就不需要被说服。

就像挤奶凳需要三条腿(或四条;挤奶凳到底有应该有三条腿还是四条腿这种问题的答案取决于你的哲学倾向)才能稳固,文章的核心论点也需要内容支撑。

最后送上一句苦心经营的讽刺箴言:逻辑是个好东西,希望你也有。