赞
踩
“熵”(希腊语:entropia,英语:entropy)泛指某些物质系统状态的一种量度,某些物质系统状态可能出现的程度,本质是一个系统“内在的混乱程度”,最初是用来描述“能量退化”的物质状态参数之一,在热力学中有广泛的应用。
熵增定律是一个物理学定律,但又不局限于自然科学,其他科学同样有着相同的规律
,它意味这万物都从有序走向无序或混乱。熵增定律在我们生活中的思维类似于“停滞不前就是在退步”。熵增定律指出,在孤立的系统中,如果没有外力做功,那么整个系统将会退化为死气沉沉的一团物质。我们看下几个例子,如滚烫的开水在杯子中,白色的雾气停留在杯口会稍纵即逝?一段时间后,开水就会变成温水,并且逐渐趋于室温?收拾好的房间,使用几天后就会变得乱七八糟?一台电脑,不断的使用,随着时间的推移,存储碎片会越来越多,启动越来越慢,系统越用越卡?这一切在我们生活中随处可见,并且自然界的力量总让一切都趋向于混乱的状态。关于熵增定律还有一个推论:假设宇宙是一个孤立系统,因此宇宙中的熵会趋于最大值,那么宇宙最终会归于平静呢?这个在多年后证明是不会的,感兴趣的可以去搜下相关文章。
人活着就是在对抗熵增,生命以负熵为生——薛定谔
上面的例子中,为了对抗熵增,保持系统的有序状态,我们可以做一些反抗熵增的操作,如持续不断的给杯子加热、房间东西使用后立马整理和清扫、电脑清理旧的数据,更换新的硬件等。可以看出,如果你要改变系统中这种无序的状态,实现“熵减“”或是“负熵”,则需要从系统之外获得能量,克服熵增做功
。熵增定律有效需要同时满足两个条件,缺一不可,一是没有外力做功,另一个是孤立系统
,外力做功比较好理解,如给水加热、打扫卫生等都需要外力做功;孤立系统则是不与外界做能量交换,如把房间的垃圾扔掉等,因此,如果有外力做功
或是系统开放
,我们就能对抗熵增,实现熵减,最终改变个人、家庭、团队、企业等现状,实现升维跃迁。
熵增定律同样影响了我们软件开发,一个产品在不断的迭代功能、代码不断在累加、隐藏的缺陷不断增多、维护越来越困难…最终使得整个产品变得越来越复杂,系统越来越混乱,逐渐失控。虽然软件工程中定义了“软件维护”这一环,但实际交给开发做性能优化,处理历史债务的时间非常少,基本上是不出现问题不修复的情况,因此大部分情况下,一个项目的生命周期也是一个熵增的过程。
《程序员修炼之道》中指出“当软件中的无序增长时,程序员们称之为“软件腐烂”(software rot)”。软件腐烂,是软件质量随时间缓慢恶化或响应能力下降,最终导致软件出现故障、无法使用或需要更新、升级
。这不是物理现象:软件实际上并没有衰减,而是由于其所处环境的变化而缺乏响应和更新。
《程序员修炼之道》中有一个“破窗子理论”可以很好说明这个事——一扇破窗户,只要有那么一段时间不修理,就会渐渐给建筑的居民带来一种废弃感——一种职权部门不关心这座建筑的感觉。于是又一扇窗户破了。人们开始乱扔垃圾、出现了乱涂乱画。严重的结构损坏开始了。在相对较短的一段时间里,建筑就被损毁得超出了业主愿意修理的程度。而废弃感变成了现实。“破窗户理论”启发了纽约和其他城市的警察部门,他们对一些轻微的案件严加处理,以防止大案发生,实际熵也确实起了作用,管束轻微违法的事件减少了严重事件的发生
。
“破窗子理论”类似于从众效应——因为看到了有人率先违反了规定但并未受到惩罚,就会有更多的人打破规则从而制造更多的混乱,这是一个熵增的过程,对开发者的启发是不要留着“破窗户”(低劣的设计、错误决策、或是糟糕的代码)不修,发现一个就修理一个;如果没有足够的时间进行适当的修理,就用木板把它钉起来,你可以添加注释、或者显示“未实现”消息,或者用虚设的数据加以替代。采取某种行动防止进一步的损坏,并说明情势处在你的控制之下。团队中的每一个人都应有责任去补窗户,发现一个,要么钉起来,要么补上。整洁、运行良好的系统,一旦窗户破裂,就相当迅速的恶化,反过来,如果你手上的项目代码非常整洁、文档齐全、设计良好,那么我想你也会怕因为你的加入而弄乱它原本的规范性而显得格外注意。
参考:
1、《熵增定律》——何圣君、王怡 著
2、《程序员修炼之道——从小工到专家》——【美】Andrew Hunt David Thonmas 著 马维斯 译
3、全球百科——《软件腐烂》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。