熵与代码

看了阮一峰的博客 《熵:宇宙的终极规则》,略做记录📝。

熵是什么? #

科学家们发现,能量转换总是伴随这损耗,且无法避免。损耗掉的这部分能量就叫做熵。后来总结成来热力学第二定律:能量转换总是产生熵。

比如电能转化机械能不能完全转化,比如设计的代码转化为实际的代码总会产生bug。

这里说的损耗是说能量转换成来预期外的状态,而不是凭空消失来。转化越多,新的状态就越多,状态多就是可能性多,表示混乱。换一种说法:能量转换就会让系统的混乱度增加,熵就是系统的混乱度。

可以总结出一个道理。如果不施加外力影响,事物永远向着更混乱的状态发展。

熵与代码 #

如果把熵引入到软件开发中。从需求转换为程序设计,再从程序设计转换成代码,这都想到与能量转换,就会产生熵,这里的熵就是bug,或者复杂度,或者阅读难度。

软件行业中已经有了一些手段来治理这些熵。写代码要有规范,要有review执行规范。要有测试流程,发现并治理bug。如果放松来对熵的警惕,熵会在系统中越来越多,系统越来越混乱,最后会破坏系统。也就是代码越来越混乱,变得难以维护和扩展,最后系统无法使用。

所以,由于热力学第二定律,写代码有bug是一件很正常的事。为了治理熵来让系统长治久安,采取“规范、review和测试”等治理熵的外力也是很必要的。