内容简介:面向对象风靡编程界多年,函数式编程时不时的掀起一些浪花,命令式和声明式编程几乎一直只在教科书和 Wiki里面出现。这些都是编程界的瑰宝,如何将其融为一炉为我所用?面向对象这个定义很是模糊,自从 Java 横行,似乎 Java 和面向对象画上了等号,一提到面向对象,就是 Java 编程,就是 N 种设计模式。但实际上面向对象从来就和语言无关。面向对象更应该成为面向抽象编程,这种抽象思维是人类大脑思考外界的一种最重要的思考方式,有点像一棵树,不断的主干到分支再到枝叶,经过这种思考方式的处理,人类可以通过有限的
面向对象风靡编程界多年,函数式编程时不时的掀起一些浪花,命令式和声明式编程几乎一直只在教科书和 Wiki里面出现。这些都是编程界的瑰宝,如何将其融为一炉为我所用?
面向对象的本质
面向对象这个定义很是模糊,自从 Java 横行,似乎 Java 和面向对象画上了等号,一提到面向对象,就是 Java 编程,就是 N 种设计模式。但实际上面向对象从来就和语言无关。
面向对象更应该成为面向抽象编程,这种抽象思维是人类大脑思考外界的一种最重要的思考方式,有点像一棵树,不断的主干到分支再到枝叶,经过这种思考方式的处理,人类可以通过有限的思考能力思考无限复杂的问题,无论外界环境有多么复杂,经过有效的整理,人脑也能处理过来。这正是编程所需要的。
编程的过程是单个人创造一个属于自己世界的过程,需要为创立的世界订立规则,而当所创立的世界足够复杂时,需要人脑对复杂的规则进行抽象,以便能够以较小的成本维护自己创建的规则。
从这个角度来说,面向对象几乎是人类和 程序员 无时无刻都要用到的编程思维。
函数式编程
我们创立的世界规则里有一系列井然有序的定义,做出这些定义的原因是要将这些定义合理的组合在一起,进行数据的处理。可以说99%的系统开发的目的都是处理数据,将数据从一种形态转换成另一种形态,将多个数据源的数据整合在一起,从单一数据源根据特定规则生成多种形态的数据。
可以说,系统就像一个管道,数据流入然后流出。这对人类处理问题有重大意义,你可以生产一个管道,放在油田里进行石油的输送,放到路下面作为下水的管道,只要是流质的液体都可以使用,这种拿来就用的 工具 让人类处理问题变得简单了很多。
放在编程界,如果有一个函数,输入对应着自己想要的输出,那该省掉多少头发啊!所以,按照面向对象思考,但代码写成函数式,这是程序员必需的功课。
命令式编程
这种编程方式必不可少,但一般用于算法的实现,比如内存的管理。使用过 C 语言的同学肯定都试过,通过将硬件资源抽象成一系列的指针,通过指针向硬件中填充数据,这是硬件和软件的桥梁。
但是,也只在这种情况下,才适合采用命令式编程。
声明式编程
使用过 SQL 的同学都了解这是一种典型的声明式编程语言。
声明式编程产生的最根本的原因在于模块化,或者说逻辑隔离,即如果能够让一个人即使不需要了解某些逻辑也能达到目的,那就将这部分逻辑隔离。对于 SQL,使用的人只需要知道怎样可以取到数据即可,而不需要关心取到数据的逻辑,即使需要性能优化,也可以通过底层对 SQL 的转化来实现。
声明式编程是很重要的一种编程思维,尤其当系统逻辑较复杂时,通过这种思维进行必要的逻辑隔离就非常有必要了
总结
编程是一个不断提高的过程,提高最快的方法就是对同一个系统用不同的思路重写几遍,每一遍都有收获,每一遍都有提高。
事非经过不知难,但是难过之后才会有一览众山小。如果有时间,试着将经典的那几套系统在了解其核心概念的基础自己写一下,很快境界和眼光就上去了。例如 Redis,例如 K8S,例如 ES。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 命令式与声明式——Kubernetes部署教程
- 声明式 (declarative) vs 命令式 (imperative)
- Nim 1.0 发布,命令式编程语言
- Nim 0.17.2 发布,命令式编程语言
- 命令式组件Message、Dialog的主流写法分析
- Nim 0.18.0 发布,命令式编程语言
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
程序员成长的烦恼
吴亮、周金桥、李春雷、周礼 / 华中科技大学出版社 / 2011-4 / 28.00元
还在犹豫该不该转行学编程?还在编程的道路上摸爬滚打?在追寻梦想的道路上你并不孤单,《程序员成长的烦恼》中的四位“草根”程序员也曾有过类似的困惑。看看油田焊接技术员出身的周金桥是如何成功转行当上程序员的,做过钳工、当过外贸跟单员的李春雷是如何自学编程的,打小在486计算机上学习编程的吴亮是如何一路坚持下来的,工作中屡屡受挫、频繁跳槽的周礼是如何找到出路的。 《程序员成长的烦恼》记录了他们一步一......一起来看看 《程序员成长的烦恼》 这本书的介绍吧!