美文网首页社会热点哲思教育
有无动静之间——《框架思维》诞生记

有无动静之间——《框架思维》诞生记

作者: 玩哲录 | 来源:发表于2018-05-11 10:09 被阅读3771次

    时间在不断的流逝,当我回顾过往,已经收获颇多。也许,对于一个思想者和超越者来说,他并不会对时间的流逝有过多的感伤,反而流年中会留下他深深的足迹。当他回忆最初的梦想,经过播种发芽开花结果之后,他会心微笑、展露欢颜。

    谢谢诸君陪伴我的日子,我们的旅途就要结束了。在此之际,让我们再来回顾一下我们作为一个创造者创造的过程,我们通过科学与人文的哲思,通过对现实生活中真实情景的深刻思考,通过软件开发的生命周期,通过案例与工程的结合,通过知行合一、理论与实践,我们最终走到了这一步。

    我们最终经历了思考与内化、审美与超越,最终深化了对《框架思维》的认识,思想的改变,也意味着我们行为的改变。《框架思维》全过程真实的诠释了这一点:尺度把握人生,高度决定视野,角度改变观念。

    我相信,诸君如果把我们的框架思维,能够吸入到自己的思想中,应用到自己学习工作生活思考的方方面面,我们的人生将会达到一个新的高度。

    01 《框架思维》是如何从无到有,开始自己一系列的生命进化、创造过程呢?

    在此,我们从另外的一些角度来简单谈一谈,关于框架思维的哲学思考。

    当我想到这个问题的时候,就像是哲学中最关注的几个根本问题,我们来自哪里,我们是什么,我们又要走向何处?人生的意义又是什么呢?

    也就是冯友兰先生在《中国哲学简史》中综合了古今中外的哲学思想后,得出了一个我认为适合中国人的哲学定义:对于人生的有系统的反思的思想

    他说,每一个人,只要他没有死,他都在人生中。这种思想,所以谓之反思的,因为它以人生为对象。人生论、宇宙论、知识论都是从这个类型的思想产生的。

    宇宙论的产生,是因为宇宙是人生的背景,是人生戏剧演出的舞台。知识论的出现,是因为思想本身就是知识。为了思想,我们必须首先明了我们能够思想什么;这就是说,在我们对人生开始思想之前,我们必须首先思想我们的思想

    对于软件,我们可以认为,软件是人类思想的外延。软件是人类利用自己知识形态的技术,使用一种特殊的符号体系,它的生命来自于人类思维的过程,是人类将自己的思想传送给计算机这种工具,当产生的可执行文件被各种条件激活起来运行时,这时软件就是人类意图的重现。

    当然,我们也可以理解为人要做什么,软件就在做什么,因此可以说,软件是人类思维程序的外化。

    02 抽象与具体

    我们在书中,大量的谈到了抽象,《框架思维》首先就是要密切关心涉众的关注点,用抽象和分层的思想来切割涉众的关注点,提高模块的通用性,通过这两个核心的手段,来降低软件的复杂性。

    而,我们又知道,抽象是来源于现实的,是对真实问题的一种提炼与总结。

    因此,抽象不能脱离具体而独自存在。抽象化主要是为了使复杂度降低,以得到论域中较简单的概念,好让人们能够控制其过程或以综观的角度来了解许多特定的事态。

    我们《框架思维》中通常所说的抽象,指在认识上把事物的规定、属性、关系从原来有机联系的整体中孤立地抽取出来;具体是指尚未经过这种抽象的感性对象。黑格尔延伸了承认前面所说的抽象为抽象,但并不承认感性对象为具体。黑格尔认为具体是理性的具体,即具体概念,也就是以概念为本质的一切事物的多方面的规定、属性、关系的有机整体性,以及它们在认识中的反映。

    认识开始只能得到一些抽象的规定性,它们是孤立的、片面的。而随着认识的前进,愈是在后的概念所包含的规定性愈多,因而内容愈丰富、愈具体、愈真实。这其实是一种迭代的螺旋式上升的思维方式。

    在软件设计中,设计模式可谓是将抽象与具体的关系发挥得最具淋漓的思想。

    我们随便从GOF的《设计模式:可复用面向对象软件的基础》中的设计原则,如针对接口编程、优先使用组合、封装变化、重构。都是对不同使用场景下的抽象与具体,而做出的合理选择。

    在软件整体设计与架构中,这种思想尤其重要,当需要考虑模块化解决方案时,可以定出多个抽象级别。抽象的层次要从总体设计到详细设计逐步降低。在软件总体设计中的模块分层也是由抽象到具体逐步分析和构造出来的。

    抽象就是有选择的忽略。

    如何保证软件的灵活性设计,其核心思想就是面向对象中的抽象思想。“设计模式”、“架构”等等一系列的时髦的概念,以及我们的《框架思维》,其实就是为了实现一个抽象层次的编程,以保证软件的灵活性。

    合理的利用抽象性,软件的可读性、可维护性、灵活性、可扩展性等都会得很大的提高。当然了,我们在书中不断的提到“平衡”,我们也不能说抽象层次越高越好,因为软件架构的背景和上下文是不同的。

    我们不能为了抽象而抽象,毕竟我们不是慈善机构,开发软件的目的是为了客户满意、公司满意、我们满意,如果过于抽象也会增加培训、沟通成本,延长工期,甚至让项目遥遥无期。

    抽象与具体存在着一定的辩证联系。我们要用发展的眼光去看待这个问题。

    03 发展的观点

    我们经常在媒体中听到这样的观点:社会上出现了一些不好的现象,这些都是发展中的问题,如果你不发展,就不会有这些问题,只有不断的发展才能解决这些问题,发展的问题要用发展的眼光来解决。

    事物总是在不断变化的,没有绝对静止的事物。世界上没有一成不变的东西,社会在变,政策在变,人的素质在提高,就连曾经海誓山盟的恋人也会分手,这是常态,我们应该明白这其中的道理。

    计算机技术在发展,诸多的因素使得软件应用的环境也在不断发生变化,因此必须对软件进行改正性维护、完善性维护和预防性维护。我们在现在流行的软件开发方法,极限编程,可以很明白的看到这种思想在软件开发中的应用。正是我们使用这种发展的眼光,不断的迭带,不断的完善产品,不断的增加功能,而每一个版本都是一个可使用的版本这样的思路,我们总有可运行产品出现,从而使软件处于不断的改进之中。

    笔者刚毕业不久时,那是十几年前的事了,曾经和朋友在一起搞了一个小公司,原来只有我一个人,后来人不断的增加,以至到后来发展到20多个人,再后来由于经验及能力不足,以至失败,当然这其中有很多教训。失败乃是成功之母嘛,从中吸取教训,也未尝不可。

    好在我明白这样的道理,不至于自己是如此的痛苦,本来我就是两手空空嘛,没有什么可痛苦的。我们的思维方式就这一点好啦,它总能说服你,让你明白阴阳互易的道理,用发展的观点看待这些问题,看开些,人生也是在不断的发展的,每个人的人生都是大有可为的。

    04 主客观的对立与统一

    其实,哲学的产生本身就是主观与客观的对立统一。

    以我们自己为例,人的机能活动原理,是地球上固有的吗?如果没有客观物质,怎么会有人的发生活动原理?这就足以证明,主观与客观是不可分的相互作用,既对立又统一。如果只在主观因素上说事,不但不通,相比之下,更显得思维之局限性。

    连有一点哲学常识的人都能发现,有很多双生双灭的现象,也就是由于链条的关系,很多事物不能独存。其实,就是对立统一。这种对立存在,说白了就是不可能只存在一个的单一性,要有都有,事物就存在。要没有就都没有,什么也不存在。

    那么,怎么会只有主观而没有客观呢?

    哲学是理性很强的学问。如果,没有合理的逻辑推理,那么,只能说明思维理论存在纰漏或错误。哲学是人的机能活动的理性的产物。

    由以上分析,我们知道,人们对客观事物的认识是客观事物的特性或特征在我们头脑中的反映,客观事物的存在不以我们的意志为转移。

    认识到主客体之间的关系,我们很显示的观察到在软件生存期的各个阶段都可能发生主观认知与客观实际不一致的情况。在我们熟知的软件工程中,软件需求分析工作是软件生存期中决定性的一步。用户必须对软件功能和性能提出具体要求,并澄清一些模糊概念。而软件分析人员则要认真了解用户的需求,把用户“做什么”的 要求转换成逻辑模型并写出软件的需求规格说明,准确地表达用户的要求。

    软件工程师通常是在为他们原本不熟悉的专业领域的用户群开发软件。而用户通常对计算机软件领域知识不熟悉。专业的差别以及每个人的知识阅历等客观条件的不同,会使得他们看待问题的角度也不同。在这种情况下如果双方交流不充分,就会产生误解以及更严重的各说各理,“驴头不对马嘴”,大家可能觉得这不可思议,怎么可能呢,很无奈的是在我所从业的现实中这种现象很普遍。这将严重影响需求规格说明的质量,最终导致软件工程的失败。

    我们必须摒弃自以为是的狭隘意识,不要以自己的主观甚至是臆断影响对事物的正确判断,从来做出错误的决策,而给软件的后续开发造成很大的困扰。

    05 联系的观点

    一只蝴蝶翅膀的扇动,也可能会引起北美的一次飓风。——混沌理论

    马克思主义认为,世界是普遍联系的整体,任何事物内部各要素之间以及事物之间都存在着相互影响、相互制约和相互作用的关系。恩格斯更是指出:“当我们深思熟虑地考察自然界或人类历史或我们自己的精神活动的时候,首先呈现在我们眼前的,是一幅由种种联系和相互作用无穷无尽地交织起来的画面”。

    这说明,世界上没有孤立存在的事物,联系是事物的客观本性,事物的联系是事物本身所固有的,而不是人们主观臆想出来的,没有联系的事物在世界上是不可能存在的。

    从宏观的角度看,没有哪一个事物是孤立存在的。它总是和其他事物有着千丝万缕的联系。所谓牵一发而动全身。

    我们再来看看在软件工程中的现象。从某种意义上来说,软件生命周期的前一阶段的工作,总是为下一阶段做准备的,这个过程就是逐步的向前推进。如果前一阶段完成的质量不高,就会给后续工作带来更大的麻烦,从而会影响整个软件工程的进度。

    有人认为,人类能够创造的最复杂的产物是计算机软件。

    这是因为,软件的复杂性来源于现实世界的复杂性,也就是说主要是来自它所反映的实际问题的复杂性。一般来说,现代软件早已经脱离那种手工作坊式的生产方式,一个软件会涉及多门学科、多个领域、多个部门。

    要使开发的软件能够让用户满意,必须考虑到问题的方方面面,任何一处的疏漏都可能造成非常严重的后果。

    06 关于内容与形式

    内容与形式是任何事物都具有的两个方面,软件开发也不例外,也必然有内容和形式的关系。内容与形式的对立使内容和形式成为两个可以分开的层面,内容本身具有一定的形式,同时形式又是内容的外在表现。

    这个思想主要体现在软件的用户界面是形式,而功能及性能是内容。

    作为用户与计算机的接口。没有良好的用户界面,就会导致用户体验差,从而直接影响用户对这个软件的印象。从我的经验来看,这决不是一件小事情,很多我们自认为很强大的功能,客户并不买账,因为也许是我们从开发人员的使用角度来设计的,没有考虑到用户的真实使用习惯,这样一来用户当然不会满意了。

    用户界面好坏其实直接影响到软件的竞争力。但归根结底来说,内容是最重要的。就算用户界面做的再精美,没有强大的功能、可靠的性能。这样的软件也是不会受到用户青睐的。两者的关系,正是内容与形式的关系,值得我们细细的思索。

    07 人在软件开发中的作用

    二十一世纪最重要的是什么?

    是人才!这是勿庸置疑的。

    从人类起源开始的人类文明,从石器文明、铁器文明,蒸气文明、电气文明、计算文明以及到今天的智能文明,人类文明更新得越来越快,这无一不是人类利用工具改造自然、社会,并在这一过程中所形成文化思想的文明过程。

    当我想到计算机、软件、人的因素的时候,我首先想到了人与机器的关系,我们可以从很多经典的电影看到,如《终结者》、《黑客帝国》等都有这些话题的深入探讨。我们现在,就是通过软件来利用计算设备去表达人类的思想(比如通过及时聊天工具软件大大的加快了人类的沟通)。

    软件无疑是人类高强度脑力劳动的产品。同时人也是软件的使用者。人利用自己制造的这一工具为进一步认识世界和改造世界服务。人在这一系统中人占据核心地位,发挥着主导作用。

    人才是软件业,以及其它行业,永远都不会过时的核心竞争力。

    我们国内很多企业没有意识到这个问题,很多人在抱怨我们的环境(包括我自己),但这也是事实,国内的软件行业环境确实不容乐观。这一部分有我们从业人员水平良莠不齐的原因,但更大的原因和大环境有关,不过我们也发现这个环境也正在向好的趋势转化。

    智力资源的新陈代谢对软件行业来说就好比是流通在企业中的血液,能增强企业的生产研发能力。我们不可能要求每一个软件业中的人员都成为多面手,因此对于整个产业而言,就需要有一个比较合理的人才配比结构。像印度这样的软件强国,我们发现他们的人才层次结构一般有管理人才、软件与相关行业分析人才和软件工人三个层次,呈金字塔形分布(就正如我们的那个最重要的需求金字塔图)。

    另外,软件的使用者的素质高低,也是软件应用成败的关键因素之一。软件使用者的操作能力和操作习惯也必须是开发人员考虑到的一个重要因素。这些使用者可能包括单位的决策层、管理干部、普通员工,他们在软件使用中的角色和作用也不尽相同。

    一套成功的软件系统,特别是信息管理系统,如果没有最高决策层的有力支持,那么成功的可能性几乎就是零。而对直接操作软件的人员来说,如果没有充分培训,也必然会导致错误及混乱,从而直接影响推行。

    记得“程序员部落酋长Joel谈软件”在《软件随想录》中谈到了关于优秀程序员的重要性,其中在26节“飙高音”中有一些有趣的结论:

    聪明的程序员比平庸程序员工作效率一般高到4-10倍。也就是说,由于能力的差异,程序员的生产率有5到10倍的差距。用许多平庸的程序员取代少数优秀的程序员,这种做法的真正问题在于,不管平庸的程序员工作多长时间,他们做出来的东西都无法像优秀程序员做得那么好。

    在一些需要灵气才能解决问题的情况下,这不仅仅是“生产率高10倍”的问题,而是“普通程序员”永远都唱不出开发优秀软件所需要的那种高音。

    他从对人才的尊重的角度得出了他的商业计划:最好的工作条件,最好的程序员,最好的软件,利润!可见,优秀人才在公司中具有不可或缺性,其待遇多于普通者数倍是必须和合理的。

    因此,作为一个人,我想我们不能一味沉溺于物质的享受,同时也要有精神世界的丰盈。物质文明与精神文明两手都要抓都要硬,两者要兼顾相容。

    “我们需要牛奶面包,也需要音乐艺术;我们需要挣钱活命,但也需要思想自由的飞翔”,我喜欢沉浸在哲思的海洋,哲学并非是从实用的观点来看待问题,它也并非是对我们的成长没有意义的,而是可以通过哲学中的某些思想,来观照与抚慰我们的生活、工作,甚或是人生。

    因此,我们的《框架思维》,它能站在更高远处来探视我们的思想,指导和启迪我们,使我们用理性的眼光来看待问题、发现问题、关注问题、分析问题、分层问题、解决问题。并能给我们平凡的人生增加更多想象的空间和思考的乐趣。

    “他日挚友如相问,一片冰心在玉壶。”,谢谢诸君的陪伴!

    相关文章

      网友评论

        本文标题:有无动静之间——《框架思维》诞生记

        本文链接:https://www.haomeiwen.com/subject/kraxdftx.html