关于声明式编程和命令式编程

关于声明式编程和命令式编程

声明式编程还是命令式编程是在编程的时候的侧重点不同:

  1. 命令式编程:它侧重于如何实现程序,就像我们刚接触编程的时候那样,我们需要把程序的实现过程按照逻辑结果一步步写下来。
  2. 声明式编程:它侧重于定义想要什么,然后告诉计算机/引擎,让他帮你去实现。像 React,就是一个使用 声明式编程的一个很好的例子。

关于命令式编程没什么好说的,就是我们最正常的按照逻辑实现的步骤。

至于声明式编程,它只关心结果是否与定义的一致,并不关心实现的过程。虽然在真实的开发中,这个实现的具体过程仍是由开发者实现,但是这个具体实现过程也是和执行过程分离了的。举个例子:

我们现在要实现这样一个逻辑:将一个数组中的元素乘2后放入一个新数组。

1
2
3
4
5
6
let arr = [1, 2, 3 , 4 ,5]
let newArr = arr.map(num => {
return num * 2
})

console.log(newArr) // [2,4,6,8,10]

这里的 map 函数就是我们的执行过程,map 函数中的参数(数组),就是我们算法的具体实现过程。两个是分离的,你也可以在 map 函数中实现其他逻辑,你也可以将这个实现过程放在其他地方执行。

从这个例子我们也可以看出声明式编程能更好的提高代码的可读性和健壮性,同时也能更方便进行重构。

在声明式编程中,开发者的重中之重不是如何去实现(How),而是定义好你想要得到是什么(What,然后你的每一步实现,都是围绕着这个(What)去实现的。

参考资料:

  1. 声明式编程和命令式编程的比较:本文讲的非常好,仅前面几节就把声明式编程和命令式编程的区别描述的很清楚;
  2. 从年会看声明式编程(Declarative Programming)-程墨Morgan:本文用年会这个例子介绍了什么是声明式编程及其工作方式;

最好先看资料2,在看资料1,会更加清楚。

文章目录
  1. 关于声明式编程和命令式编程
  2. 参考资料:
|