由德国古典哲学引发对软件工程的一点思考

        康德在《纯粹理性批判》中有“先天综合判断何以可能”这样的命题论证。那么在软件工程中,最重要的是对于业务需求的理解。我不禁要问,需求被理解何以可能?通常过需求的方式大概有通过需求文档、界面原型、接口文档评估、面谈反馈等沟通方式,推而广之便是沟通能被理解何以可能?实际上,业务需求作为沟通对象,如何被有效的理解还原,这还是一个认识论的过程,卑之无甚高论,出不了康德哲学的圈。

        我想,我们日常中的简单沟通交流,可以通过语言、肢体、表情、意会等多种手段达到精准传达,这是不证自明的,那么复杂的沟通对象必定也是可能的。因为,复杂和简单是对儿相对笼统的概念,没有明确的内涵和外延,我们也没有办法为它精确划分边界以清晰的判定何种程度的对象可以被认识,何者不能;因此,我推断“复杂的”沟通、认识对象也一定是可能的,只是需要更长的历史过程。现在,明确了这一点另一个维度的要素便是:提出需求者和依据需求拟定接口文档,以及依据接口文档进行编码,这期间还涉及到产品和测试团队的介入,我不禁要问:认识对象在不同个体间传递、交换,最终如实还原何以可能?前面说过,两个个体之间进行简单的传达可以被精准还原,而软件工程乃至自然数只有0,1,多,两方传递成为可能就意味着多方传递也是可能的,因为2即是多。尽管这一过程中会符合熵增定理,会有信息衰减以及由于个体认识结构因素理解差异产生信息不对称,但历史过程是无限的,可以弥合这一点(现在无需考虑项目工期),毕竟即使对象不符合你的认识结构,时间会让你的认识结构发生转变,会在不断的主体意识对象化和对象渐近认识结构的交互过程中达成一致。于是可以得出结论:认识过程具有普遍性。至于对象之为对象何以可能是另一方面问题,康德有论述。在此我们继续追问的是:这种认识的普遍性何以可能?

        答案只有:存在一个先天普遍适用的范畴,类似软件工程中我们称为“框架”的东西;其实在我看来,叫它知性范畴,抑或范畴表,以及是亚里士多德的10个范畴,还是康德的12个范畴,甚至黑格尔的100多个其实无关紧要,只是站在不同角度的人为划分而已,重要的是:有这样一个先天范畴的存在,并且具有普遍性。这是保证认识过程具有普遍性的根本。

        按照黑格尔客观唯心主义、绝对精神的本体认识论,以上的问题也不难理解。无限的绝对精神借助人类精神将潜在理性展开为现实的过程,是个具有目的性的闭环,是绝对精神自身的实现过程。一颗树种可以长成大树,是因为它早已潜在可成为大树的可供推演的逻辑。当初提出需求的人,通过他对其原初需要反思的概念进行反思活动,运用逻辑推演使得其精神展现为一个叫做业务需求的概念,由此,我们软件开发工作者继而通过我们的反思来展现还原其概念。绝对精神展现成为现实达成自身实现的目的,展现的过程,亦可看做创造的过程,亦可看作还原的过程。最终理性与现实和解。如此,便不难理解令人抓狂的需求变更了,因为需求方在表达自己的过程中也处在这样一个展开的历史过程中。那么如此看来,事物是活得。


        就黑格尔认识-本体论来讲,一切个体精神都是绝对精神的组成部分,人类精神认识世界的活动本身就是世界自身活动的体现,这是黑格尔伟大之处的体现之一,他将人类认知活动提高到前所未有的绝对高度。透过现象看本质,不断的否定扬弃的过程,就是主体和客体达成(还原)一致的过程,亦即实体即主体。这种自成目的的,历史动态发展的过程,我认为是黑格尔哲学的精髓。因此,对于软件开发,代码是迭代、重构出来的,不是设计出来的。软件架构,模式体现,也应是在迭代过程中自然“生长”出来的,而不是设计出来的。因为业务需求作为一个立体的、全面的、有机的综合判断,其拓扑关系也是复杂的、有机的,很难以一个静态视角,妄图一下进行片面和线性的展开,否则就不称其为片面了,也就没有了否定扬弃的过程。就像盲人摸象,从每个盲人的反馈来解构认识大象,都不能称其认识错误,认识不会有错误的。错误的是用静态、局部的方法割裂认识的过程。要还原大象的全貌,不仅需要综合,而且一定历经过程。我们囿于我们作为生物个体的局限性,是必定不能一蹴而就的,无论从康德的二元论(物自体不可知)还是从黑格尔的历史发展过程来看,终究个体不是整体,静态的也不能囊括全过程。这就像遍历树或图一样,无论怎样优化算法,终归还要一个节点一个节点的递归判断,绕不开将一个整体线性展开的过程。我想,架构师的价值就在于其具有丰富的经验,经验中有丰富的适配模型(套路、方法论),使得其能在相对更细的粒度上将设计闭环自洽,尽管如此,诸如莫比乌斯环这样简单精巧的拓扑模型又岂止是解构主义可以企及的呢?因为拥有全知全能视角的——是上帝。
 

        这听起来既让人沮丧,又让人兴奋。自成目的,就意味着概念是活的,承载了绝对精神、注入了主体意识使其具有自发的能动性,是保证需求能被正确理解实现的机理;但同时不可否定的这又是个运动发展的过程,不断否定扬弃、非一蹴而就的过程。

发布了24 篇原创文章 · 获赞 7 · 访问量 5326

猜你喜欢

转载自blog.csdn.net/GengMingHui_5/article/details/100586877
今日推荐