前端开发js函数式编程真实用途体现在哪里

前端开发js函数式编程真实用途体现在:1、优化绑定;2、封装作用;3、复用。优化绑定:说白了前端和后端不一样的关键点是后端HTTP较多,前端渲染多,前端真正的刚需是数据绑定机制。

前端开发js函数式编程真实用途体现在哪里-Worktile社区

一、优化绑定

说白了前端和后端不一样的关键点是后端HTTP较多,前端渲染多,前端真正的刚需是数据绑定机制。后端一次对话,计算好Response发回就完成任务了,所以后端吃了二十年年MVC老本还是挺好用的。前端处理的是连续的时间轴,并非一次对话,像后端那样赋值简单传递就容易断档,导致状态不一致,带来大量额外复杂度和Bug。不管是标准FRP还是Mobx这种命令式API的TFRP,内部都是基于函数式设计的。函数式重新发明的Return和分号是要比裸命令式好得多的(前端状态可以同步,后端线程安全等等,想怎么封装就怎么封装)。

二、封装作用

大幅简化异步,IO,渲染等作用/副作用相关代码。和很多人想象的不一样,函数式很擅长处理作用,只是多一层抽象,如果应用稍微复杂一点,这点成本很快就能找回来(Redux Saga是个例子,特别是你写测试的情况下)。渲染现在大家都可以理解幂等渲染地好处了,其实函数式编程各种作用和状态也是幂等的,对于复杂应用非常有帮助。

三、复用

引用透明,无副作用,代数设计让函数式代码可以正确优雅地复用。前端不像后端业务固定,做好业务分析和DDD就可以搭个静态结构,高枕无忧了。前端的好代码一定是活的,每处都可能乱改。可组合性其实很重要。通过高阶函数来组合效果和效率都要高于继承,试着多用ramda,你就可以发现绝大部分东西都能一行写完,最后给个实参就变成一个UI,来需求改两笔就变成另外一个。

作者:Wang Namelos
链接:https://www.zhihu.com/question/59871249/answer/170400954
来源:知乎

延伸阅读

什么是函数式编程

函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 [1] 

和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。

和过程化编程相比,函数式编程里函数的计算可随时调用。

简单说,”函数式编程”是一种”编程范式”(programming paradigm),也就是如何编写程序的方法论。

它属于”结构化编程”的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。

文章标题:前端开发js函数式编程真实用途体现在哪里,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37742

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月10日 下午3:14
下一篇 2023年2月10日 下午3:34

相关推荐

  • 管理工具和方法有哪些

    管理工具和方法有:1、SWOT分析法;2、乔哈里视窗;3、PDCA工作法;4、七何分析法(5W2H);5、SMART原则;6、SCQA模型。SWOT分析法对研究对象所处的情景进行全面准确的研究,从而根据研究结果制定相应的发展战略、计划等。 1、SWOT分析法 所谓SWOT分析,即基于内外部竞争环境和…

    2023年1月31日
    26800
  • PHP和golang的区别差异是什么

    PHP和golang的区别差异是:1、Go基本上是一种可用于快速机器代码编译的编程语言,而PHP基本上是服务器端脚本,也是用于Web开发的通用编程语言;2、Go是一种静态类型语言。PHP是一种动态类型语言。 一、PHP是什么 PHP(PHP: Hypertext Preprocessor)即“超文本…

    2023年5月31日
    700
  • 奈学教育创始人孙玄:《是的,我创业了》之后的600天

    文 | babayage 编辑 | 笑 笑 2021年2月21日,公众号“架构之美”发表的一篇《是的,我创业了!》刷爆IT业界,资深架构师孙玄在文中写道:“为中国 IT 教育培养行业做出一点点贡献,让 IT 教育培训获得应有的尊严,对于我来说,这样的人生会更加精彩和夺目。” 2021年9月中,新在线…

    2022年3月20日
    37100
  • 编程语言中布尔值true,false和int类型1,0的区别

    区别就是这是两种完全不同的类型。类型不同,不管值是否是相同的,它就是不同,不应该把他们混为一谈。当然有些时候,编程语言的实现的过程中,它可能会比如一个bit用0来代表false, bit为1来代表true,但是从本质上说,这就是两个完全不同的类型,不能认为0==false,或者1==true。 区别…

    2023年2月20日
    10600
  • wiki网站有哪些

    wiki网站有:1、PingCode Wiki;2、MediaWiki;3、DokuWiki;4、MinDoc;5、BookStack;6、amWiki;7、docsify;8、Wikitten;9、Docute。PingCode Wiki 是一款团队知识库系统,被广泛用于团队文档协作、搭建团队知识…

    2023年4月20日
    2600
  • 文档工具有哪些

    文档工具有:一、 Microsoft Word;二、Google Docs;三、Adobe Acrobat;四、MindMap软件;五、Axure RP。Microsoft Word是一款常见的文档编辑器,其中包含了丰富的文档编辑和排版工具,因此是一种常见的文档编辑工具。 一、 Microsoft …

    2023年4月27日
    2600
  • 函数式语言具体应用是什么

    函数式语言的具体应用包括:1. Web开发;2. 数据处理;3. 人工智能;4. 并发编程;5. 数学计算;6. 游戏开发。函数式编程在Web开发中的应用越来越受到关注。例如,Haskell语言的Yesod框架使用函数式编程的方式处理Web请求和响应。 函数式语言的具体应用包括以下方面: 1. We…

    2023年2月28日
    1700
  • 软件开发需求文档怎么写

    写软件开发需求文档的步骤:一、确定需求文档的范围和目标;二、收集用户需求和使用场景;三、制定功能和非功能需求;四、确定约束和限制;五、制定交付和验收标准;六、确认需求文档。在开始编写需求文档之前,需要明确软件项目的范围和目标。 一、确定需求文档的范围和目标 在开始编写需求文档之前,需要明确软件项目的…

    2023年4月16日
    10100
  • 怎么形象地理解MFC编程框架

    微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。 一、MFC 的概念 微软基础类库(英语:Mi…

    2023年2月7日
    3200
  • 怎么建立一个简单的数据库

    步骤:一、确定数据库的需求;二、选择数据库管理系统;三、设计数据库结构;四、创建数据库;五、创建表和字段;六、插入数据;七、查询数据。在开始建立数据库之前,需要确定数据库的需求,包括数据的类型、数据的数量、数据的来源和数据的使用方式等。 一、确定数据库的需求 在开始建立数据库之前,我们需要确定数据库…

    2023年5月29日
    1200

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部