前端开发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

相关推荐

  • 大数据和高性能计算有什么区别

    区别是:大数据指的是所涉及的资料量规模巨大到无法透过主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。高性能计算指通常使用很多处理器或者某一集群中组织的几台计算机的计算系统和环境。 大数据 大数据(big data),或称巨量资料,指的是所涉及的资料量规模巨…

    2023年2月21日
    68600
  • 什么是平面文件(Flat-File Database)

    平面文件(Flat-File Database)是一种简单而有效的数据库类型,它基于文本文件,将数据存储在单个文件中,而不是使用复杂的数据库系统。平面文件数据库通常用于小规模应用程序,例如桌面软件或个人网站,因为它们易于创建和维护,而且不需要高级编程技能。 平面文件(Flat-File Databa…

    2023年5月31日
    1.2K00
  • 有哪些工作任务管理软件适合团队协作和进度管理

    适合团队协作和进度管理的工作任务软件有:1.开发任务管理PingCode; 2.团队任务协作管理Worktile;3.个人和小团队项目任务管理Notion; 4.企业任务管理平台SmartTask; 5.小团队任务管理Teambition;6.IT任务追踪管理Jira;7.个人任务及笔记管理 Flo…

    2023年2月17日
    1.2K00
  • 如何结合AI和大数据技术优化私域流量的管理

    结合AI和大数据技术优化私域流量的管理,主要涉及数据分析 、个性化内容创建 、客户服务自动化 、精准营销 、风险管理 、五个核心观点。首先通过大数据对用户行为进行详细分析,识别消费者习惯和偏好。接着利用AI技术生成个性化内容,提升用户体验并促进互动。利用聊天机器人和自动化系统进行客户服务自动化,以迅…

    2023年11月20日
    34000
  • UniApp中集成MQTT实现即时通讯的详细步骤

    UniApp通过整合MQTT实现即时通信涵盖:1、选择MQTT客户端库、2、配置MQTT连接、3、实现消息订阅与发布、4、维护心跳与重连机制、5、用户交互与界面设计。 选取相合适的客户端库,构建稳固且具有高效性的通信基础;实施完备的消息订阅与发布机制,确保数据在客户端与服务端间畅通无阻;通过心跳与重…

    2023年12月22日
    68900
  • h5和小程序有什么区别

    h5和小程序的区别有:一、定义不同;二、运行环境不同;三、开发成本不同;四、用户体验不同;五、功能性不同;六、推广方式不同;七、更新方式不同;H5是指结构化标准语言HTML的第五次重大改版,用于描述网页内容;小程序是一种不需要下载安装即可使用的应用。 一、定义不同 H5:是指结构化标准语言HTML的…

    2023年6月13日
    5.8K00
  • 为什么vscode报错

    Visual Studio Code (VSCode) 报错的原因众多,包含但不限于拓展插件冲突、配置文件错误、系统兼容性问题、软件本身的缺陷等。其中,拓展插件冲突是一个非常常见的原因。VSCode 的强大功能很大一部分依赖于其丰富的插件生态。用户可以根据自己的开发需求安装不同的插件,以提升开发效率…

    2024年4月3日
    7500
  • Scrum项目的持续交付策略是什么

    在Scrum项目中实施持续交付策略,关键是确保对增量开发、自动化测试、持续集成、频繁部署和反馈循环的有效运用。增量开发意味着在短周期内不断地生成可交付的产品增量。自动化测试确保每次提交新代码时的质量保证。持续集成涉及将所有开发者的工作合并到共享分支并进行测试确保没有冲突。频繁部署保证将增量更快地交付…

    2023年12月12日
    27800
  • 如何进行项目储备管理制度

    项目储备管理制度是指通过系统的方法和流程确保项目从概念阶段到实施阶段有效地管理和调配资源。这种管理体系的核心在于提前识别、优先级排序、资源分配、持续监控,以及风险管理。在这个过程中,提前识别是关键一环,它涉及到对未来潜在项目的早期识别,从而使组织能够根据资源的可用性和优先级适时启动项目。 一、项目储…

    2024年4月11日
    6200
  • UniApp中使用Flexbox布局的技巧和最佳实践

    在UniApp中应用Flexbox布局确保界面具有响应性并且在不同设备上保持一致性。1、灵活性允许项目大小根据空间自适应;2、方向性可以由容器控制子项布局方向;3、对齐功能帮助快速实现复杂的设计;4、排列顺序,通过`order`属性调整视觉顺序而不改变DOM结构。 对于灵活性,Flexbox通过`f…

    2023年12月22日
    39200

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部