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

在软件设计中,我们通常会做出很多决定,比如,选择哪种架构模式?使用什么技术实现?这些决定会直接影响软件的设计方向。

在这里插入图片描述

为了让软件在长期范围内容易应对变化,我们做的每一个决定都要遵循可逆性原则,以易于变更为前提。

关键的决定不易逆转

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

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

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

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

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

1.灵活的代码

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

2.灵活的架构

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

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

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

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

《程序员修炼之道》更多精彩视频:https://www.zentao.net/programmer.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值