摘录自:《冒号课堂:编程范式与OOP思想》
范式译自英文的 paradigm ,也有译作典范、范型、范例的。所谓编程方式(programming paradigm),指的是计算机编程的基本风格或典范模式。借用哲学的术语,如果说每个编程者都是在创造虚拟世界,那么编程范式就是他们置身其中自觉不自觉采用的世界观和方法论。
编程是为了解决问题,而解决问题可以有多种视角和思路,其中普适且行之有效的模式被归结为范式。由于着眼点和思维方式的不同,相应的范式自然各有侧重和倾向。
编程范式是抽象的,必须通过具体的编程语言来体现。它代表的世界观往往体现在语言的核心概念中,代表的方法论往往体现在语言的表达机制中。一种范式可以在不同的语言中实现,一种语言也可以同时支持多种范式。任何语言在设计时都会倾向某些范式,同时回避某些范式,由此形成了不同的语法特征和语言风格。
相比设计模式,编程范式针对的问题领域更广泛,提出的思路和方法更普适、更抽象、更系统。此外,设计模式重在设计,对语言和工具的要求不高,而编程范式须要建立一套抽象机制和方法体系,离不开语言或工具的支持。
编程范式的核心价值在于:突破原有编程方式的某些限制,带来新思维和新方法,从而进一步解放程序员的劳动力。
编程范式为神,编程语言为形,应以神导形,以形传神。
事件驱动范式最重要的两个特征是被动性和异步性。被动性来自控制反转,异步性来自会话切换。
控制反转一般通过 callback 来实现,其目的是降低模块之间的依赖性,从而降低模块的耦合度和复杂度。
异步过程在主程序中以非阻塞的机制运行,即主程序不必等待该过程的返回就能继续下一步。异步机制能减少随机因素造成的资源浪费,提供系统的性能和可伸缩性。
独立是异步的前提,耗时是异步的理由。