程序员修炼之道10 可逆性

终于基本上跳出了感冒发烧的泥潭,却又开始痛风,半夜手腕痛得睡不着觉,起来靠一粒止痛片勉强继续入睡,白天的打字还是有些影响,不过好在用手机打字完全没有问题。

继续修炼,这一节讲得叫可逆性,这个词我翻来覆去也没搞明白具体是什么意思,Reversibility,从语义上来说是可以反转的,从作者举的例子上来说看上去像是要为变化做好准备。

错误在于认为任何决定都是板上钉钉的——而没有为可能出现的意外做好准备

这个事情可能是对的,不过至少也是挺难做的。

就好象我们选择了阿里云服务,那我们当然希望充分利用阿里云的一些原生服务,这些服务通常效果好,投入小,久经考验,这些是云服务的优势,但是从可逆性的角度来讲可能是不对的,因为你越用阿里云原生的服务,你将来离开他付出的代价就越大,也就越不可逆。

那么该怎么办呢?不用阿里云任何的原生服务,利用他的ecs服务器花大力气自己搭这些服务,这肯定意味着高成本和低收益,反过来说会影响你自身产品的竞争力。看上去像是在重复造轮子。

那么怎样才是对的呢?可能更正确一些的方式是虽然我走阿里云原生服务这条路,但是在走之前我评估一下将来走回来的方法和代价,只要不是特别的巨大,那么还是做好plan B 然后继续走plan A。

不过很多时候难是难在我不知道什么时候要做Plan B。这一点也没啥可细说的,凭经验,然后可能在脑子里放上可逆性这根弦,也许会帮你做得更好一点。但是实际上Plan B 也不是越多越好,太多的Plan B也会有很大的负担,过了这个度可能也得不偿失。

所以这个原则,我认为看看就行了。

推荐阅读更多精彩内容