美文网首页
提示49-50 变换式编程

提示49-50 变换式编程

作者: 飞絮搅青冥 | 来源:发表于2022-02-23 22:58 被阅读0次

今天学习有关变换式编程的内容,先看提示:

提示49:编程讲的是代码,而程序谈的是数据。

提示50:不要囤积状态,传递下去。

作者举例说明了所有程序其实都是对数据的一种变换。然后每个变换都从前一个变换获取输入并将输出传递给下一个变换。这样就能避免将数据封装在对象中来回折腾,减少了很多耦合。作者强调了在这个过程中,我们要传递状态,当应用程序将其输入转
换为输出时,可以自由地表达自己的展开过程。一个函数可以在任何地方使用(并重用),只要其参数与其他函数的输出相匹配。

感觉这一章作者主要表达的就是函数式编程。自从Java8引入stream以后,java也可以使用管道来编写代码。作者在文中已经详细介绍了这样面向过程编程的好处,减少了耦合,方便复用等等,我自己在平时的代码中也经常使用。但这并不意味着stream是万能的,我感觉它最大的优势在于每个函数的输入输出都非常清楚,没有副作用,而且单个函数构造简单,方便测试,但是缺点也很明显。了应对日益变更的需求,有可能需要不断的有高阶函数来包装之前已经存在的 简单函数,多层包装之后大大增加了代码复杂度从而将代码变得难以维护和可读性差。拿个最简单的举例,我上次使用的那个方便很多地方复用的function,已经让黎叔直呼看不懂了。当函数太抽象以后说不定会起到反作用,所以具体如何使用还是需要我们做好取舍。

private static <T> Predicate<T> distinctByKey(Function<? super T, String> function) {
        Set<String> set = ConcurrentHashMap.newKeySet();
        return t -> set.add(function.apply(t));
    }

相关文章

  • 提示49-50 变换式编程

    今天学习有关变换式编程的内容,先看提示: 提示49:编程讲的是代码,而程序谈的是数据。提示50:不要囤积状态,传递...

  • Spring Boot 响应式 WebFlux 入门

    一、概述 友情提示:Reactive Programming ,翻译为反应式编程,又称为响应式编程。国内多数叫响应...

  • python 报错释义(一)

    1.脚本式编程,运行.py程序时提示错误 SyntaxError: unexpected character af...

  • 程序员修炼~变换式编程

    如果你不能将正在做的事情描述为一个流程,那表示你不知道自己正在做什么。 突然对这句话很有感觉,如果你不知道你的工作...

  • 声明式编程与命令式编程区别

    声明式编程 与 命令式编程: 命令式编程:描述计算机所做行为的编程规范 声明式编程:响应式编程属于声明式编程的一种...

  • RxSwift初探(1)

    一、前提:函数响应式编程思想 简单来说 函数响应式编程 = 函数式编程 + 响应式编程 (1)函数式 函数式编程是...

  • iOS 函数编程 & 链式编程

    函数式(链式)编程 函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programmin...

  • RxJava系列|RxJava简介(一)

    函数响应式编程 函数式编程是一种编程范式。 常见的编程范式有:命令式编程、函数式编程和逻辑式编程。 面向对象就是一...

  • 你真的理解面向对象吗?

    面向对象 我们常见的编程范式有命令式编程,函数式编程,逻辑式编程,而面向对象编程是一种命令式编程。 命令式编程是面...

  • 2018-05-11日记

    WORD LIST 49-50

网友评论

      本文标题:提示49-50 变换式编程

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