读《Software Engineering at Google》(15)
🤔☕️🤔☕️🤔
读《Software Engineering at Google》(15)—— Deprecation
📖:@Google,代码被假设为负债(liability),代码并不是资产(asset)
🤔:弃用(Deprecation)vs 兼容(Compatibility),前者需要勇气,后者也需要勇气,一种是丢掉旧轻松向前,所谓丢的勇气,一种是抱持旧负重前行,所谓抱的勇气。虽然都是勇气,前者的勇气会带来更多自信和机会,后者却在持续削弱自己的勇气,直到恐惧感滋生。
🤔:所谓负债,就是欠缺,那就要还债,废弃就是免除债务,这么说的确有道理。可是代码为何是债务,直觉中,或者说一直以来,代码都认为是值钱的资产,这样的认知翻转,为何会有,怎么产生,怎么逆转,脑子有点打结。
🤔:强制报废,这在机械型产品里是常规。磨损到一定的程度,安全隐患持续上升,这个理由足以启动强制报废。报废换新的过程,就是在升级迭代的过程。软件系统,怎么跑也不会把 CPU 或内存给磨损坏,可是这不代表没有安全问题。软件系统基于的技术和使用环境,都在快速迭代改进中,这条进步的演进路线因素,尤其是网络因素引起的使用环境改变,导致安全问题从刚开始的不太考虑,到最后的直接暴露。这样的安全问题,足以成为启动软件报废的一个理由。
🤔:持续问下去,到底什么因素,能推动软件系统持续改进,直到出现全新替换。忒修斯之船,每天换一部分,经过一段时间,几乎每个地方都是新部件。换下来的算废弃,装上去的算兼容,最终还是忒修斯船的样子。如果它刚开始能打火炮,那么无论如何替换,都不会具备发射巡航导弹的能力。对。如果功能没有变化,至少没有革命性变化,那就是持续在兼容替换。只有出现火炮到巡航导弹的颠覆式功能差异,才要废弃木质的忒修斯之船,改为钢铁质的巡洋舰。再细想一下,我可没听说过军舰可以每天换一点的说法。这也同时在说,越是强大、越是专用的系统,当其功能被淘汰时,也就是其软件系统被废弃的时候。在软件行业,单体系统到分布式系统,之所以不需要替换硬件,原因在于在硬件之上的基础操作系统软件,进行了彻底革新,结果还依然兼容单体系统下的软件,这算是软件加一层的魔力再现。
—— By 术子米德 @2022.04.23
版权声明: 本文为 InfoQ 作者【术子米德】的原创文章。
原文链接:【http://xie.infoq.cn/article/2aeb4a87f6db9f2469a56018a】。文章转载请联系作者。
评论