小谈编程思想

作者: osbornZ | 来源:发表于2015-08-27 00:53 被阅读1593次

有一个很不错的概念叫做“Unknown Unknown”,意思是如果你不知道一个东西的话,你也不会知道你自己不知道它。

众所周知大家所熟悉的主流编程思想还是面向对象编程,然而,并不是只存在于这一种方式。我们要习惯去怀疑生活工作中的一些既定的理论和方法,没有确凿理论依据的出现,我们还是要相信有其他的情况,只是我们还没有发现它。

面向对象OOP

面向对象的编程思想最大的特色就是可以编写自己所需的数据类型,以更好的解决问题。“类”就是描述了一组有相同特性(属性)和相同行为(方法)的集合。

抽象成了其中最重要的问题。例如,如果有一个问题“砖头有多少用途?”在我们刚拿到题目后,便会直接简单的根据大脑中最常见的思维方式去思考,决定能够盖房子,砸人。。。我们却可以系统的去从砖头的各个属性去抽象,“长方体,有棱角,坚硬的,有一定体积,有一定质量等”,有同样属性的相关的物体作用便都是砖头的用途,然而,我们又不能仅限于本身,我们可以进行一些“操作”修改的行为,(大小可以调整,固体可以变为粉末,棱角可以打磨,形状可以改变等),对于如何进行编程,不同的语言语法不同,但是思想即如此,大家要学习的还是编程背后的思考方式,而不是语言本身。

函数式编程FP

丘齐,和图灵同时代的天才,从一种抽象角度提出了lambda算子的思想,当时图灵的抽象设计倾向于硬件性,他则从数学角度抽象,其中体现出来的抽象美开出了函数式编程语言这朵花。虽然本质源于lambda算子理论的抽象方式所出现的一些语言(Lisp,Scheme,Haskell。。。)由于抽象方式不符合人的思维习惯无法成为主流的编程语言,但这些却依然活跃在计算机科学界。Swift 引入了泛型和函数式编程的思想,也极大地扩展了设计的空间。

函数式编程是面向数学的抽象,在使用的时候的特点就是,你已经再也不知道数据是从哪里来了,每一个函数都是为了用小函数组织成更大的函数,函数的参数也是函数,函数返回的也是函数,将计算描述为一种表达式求值,函数式程序就是一个表达式。
更多的讨论内容
用递归的思想结合算子去理解。

特点

面向对象:

  • 数据和对数据的操作紧紧耦合
  • 对象隐藏它们操作的实现细节,其他对象调用这些操作只需要通过接口。
  • 核心抽象模型是数据自己
  • 核心活动是组合新对象和拓展已经存在的对象,这是通过加入新的方法实现的。

函数编程:

  • 数据与函数是松耦合的
  • 函数隐藏了它们的实现,语言的抽象是函数,以及将函数组合起来表达。
  • 核心抽象模型是函数,不是数据结构
  • 核心活动是编写新的函数。
  • 变量缺省是不变的,减少可变性变量的使用,并发性好

相关文章

  • 小谈编程思想

    有一个很不错的概念叫做“Unknown Unknown”,意思是如果你不知道一个东西的话,你也不会知道你自己不知道...

  • python和设计模式 1

    在这个系列,借助python聊一聊编程思想和方法论的问题。 谈编程思想前先要从一般的思想开始。为什么呢?因为事物是...

  • python面向对象1

    编程思想 编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪) 面向过程编程: 算法和逻辑 函数式...

  • 链式编程思想

    链式编程思想 链式编程思想

  • Day14 面向对象基础

    一.编程思想 编程思想: 面向过程编程(穷人思想), 函数式编程, 面向对象编程(富豪) 1.求1+...+100...

  • 反思0928

    反思建设幸福家庭 深入洽谈,畅谈,大谈,小谈, 谈我们的思想,谈我们的生活,谈幸福的目标,谈提升心灵品质, 1:建...

  • 寻找“高深术语”中活泼泼的地气

    面向对象的编程思想 编程,很简单,敲代码;思想,也简单,深思细想;编程思想,或者说思想编程,一说就知道难了,难在哪...

  • 前端思考

    编程语言 编程思想 编程能力 学习能力

  • 《Java编程思想》——《Java编程思想》——

  • 编程思想

    编程思想要解决的问题是什么? 编程思想的核心目的是,对现实世界建模。 当前流行哪些编程思想? 1. 面相对象编程 ...

网友评论

  • 她即我命:小白,不知道程序到底怎么入手,怎么写完,还是想问问编程思想的本质到底是什么😂
    osbornZ:我个人觉得主要是解决问题的思路,不管是什么样的思想最终是转化到架构设计上符合你的需求,不然也不会随着时间的发展 出现各种各样的框架设计。当然思想境界这个有点抽象,一般人也很难会有创新、
  • e7757bea06e5:简书里程序猿还挺多的,简直越来越喜欢
    osbornZ:@Z小花的花小喵 猿来如此 :fist:
  • c583c697f857:今晚翻了一下java8的特性,发现唯一没变的,是思考的习惯以及思维方式,和语言特性没啥关系。
    osbornZ:@c583c697f857 cool
  • 庸者的救赎:忘记之前在哪看过说swift是基于协议的,不敢苟同,你的观点还是在理的
    osbornZ:@彼年之华 引用Swift 创始人 Chris Lattner 的一段话:
    Swift 引入了泛型和函数式编程的思想,极大地扩展了设计的空间。
    我的意思是swift其设计有引入这样的思想!表达上是有点不合适。。
  • 莫提时光:第一句点赞👍
    osbornZ:@夏末 开放思想去思考
  • 91284011a764:好文
    osbornZ:@91284011a764 thx
  • 7c7f58e2a6dc:不错
    osbornZ:@慕课网 thx

本文标题:小谈编程思想

本文链接:https://www.haomeiwen.com/subject/reuhcttx.html