最常用的编程范式
计算机科学中主流的:
1.面向对象编程
2.面向过程编程
3.泛型编程
工程业务框架中特有的:
4. 事件驱动编程,一些VC,VB,Java框架中。
5.并发编程,分布式编程。
非常优秀但是很少用的编程思想:
1.模板元编程(操作编译决策)
模板元编程特性:
早期(编译期)的类型检查:例如一个容器,如果人们想让它装A类对象,但后来又把兄弟B类对象装了进去那么就需要检查一把了。
提升编译期决策在整个决策过程当中的地位:例如用到回调函数时候如果回调函数还没有声明那么可以用的时候把声明传进去。
效率:由于很多信息都放在了编译期,进行计算和抉择,所以元编程能够显著的提高构件的效率,与不使用元编程的构件相比,前者在编译期做掉了许多工作,譬如类型转换,函数分派等。
2.函数式编程(语法树编译器),以Lisp/haskell为代表
大概理解,函数式编程是一种数学,而不是编程了,它是从编译器语法树的角度出发,所以很像xml结构,自定义语法树,根据这些定义然后执行自己的解析逻辑和运算逻辑,因为是面向编译器面向理论的,所以在工业界最近几十年不会得到广泛应用,但是对于编译思维却是很好的训练。它可以很复杂,也可以很简单:
其实Lisp就是把语法直接按逆波兰式直接表示而已,更符合编译时构造的语法树。而且LISP的数据也可能是一个指向代码的指针,且可以更简单地进行传递而已。
更多的编程范式:
见: https://zh.wikipedia.org/zh/%E5%A4%9A%E9%87%8D%E7%BC%96%E7%A8%8B%E8%8C%83%E5%BC%8F
https://zh.wikipedia.org/zh/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%9E%8B
并发编程,约束编程, 数据流编程, 声明性编程, 分布式的编程,函数式编程,泛型编程,命令式编程,逻辑编程,元编程,面向对象编程。
C++已逐渐发展为一门多范式编程语言,集面向过程、面向对象、泛型编程、模板元编程、函数式编程等多种范式于一身。
这些编程思想都不是难题了,更加重要的是为了提高解决问题的能力,为了做出优秀的产品,而学习有用的工业界的技术,无论是Java,OC,python都是很优秀的,
为了写出最优秀的产品而选用最合适的语言和最合适的常用的设计范式(常用是为了可读性强),更重要的是优雅设计架构,规范化编程规则和不断重构。