几种编程风格简介

面向对象,面向过程,函数式编程,声明式编程 都是一种编程风格:

一、函数式编程lisp就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,模拟数学上的函数,,任意一个函数, 只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。

函数式编程的特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!                      不会修改外部参数或变量的值                      精简   可读性差

python 不是一个完全意义上的函数式编程语言,只是引用了 函数式编程的风格 比如 map reduce filter 匿名函数python 是允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出, 因此,这种函数是有副作用的,可能会修改外部参数或变量的值。以后学习进程,线程时函数式编程就会引起改变外部变量的问题.

二、面向过程的编程思想:流水线式的编程思想,在设计程序时,需要把整个流程设计出来   优点:体系结构更加清晰         简化程序的复杂度   缺点:可扩展性及其的差   面向过程编程的应用场景是:不需要京城变化的软件 如 linux 内核 httpd,git等

面向过程的编程 与函数式编程的关系:函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

三、声明式编程:列表表达式  生成器对象 和列表解析都是将一系列代码封装到一行赋给一个变量,是一种编程的方式

四、面向对象的编程只是解决了代码的可扩展性的问题特点:      对象之间交互的结果不能确定      可扩展性强      可控性差应用场景:需求经常变化的   用户层,互联网应用,游戏等
时间: 2024-09-30 11:52:47

几种编程风格简介的相关文章

学到的一种编程风格

看斯坦福视频,学到一个觉得不错的编程风格,记录下来 在一个方法中,如果有返回值,可以这样写:1 初始化你想要得到值 2 然后进行操作 设置等 3最后返回. 实例 - (Card*)getRandomCard { Card * card = nil; if (self.cardArray.count == 0) { } return card; } 个人觉得这样写整个方法非常清晰,以后维护起来也很方便

链表结构的几种编程风格

看到的有两种,所以记下来了,以后慢慢添加. 1 typedef int ElementType; typedef struct Node *PtrToNode; struct Node { ElementType Data; PtrToNode Next; }; typedef PtrToNode List; 2 typedef struct Node{ int Data; struct Node *Next; }List;List L; List *Ptrl; 不知道哪种风格比较好,个人更喜欢

5种主要的编程风格和它们使用的抽象

大部分程序员使用一种编程语言,并只使用一种编程风格.他们使用的编程方式是所用语言强加给他们的.通常,他们没有机会换一种方式来思考问题,因此难以看到选择更适合手上问题的编程风格所带来的好处. 面向过程  算法 面向对象  类和对象 面向逻辑  目标,通常以谓词演算的方式表示 面向规则  如果-那么规则 面向约束  不变的关系 没有一种编程风格是适合所有类型的应用的.例如,面向规则的编程可能最适合设计知识库,而面向过程的编程可能最适合设计计算密集的操作.面向对象风格最适合的应用范围最广,实际上,这种

编程风格大杂烩

编程根据环境和语言的不同,造就了开发者有很多种不同的编程风格,比如C系列程序员都喜欢Allman风格,而Java系列程序员大部分喜欢K&R风格,以下总结了Reddit论坛的一些讨论: 编程风格除了表明你愿意使用某种编程风格之外不能表明任何东西.这是加分项么?肯定是.但这意味着这个人就是个优秀的程序员么?不,这还决定不了那么多东西. 一句话:不论标准是什么,Allman风格才是唯一真正的缩进风格. 一句话:Tab键应该用于缩进. 一句话:空格键应该用于缩进. 我是Allman优等民族! 因为读的多

EAFP和LBYL 两种防御性编程风格

EAFP:Easier to ask for forgiveness than permission 获得事后原理总是比事先得到许可要容易的多. 这个EAFP在python中表现的比较多.EAFP,This common Python coding style assumes the existence of valid keys or attributes and catches exceptions if the assumption proves false. This clean and

【专家坐堂】四种并发编程模型简介

本文来自网易云社区 概述 并发往往和并行一起被提及,但是我们应该明确的是"并发"不等同于"并行" ?       并发 :同一时间 对待 多件事情 (逻辑层面) ?       并行 :同一时间 做(执行) 多件事情 (物理层面) 并发可以构造出一种问题解决方法,该方法能够被用于并行化,从而让原本只能串行处理的事务并行化,更好地发挥出当前多核CPU,分布式集群的能力. 但是,并发编程和人们正常的思维方式是不一样的,因此才有了各种编程模型的抽象来帮助我们更方便,更不容

MATLAB 编程风格指南及注意事项

MATLAB编程风格指南Richard Johnson 著Genial 译MATLAB 编程风格指南Richard JohnsonVersion 1.5,Oct. 2002版权: Datatool 所有翻译:Genial @ USTC“Language is like a cracked kettle on which we beat tuned to dance to, while allthe time we long to move the stars to pity.”- Gustave

Javascript编程风格

转自阮一峰 http://www.ruanyifeng.com/blog/2012/04/javascript_programming_style.html 作者: 阮一峰 日期: 2012年4月27日 Douglas Crockford是Javascript权威,Json格式就是他的发明. 去年11月他有一个演讲(Youtube),谈到了好的Javascript编程风格是什么. 我非常推荐这个演讲,它不仅有助于学习Javascript,而且能让你心情舒畅,因为Crockford讲得很幽默,时不

Google Java编程风格指南--命名约定

命名约定5.1 对所有标识符都通用的规则标识符只能使用ASCII字母和数字,因此每个有效的标识符名称都能匹配正则表达式 \w+ .在Google其它编程语言风格中使用的特殊前缀或后缀,如 name_ ,  mName ,  s_name 和 kName ,在Java编程风格中都不再使用.5.2 标识符类型的规则5.2.1 包名包名全部小写,连续的单词只是简单地连接起来,不使用下划线.5.2.2 类名类名都以 UpperCamelCase 风格编写.类名通常是名词或名词短语,接口名称有时可能是形容