理念
这将是高屋建瓴的一章。 “为什么?!”你想,"尼玛!我以为这是一本关于编程的书,你特么跟我讲理念,我要拿回我的钱!"。稍安勿躁。。。这本书的受众是那些想要在编程中找到更好方式的开发者。那么我们现在首先要谈谈为什么我们想要更好的方式。
对向来以‘懒惰’著称的程序员们来说,为什么我们要选择改进?唯一可以理解的是,提高我们的技能让我们可以更‘懒’。。。我们希望用更少的代码来完成更多的任务。函数式反应型编程可以帮助我们达成这些目标,但它同时也意味着我们必须跳出自己的舒适区去接受函数式编程的洗礼。
所有的程序都是为了完成某些任务。大多数程序员所受的训练都是命令式编程。这种模式依赖于他们希望自己的程序如何来完成这些任务:开发者编写很多的指令来修正程序的状态;如果开发者在正确的位置上编写了正确的指令,那么程序将会正确地完成任务。
这听起来好平凡。。。
为什么编程时我们思考问题的方式都停留在“怎么做”这个点上? 因为计算机实际上是以一条条命令来工作的,CPU的程序计算器尽职尽责,按部就班:读取(怎么做的指令)---> 执行--->读取--->执行。。。所以理所当然的,我们只要告诉他们“怎么做”就好了(即命令式编程)。。。多么无聊啊。
与此相反,声明式编程(DeclarativeProgramming)将程序员们从纷繁复杂的对如何完成某些任务的细枝末节的流程中解放出来,将关注点集中在任务到底“是什么”而非实现任务的流程。声明式编程(DeclarativeProgramming)是命令式编程之外的几种编程范式的一个总称,我们将在稍后讨论。
维基百科:
声明式编程(英语:Declarative programming)是一种编程范型,与命令式编程相对立。它描述目标的性质,让电脑明白目标,而非流程。声明式编程不用告诉电脑问题领域,从而避免随之而来的副作用。而指令式编程则需要用算法来明确的指出每一步该怎么做。
函数式反应型编程是声明式编程的子编程范式之一,这是本书要讨论的主要内容。