论辩证法在编程上的应用与体现
辩证法是一套总结事物发展规律的思想,将事物的发展过程分为三个阶段:肯定,否定,否定之否定。并通过否定之否定使事物上升到新的阶段。
辩证法的思想可以且实质上长期被运用到编程实践之中。
在一个程序被编写出时,它必然是为了满足某种需求:或是业务需求,或是编程者自身学习的需求。这一对需求的满足,即是程序的肯定阶段。构成肯定阶段的实践为编程的行为。
而在系统的使用中,对源码的重读与再思考中,以及对于新的知识的学习中,用户或程序员或多或少的会发现程序的种种不足之处:或是程序发现bug,或是程序的功能无法完全适用于业务需求,或是程序需要新的功能来丰富内容,或是程序代码所使用的一些算法、技术过于陈旧对于学习者来说没有学习的价值……此阶段即是否定阶段。而对程序的使用,对代码的思考与重读便是将程序从肯定阶段带入到否定阶段的实践。需要注意的一点是,在否定阶段时,肯定作为事物的一种属性仍然存在:尽管程序有这样那样的问题,它在被开发时实现的功能大概率仍能实现。
为了解决这些“否定”,程序员会对代码进行更新与修改:或是修复bug,或是添加新的功能,或是使用新学到的技术替换旧的技术实现同样的功能。这样的行为,实质上是对于程序所存在的“否定”进行否定,即否定之否定。通过否定之否定,程序的功能实现进一步的提升,脱离了上一版程序的“旧事物”,成为了新版本的“新事物”。并作为新事物进入到新的肯定阶段。
只要程序还在运行,还在被维护,这一周期就不会只进行一次,而是会周而复始的不断进行,这也是现今大多软件,系统不断更新版本的原因。