编程思想-问题求解的思维方式
根据问题的特点选用特定的思想和方法论来分解、组合各类元素,从而解决问题。
针对问题特点,选择合适的编程技术解决问题。
思想指的是你对问题的分析方法和思考模式。
最基本的编程思想是分与合;
业务决定功能,功能决定技术。
思想指的是你对问题的分析方法和思考模式,而语言只是一种具体的表达,比如对于一个具体的问题,你的思想决定了你对问题的看法、分析问题的方法,处理这个问题的思路,以及怎样使得这个问题的解决可以用计算机可以接收的方式进行处理的转换及实现的能力。而语言只是在你找到这个问题的计算机解决方案后的一种具体实现。
编程思想注重的是解决问题的方法论,取决于你的专业能力(计算机知识和目标问题领域的专业知识)和综合素质,而语言注重的是表达的方式(语法),你只要熟悉语法一般情况下就可以搞定。编程思想可以通过学习,交流以及在实践中总结得来。开始可以通过一门语言来体会这些已有的编程思想,比如面向对象,面向过程等,但最终你应该不断总结、思考、领悟解决问题的通用方法以形成你自己的思想。
编程思想就是用一种系统的方法去解决各种问题。
首先要提到的是,不论是过程论还是对象论,都承认一点,那就是程序世界本质上只有两种东西——数据和逻辑。数据天性喜静,构成了程序世界的本体和状态;逻辑天性好动,作用于数据,推动程序世界的演进和发展。尽管上述观点是统一的,但是在数据和逻辑的存在形式和演进形式上,过程论和对象论的观点截然不同。
过程论认为:数据和逻辑是分离的、独立的,各自形成程序世界的一个方面(Aspect)。所谓世界的演变,是在逻辑作用下,数据做改变的一个过程。这种过程有明确的开始、结束、输入、输出,每个步骤有着严格的因果关系。过程是相对稳定的、明确的和预定义的,小过程组合成大过程,大过程还可以组合成更大的过程。所以,程序世界本质是过程,数据作为过程处理对象,逻辑作为过程的形式定义,世界就是各个过程不断进行的总体。
对象论认为:数据和逻辑不是分离的,而是相互依存的。相关的数据和逻辑形成个体,这些个体叫做对象(Object),世界就是由一个个对象组成的。对象具有相对独立性,对外提供一定的服务。所谓世界的演进,是在某个“初始作用力”作用下,对象间通过相互调用而完成的交互;在没有初始作用力下,对象保持静止。这些交互并不是完全预定义的,不一定有严格的因果关系,对象间交互是“偶然的”,对象间联系是“暂时的”。世界就是由各色对象组成,然后在初始作用力下,对象间的交互完成了世界的演进。