未来的编程方法(一)

1,765 阅读4分钟

小引

未来,一个充满希望的词语,意味着告别现状踏入崭新的篇章。

老实讲,人类编程事业发展了大几十年,是科技进步的代表,为社会发展做出了巨大贡献。但是,不能否认,编程也是这个世界上最混乱、最缺乏有效组织方法的领域。

它外表光鲜亮丽,但内部可能混乱不堪,几十年来,许许多多人付出了不懈努力,不断探索,推动着编程事业艰难地缓缓前进。方法虽然都不完美,但不同场景下也还能行之有效,这都感谢前人的探索付出。

时间还在继续,编程事业还在继续,对编程方法的探索也绝未停止。

是时候在程序的组织方法上探索努力了,也到了该进步的时候了。数字化社会,也必然需要好的组织方法。

重构不是灵药

有多少人能对自己以前写的代码了如指掌呢?又有谁能轻易看懂别人写就的代码呢?为什么维护变得越来越难呢?为什么前脚刚重构的后脚又要继续重构呢?

是什么导致的这一切?是因为代码组织的方法从根本上就错了!利用错误的组织方法写就的代码,必然避免不了重构的命运。

架构、重构,这是对组织方法做出的为数不多的努力之一。但它仅适用于当时决策的那一刻,时间还在继续,但架构不会随着时间去适应成长,它是固定的,它是死的,在决策时就固定了,也在那一个就死了。谁都没有办法让死的变成活的,所以只能重新搞一个新的出来,这就叫重构。

但是,重构不是灵药,只会像死神的游戏般重复一次循环。

编程的世界还会有光吗?

别气馁,编程的世界虽然混乱又黑暗,但我们也要像众多前辈一样努力寻找光明。只有光明了,我们的编程之路才会变得好走,我们才能避免加班,才能避免脱发。

光明在哪呢?光明会在哪呢?

你可以先回顾下自己的组织方法,然后停住,不要继续展开了,接下来完全听我说,中间不要走神儿。

编程中我们写的最多的、最难的代码是哪些部分?没错,是逻辑过程。但是,我们写逻辑过程的目的是什么呢?完成程序效果吗,不对,你那一小段逻辑过程,完不成整个程序的效果。那一小段逻辑过程,只能实现数据的转换。如果你认可程序是由多个逻辑过程组成的,那么也就可以理解为,程序是由多个数据转换组成的,进而理解为程序是由数据转换组成的。最终揭示了程序的本质——数据转换

现在,你可以继续花点时间去回顾自己写过的程序,是否是遵循数据转换而开发的。相信大多人都不是,都是根据业务需求实现逻辑功能。没有关系,接下来切换视角,用数据转换的思想去重新理解它们。怎么样,是不是会发现,那些代码又都印证了数据转换。

是的,数据转换就是我们苦苦探索追求的光明!它是如此简洁又如此纯粹地表达了程序的基本规律!

方向,先迈一小步

你虽然没有遵循数据转换而开发,但你的代码又处处印证着数据转换。

你的感受如何?你以前写代码时的感受如何?如果遵循数据转换,重新写一次,你的感受又如何呢?

以前,你费劲巴拉地去理解业务需求,然后又小心仔细地写逻辑过程来还原业务场景。现在,我们换到数据转换的视角,把业务需求拆解为数据的层层转换,将业务解耦掉(就不存在业务这一概念了),只对数据部分负责,然后视野是不是清晰很多了。即使多年之后,你再回顾这个程序,即便你已经完全忘记了业务需求,也毫不影响你对数据转换的理解,很快,你就又能摸清这个程序的整个数据转换过程了。

换到数据转换的视角,只是在正确的方向上迈出了一小步。

它会指引我们向着光明的方向前进,所以,数据转换也是一种指导思想。它不仅是指导思想,也是一种信仰。是多么地令人激动、雀跃,愿意为之奔走相告、广泛宣扬……

未完,请待下篇(实用的操作方法)