×

Loading...

没有最好,只有最适合。本来OO的方法是借鉴了分类学的方法,而现实世界的事物及问题用分类学来定义和解决不总是最佳途径,函数编程也一样道理。

Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术 / Functional Programming +2

    大学里没学过 FP,F# 刚出来的时候,扫了一眼,TBH,没有 get it...觉得平常用不上...

    上周 James_2018 (thanks) 问了那个问题 #11865340 后,又去网上看了看 FP 的一些基本概念,发现其实平常用的很多东西已经是有 FP 在里面了,只是我自己愚钝,没有比较深入了解罢了。

     

    这里有个很短的 video 介绍 FP vs OOP in typescript (基本上 ES6 也可以):

    看完基本上能了解 FP vs OOP - 气宗 vs 剑宗之争。

    但基本上我们 OOP 剑宗也可以用很多气宗的东西。比如 c# 支持 lambda 很久了。

    javascript ES6 有了 arrow function 之后,大大简化了 ‘function as parameter': https://codeburst.io/javascript-arrow-functions-for-beginners-926947fc0cdc

    也有了大量很好用的东西,比如  map / reduce / filter... https://medium.com/poka-techblog/simplify-your-javascript-use-map-reduce-and-filter-bd02c593cc2d

    Higher order functions 语法也非常简练:https://developer.ibm.com/node/2016/01/11/higher-order-functions-in-es6easy-as-a-b-c/

    再进一步,javascript 的各种 combinators: https://gist.github.com/Avaq/1f0636ec5c8d6aed2e45

     

    另外,对一些 framework 的由来也会更理解一些,比如 redux 的 immutable / reducer 的概念...

     

    说得不对的地方,请批评指教。

     

    • 现在用 FP 的大概比用 OOP 多了吧? +1
      • 底子还是oo, 就像 Java, 还是主流 +1
        • When you design an app, your focus might be different from each other.
      • 共存吧 - 就像 composition 和 inheritance --- 不是 vs 而是看具体情况哪个更合适就用哪个...
        • True. there has been debate on what is the better approach, the general consensus is that FP or OOP is better depending on the situation, and more and more newly started app developments are using FP approach. +2
          • 没有最好,只有最适合。本来OO的方法是借鉴了分类学的方法,而现实世界的事物及问题用分类学来定义和解决不总是最佳途径,函数编程也一样道理。
      • 你的理解那些场景或领域适用于FP , 比如普通应用,网页,操作系统,实时系统,分布系统。。。