首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏架构悟道

    编程范式知多少——厘清主流编程范式

    本文主要是对业界主流的编程范式编程思想)做一个汇总阐述,厘清各个编程范式之间的差异点、优缺点等,希望能对大家系统的了解编程范式提供点帮助。 编程范式哪家强 3种主流编程范式 命令式编程 看个例子: 周末,中午我想吃个烤鸡翅,然后我: 去菜场买几个鸡翅;鸡翅洗净、腌制;放入烤箱,设定烘烤温度、时间,开始烤;烤箱中取出鸡翅,放入盘中。 命令式编程是最常规的一种编程方式,各种主流编程语言如C、C++、JAVA等都可以遵循这种方式去写代码。 了解了函数式的概念,再回头看下函数式编程。其核心思想与声明式编程是一致的,即:只关注做什么而不是怎么做。所以这种层面上来说,函数式编程是声明式编程的一部分。 collection.parallelStream() .filter(n -> n > 5) .collect(Collectors.toList()); 最后 一个大型系统中,各种编程范式一般都是相互集成

    1.3K20编辑于 2022-07-14
  • 来自专栏斑斓

    聊聊编程范式

    编程范式是程序员的思维底座,决定了设计元素和代码结构。程序员把领域问题映射到某个编程范式之上,然后通过编程语言来实现。 为了能更深刻的理解编程范式,我们接下来一起回顾一下编程范式的简史。 ◐ 编程范式简史 机器语言使用 0 和 1 组成的二进制序列来表达指令,非常晦涩难懂。 编程范式是抽象的,编程语言是具体的。编程范式编程语言背后的思想,要通过编程语言来体现。 编程范式的世界观体现在编程语言的核心概念中,编程范式的方法论体现在编程语言的表达机制中,一种编程语言的语法和风格与其所支持的编程范式密切相关。 虽然编程语言和编程范式是多对多的关系,但每一种编程语言都有自己的主流编程范式。比如,C 语言的主流编程范式是结构化编程,而 Java 语言的主流编程范式是面向对象编程

    1K10编辑于 2023-03-23
  • 来自专栏杨丝儿的小站

    编程范式整理

    编程语言 与成百种编程语言(Programming Language)相比,编程范式(Programming Paradigm、范式)要少得多。 如图所示,共有27种范式。 多数范式之间仅相差一个或几个概念。 主要的范式 最常用的范式有三个:过程试编程,面向对象编程(OOP),函数式编程(FP)。然后我们介绍一下新兴的第四种范式也就是面向切面编程(AOP)。 过程试编程经历了发展的两个阶段,非结构化到结构化 非机构化编程(Unstructured programming):机器语言和汇编语言的编程范式被认为是非结构化编程,没有封装函数的概念,代码中goto 结构化编程(Structured programming):抽象了机器的行为,屏蔽了部分计算机的硬件细节。代表语言就是我们常用的C语言。 有时结构化编程,也称作过程式编程,或面向过程编程。 主要三种范式的对比 领域驱动设计 不难看出,编程语言的发展就是一个逐步远离计算机硬件,向着待解决的领域问题靠近的过程。

    56230编辑于 2022-03-17
  • 来自专栏无量测试之道

    编程范式--函数式编程

    传统的解决方案 函数式解决方案 命令式和函数式区别 命令式编程风格常常迫使我们出于性能考虑,把不同的任务交织起来,以便能够用一次循环来完成多个任务。 在面向对象的命令式编程语⾔里面,重用的单元是类和类之间沟通⽤的消息,比如方法。 而函数式编程用 map()、filter() 这些高阶函数把我们解放出来,让我们站在更高的抽象层次上去考虑问题,把问题看得更清楚。函数式编程语言实现重⽤的思路很不一样。

    1.1K10编辑于 2022-07-04
  • 来自专栏云瓣

    编程范式 —— 函数式编程入门

    该系列会有 3 篇文章,分别介绍什么是函数式编程、剖析函数式编程库、以及函数式编程在 React 中的应用,欢迎关注我的 blog 命令式编程和声明式编程 拿泡茶这个事例进行区分命令式编程和声明式编程 命令式编程 1.烧开水(为第一人称) 2.拿个茶杯 3.放茶叶 4.冲水 声明式编程 1.给我泡杯茶(为第二人称) 举个 demo // 命令式编程 const convert = function const convert = function(arr) { return arr.map(r => r.toLowerCase()) } 什么是函数式编程 函数式编程是声明式编程范式。 在函数式编程中数据在由纯函数组成的管道中传递。 函数式编程可以用简单如交换律、结合律、分配律的数学之法来帮我们简化代码的实现。 如下图: 学习函数式编程就是学习各种函子的过程。

    1.1K10发布于 2019-03-04
  • 来自专栏关忆北.

    Spring编程模型(范式)

    面向对象编程 契约接口:Aware aware:意识到的 契约接口(Aware)是Spring框架中的一个特性,它允许Bean对象意识到它们所在的环境并与之进行交互,用于提供特定的功能或信息给Bean 面向切面编程 基于接口的JDK动态代理 JDK动态代理是通过Java的反射机制实现的。它要求目标对象实现一个或多个接口。在运行时,通过Proxy类和InvocationHandler接口创建代理对象。 面向元编程 面向元编程(Metaprogramming)是一种编程范式,它涉及编写能够创建、操作或操纵其他程序或自身代码的程序。 元编程使开发人员能够在运行时动态地操作代码结构、生成代码、修改代码行为等。 面向元编程的目标是通过编写代码来操作代码本身,以提高代码的灵活性、可扩展性和可重用性。 面向元编程常用技术/工具 反射:通过反射机制,程序可以在运行时获取和操作类、方法、字段等的信息,包括创建对象、调用方法、修改字段值等。反射使得程序能够动态地检查和操作代码结构。

    39230编辑于 2023-10-11
  • 来自专栏一个会写诗的程序员的博客

    编程范式 (Programming paradigm)

    编程范式 Programming paradigm 范,模范、典范也。范式即模式、方法。常见的编程范式有:函数式编程、程序编程、面向对象编程、指令式编程等。 在面向对象编程的世界,程序是一系列相互作用(方法)的对象(Class Instances),而在函数式编程的世界,程序会是一个无状态的函数组合序列。 不同的编程语言也会提倡不同的“编程范型”。 在1980年后,面向对象编程有迅速的发展;面向对象编程语言均有着命令式的风格,但引入了类和对象的核心概念,从此编程进入了 OOP 时代。 面向对象编程中,通常利用继承父类,以实现代码重用和可扩展性。 3.声明式编程(Declarative programming) 一种编程范式,与命令式编程相对立。 声明式编程因大幅简化了并行计算的编写难度,自2009起备受关注。 常见的声明式编程语言有: 数据库查询语言(SQL,XQuery) 正则表达式 逻辑编程 函数式编程 组态管理系统等。

    1.9K10发布于 2018-09-12
  • 来自专栏漫漫前端路

    编程范式粗讲

    编程范式粗讲 编程范式(Programming paradigm)指计算机编程的基本风格或典型模式。 编程范型提供了(同时决定了)程序员对程序执行的看法。 着眼于解决问题的不同方式,编程范式现存许多种,其中如:面向过程、面向对象、函数式编程范式,我们对此比较熟悉,他们也经常出现在我们的视野中。 为了进一步加深对编程范式的认识,这里介绍几种常用的编程范式。 面向过程 面向过程编程,也被称之为命令式编程,是一种最原始,也是我们最熟悉,日常工作中使用较多的一种编程范式。 总结 如今,编程范式现存许多种: ? 每个编程范式在自己所注重的场景里发挥着举足轻重的作用。 在实际项目中,更多的时候,我们是使用的多范式编程,正如范·罗伊信仰的一样:解决一个编程问题,需要选择正确的概念;解决多个问题,则需要组合分属不同部分的多个概念。

    77520发布于 2019-08-20
  • 来自专栏Tecvan

    浅谈 Function Programing 编程范式

    如果按以往命令式编程思维,可能会这么写: const transform1 = (str) => { if (typeof str === "string") { return `${str.toUpperCase 相对而言,函数式编程思维则会尽量将逻辑抽象拆解为可被复用的若干最小单位,同样的需求可能会这么实现: const { flow } = require("lodash/fp"); const toUpper 总而言之是:一种抽象思维、一种编程风格、一种编程规范。 FP 具有以下特点: 1. 而 Imperative Programming (命令式编程)比较容易写出状态互相依赖的代码(着重how)。 但相比之下两者也有些差异: lodash/fp依赖于lodash,是在lodash基础上实现的对函数式编程的倾斜,好上手,但是受限于lodash,有很多局限性。

    87230编辑于 2022-09-02
  • 来自专栏运维开发王义杰

    编程范式的发展历史

    编程范式是指特定的编程风格或者方法论,每一种编程范式都代表了一种特定的视角来思考和解决问题。编程范式的发展历史是计算机科学和软件工程发展的一部分,反映了技术的进步和行业需求的变化。 面向过程编程是一种基于过程(也称为函数或例程)的编程范式,它通过将程序分解为一系列过程来解决问题。 这种编程范式的代表性语言有 C++、Java 和 Python。 面向对象编程大大提高了软件的复杂性管理能力,它成为了商业软件开发的主流编程范式。然而,面向对象编程也有其局限性。 然而,函数式编程作为一种编程范式,直到 1990 年代才开始引起程序员的注意。函数式编程是一种基于函数和不可变数据的编程范式,它强调函数的组合和数据流的变换。 结语 编程范式的发展历史反映了计算机科学和软件工程的进步。每一种编程范式都有其优点和适用场景,没有哪一种编程范式是适合所有问题的。

    80830编辑于 2023-08-10
  • 来自专栏AI系统

    【AI系统】框架编程范式

    编程范式编程范型、或程式设计法(Programming paradigm),是指软件工程中的一类典型的编程风格。 常见的编程范型有:函数式编程、命令式编程、声明式编程、面向对象编程等等,编程范式提供并决定了开发者对程序执行的看法。 在开发者使用 AI 框架进行编程的过程中,主要使用到的编程范式主要有 2 种:1)声明式编程与 2)命令式编程。 本文将会深入展开和介绍两种不同的编程范式对 AI 框架整体架构设计的影响,以及目前主流的 AI 框架在编程范式之间的差异。 (Declarative programming)是一种编程范式,与命令式编程相对立。

    37610编辑于 2024-12-06
  • 来自专栏learn

    【Web前端】OOP编程范式

    面向对象编程(Object-Oriented Programming,简称 OOP)是一种程序设计思想,它通过将程序视为一组相互作用的对象来设计程序。 面向对象编程将系统视为由多个对象组成的集合,每个对象代表系统的某个特定方面。对象包含方法和数据。 四、面向对象编程与 JavaScript 4.1 JavaScript 中的面向对象编程 虽然 JavaScript 是一门基于原型的语言,但它同样支持面向对象编程的概念。 仍然可以通过构造函数和原型实现基于类的面向对象编程特性。直接使用构造函数和原型来实现这些特性(例如继承)可能比较复杂。 JavaScript 提供了一些额外的功能,这些功能在原型模型之上再抽象出一层,将基于类的面向对象编程的概念映射到原型中,从而能够更加直接地使用这些基于类的编程概念。

    34500编辑于 2024-11-19
  • 来自专栏窗户

    炒菜模型——各种编程范式

    如要转贴,必须注明原文网址   http://www.cnblogs.com/Colin-Cai/p/9431665.html   作者:窗户   我这里以炒菜为例来给出各种编程范式的示例。 过程式编程   生活的经验告诉我们以下的物理现实,事情是按照时间的顺序一个步骤接一个步骤的发展。编程里有一个范式就模拟了这样的经验,就是过程式编程。    逻辑式编程   逻辑式编程是从另外一个思路去编程。它强调的是我们事先知道一系列事实,然后通过这些事实自动推出合理的结果。    所以这种编程范式用于早期的人工智能。  面向对象编程   面向对象编程并非是一个孤立的编程范式,它一般和以上几种编程范式绑定在一起。我们最常见的面向对象编程通常主要基于过程式编程。    上面列举的各种编程范式,思维的重心彼此都有明显差异,我们学习不同的范式实际上也是为了不同角度的看待问题,以求思路更加宽广。

    79831发布于 2018-12-27
  • 来自专栏北洋csdn

    详细聊聊什么是编程范式

    编程范式分为结构性编程,面向对象编程,函数式编程结构性编程:面向具体的实际过程,典型的比如c,面向过程。 面向赋值语句,赋值的计算不变性,典型的比如lisp函数式编程这个是最难理解的一种编程范式,结构性最简单ifelse小学生都可以理解,对象型稍微难一些设计软件需要按照面向对象的三个特性进行设计,不再是随意摆放的构造快 ,需要将基本快按照 现实世界的 业务模型 进行重组,函数式编程是最难理解的一个范式,按照函数功能模型进行拆解不变的功能模型,在设计时需要将业务中变和不变的部分识别出来,将不变的部分抽象为函数的接受者receiver 如果你懈怠了没有用心去分离那么设计出来的函数就是垃圾,自己都觉得很难用强迫自己重新思考面向对象和函数式编程的结合面对对象组合的是类和数据,而函数式编程组合的是函数功能。 推荐书籍:函数式编程思维函数式编程的两个特点是组合和不变组合在于表达力和函数的功能得到了大大增强,那么不变性提高了程序的什么呢?

    46620编辑于 2023-12-11
  • 来自专栏Reck Zhang

    Operating System 13 - 并发编程范式

    并发编程范式 并发编程概念 并发编程的三要素是: 内存 任务 线程 并发编程就是关于如何抽象, 封装和操作三要素的艺术. 内存 并发编程的源头是在于内存中的数据需要在不同的线程之间共享, 因为多线程程序在运行时存在交错(interleaving). 我们将任务抽象成五个要素: 前置任务依赖 输入, 共享数据读 执行的计算和操作 输出, 共享数据写 后置任务通知 线程 通常来说, 并发编程范式分为三种: CSP(Communicating Sequentail Actor属于并发组件模型, 通过组件方式定义并发编程范式的高级阶段, 避免使用者直接接触多线程并发或线程池等基础概念, 其消息传递更加符合面向对象的原始意图. Procedural 以C语系为代表的过程式编程语言, 在处理并发编程时, 通常是使用同步工具来完成, 这些工具按照抽象级别分为: BlockingQueue, TaskQueue, Producer-Consumer

    70830发布于 2021-08-11
  • 转载:【AI系统】框架编程范式

    编程范式编程范型、或程式设计法(Programming paradigm),是指软件工程中的一类典型的编程风格。 常见的编程范型有:函数式编程、命令式编程、声明式编程、面向对象编程等等,编程范式提供并决定了开发者对程序执行的看法。 在开发者使用 AI 框架进行编程的过程中,主要使用到的编程范式主要有 2 种:1)声明式编程与 2)命令式编程。 本文将会深入展开和介绍两种不同的编程范式对 AI 框架整体架构设计的影响,以及目前主流的 AI 框架在编程范式之间的差异。 (Declarative programming)是一种编程范式,与命令式编程相对立。

    39310编辑于 2024-12-13
  • 来自专栏AI系统

    【AI系统】Ascend C 编程范式

    AI 的发展日新月异,AI 系统相关软件的更新迭代也是应接不暇,作为一篇讲授理论的文章,我们将尽可能地讨论编程范式背后的原理和思考,而少体现代码实现,以期让读者理解 Ascend C 为何这样设计,进而随时轻松理解最新的 本文将针对 Ascend C 的编程范式进行详细讲解,重点讲授向量计算编程范式。 向量编程范式基于 Ascend C 编程范式的方式实现自定义向量算子的流程如下图所示,由三个步骤组成:算子分析是进行编程的前置任务,负责明确自定义算子的各项需求,如输入输出、使用 API 接口等;核函数的定义和封装是编程的第一步 在本文中,我们将从 add_custom 这一基本的向量算子着手,根据自定义算子的开发流程,逐步介绍如何根据向量编程范式逐步编写自定义向量算子,最后会介绍 Ascend C 向量编程如何进行数据切分。 核心处理函数 Process()函数实现基于向量编程范式,将核函数的实现分为 3 个基本任务:CopyIn,Compute,CopyOut,Process() 函数通过调用顺序调用这三个基本任务完成核心计算任务

    35210编辑于 2024-12-02
  • 转载:【AI系统】Ascend C 编程范式

    AI 的发展日新月异,AI 系统相关软件的更新迭代也是应接不暇,作为一篇讲授理论的文章,我们将尽可能地讨论编程范式背后的原理和思考,而少体现代码实现,以期让读者理解 Ascend C 为何这样设计,进而随时轻松理解最新的 本文将针对 Ascend C 的编程范式进行详细讲解,重点讲授向量计算编程范式。 向量编程范式基于 Ascend C 编程范式的方式实现自定义向量算子的流程如下图所示,由三个步骤组成:算子分析是进行编程的前置任务,负责明确自定义算子的各项需求,如输入输出、使用 API 接口等;核函数的定义和封装是编程的第一步 在本文中,我们将从 add_custom 这一基本的向量算子着手,根据自定义算子的开发流程,逐步介绍如何根据向量编程范式逐步编写自定义向量算子,最后会介绍 Ascend C 向量编程如何进行数据切分。 核心处理函数 Process()函数实现基于向量编程范式,将核函数的实现分为 3 个基本任务:CopyIn,Compute,CopyOut,Process() 函数通过调用顺序调用这三个基本任务完成核心计算任务

    33210编辑于 2024-12-12
  • 来自专栏程序人生 阅读快乐

    冒号课堂:编程范式与OOP思想

    《冒号课堂》以课堂对话的形式,借六位师生之口讲述编程要义。 上篇对编程范式作了入门性的介绍,并对一些流行的编程语言进行了简评;下篇侧重阐发软件设计思想,其中在范式上以OOP为主,在语言上以C++、Java和C#为主。 全书寓庄于谐,深入浅出,既可开阔眼界,又能引发思考,值得编程爱好者品读。

    1.3K10发布于 2018-10-10
  • 来自专栏JavaEdge

    Flink实战(三) - 编程范式及核心概念

    Flink程序是实现分布式集合转换的常规程序(例如,过滤,映射,更新状态,加入,分组,定义窗口,聚合)。最初从源创建集合(例如,通过从文件,kafka主题或从本地的内存集合中读取)。结果通过接收器返回,接收器可以例如将数据写入(分布式)文件或标准输出(例如,命令行终端)。 Flink程序可以在各种环境中运行,独立运行或嵌入其他程序中。执行可以在本地JVM中执行,也可以在许多计算机的集群上执行。

    2.3K20编辑于 2022-11-30
领券