在软件行业,以前都喜欢说代码组织上要松耦合,要尽量少的依赖,相互之间做到独立,当修改的时候会简单,不会牵一发而动全身。
最近做了个项目,深深感觉松耦合只是嘴上说说而已。
python 的包主要是用了paramiko 其他的都是自带的模块如subprocess, logging, unittest.
但是在环境上就操蛋了:
AIX: 装了个wget 来下载,然后发现装的这个wget的syntax 跟linux 上还不太一样。
windows: 装了curl ,freesshd , freesshd 我一直没有想明白,freesshd里面我建一个账户,远程paramiko登录运行脚本的时候是不是要使用suid的技术,毕竟这个用户我是创建在freesshd里面而不是创建在windows.
这样通过ssh登录执行命令和环境其实本身就是紧耦合,谈什么松耦合呢。
例如使用yml 这种东西做配置文件,对于格式要求的非常严格。
代码总是说松耦合,但是发现想要做一件事,你依赖的东西越来越多,流水线越来越长。一个长度为N 的流水线,如果每个部分的可靠度位90%,那么最终的可靠程度是
90%**n, 这实在是太吓人了。
这就好比我现在出远门的话,出门要步行到车站,坐车到市区,从市区坐车到机场,然后坐飞机。到另外一个城市,反过来乘机场巴士,坐公交或者地铁,步行最后一公里。
这个流水线只有步行是个人能控制的,公交车要等,地铁会故障,航班会延误,要出一趟远门,要求所有的每一部都很精确,但是这些却不是个人所能控制的,我们的生活变得更加紧耦合。
无处不在的信息泄露,每次看到电视上什么长官出来说保护个人信息,我都觉得很好笑,没有具体的措施,就一句话保护个人信息这让谁信啊。
我们做任何事情都越来越依赖于其他人,而我们对于其他人并没有控制力,这反过来让我们焦虑,个体的力量变得毫不重要,成为漫长链条中的一环。一旦一环出了问题,后果往往是后面所有的环节都必须改变。社会化生活变得极其复杂。
我始终觉得richard stallman 是对的。
阅读(2495) | 评论(0) | 转发(0) |