程序员修炼之道系列 | 可逆性

原创
🐻
小乔
发表时间 2021-07-05
阅读数 2080
最后编辑:程一凡 于 2024-07-02 16:09:54
摘要:为了让软件在长期范围内容易应对变化,我们做的每一个决定都要遵循可逆性原则,以易于变更为前提。

在软件设计中,我们通常会做出很多决定,比如,选择哪种架构模式?使用什么技术实现?这些决定会直接影响软件的设计方向。为了让软件在长期范围内容易应对变化,我们做的每一个决定都要遵循可逆性原则,以易于变更为前提。

关键的决定不易逆转

2012年,奇虎360公司推出了一款分享式云盘。基于360公司的安全承诺,很多用户选择在没有备份的情况下,将自己珍贵的文件资料存进360云盘。但到2016年,360云盘宣布将逐步关闭个人云盘服务,这让全国的360云盘用户纷纷开始“抢救”资料。下载量的激增,导致下载速度变慢,许多用户只好被迫放弃部分文件,优先下载更有价值的内容。

 

云盘关闭事件给360公司带来了巨大的冲击,同样也给没有备份资料的用户带来了难以估计的损失。

 

在项目初期,团队一般会面临很多选择,而随着需求的逐渐细化,产品的架构也逐渐成形,选择会越来越少。因此,一旦做出不可逆的关键决定,日后的更改就会变得异常困难。

避免做出不可逆的关键决定

避免做出不可逆的关键决定,可以从以下几个方面入手:

1.灵活的代码

高耦合的代码会增加修复难度,因此,团队可以通过解耦代码,来保持代码的灵活性。同时,也可以编写更少的代码,以实现更安全、更容易的变更。

2.灵活的架构

在保持代码的灵活性之外,还要考虑在体系结构、部署和供应商集成等方面保持灵活性,让日后的修改更为容易。

3.为随时到来的意外做好准备

保持“危机意识”,随时准备一个Plan B。一只亚马逊雨林中的蝴蝶,偶尔扇动几下翅膀,可以在两周以后引起德克萨斯州的一场龙卷风。这是我们常说的“蝴蝶效应”。实际上,尽管我们无法控制蝴蝶扇动翅膀,也无法阻止即将到来的龙卷风,但可以提前准备防范措施,以应对龙卷风的威胁。

 

总之,我们不清楚未来会发生怎样的变化,但我们清楚的是,要确保自己的决定能够适应不同的变化。你的决定可逆吗?


附件:
    返回顶部
    高丽亚
    高级客户经理
    17667930330
    3645260865
    统一服务热线 4006-8899-23
    我要提问提问有任何问题,您都可以在这里提问。 问题反馈反馈点击这里,让我们聆听您的建议与反馈。