欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python函数和代码复用思维导图_函数式编程库:Ramda函数思维导图,帮你快速选择要用的函数...

发布时间:2023/12/31 python 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python函数和代码复用思维导图_函数式编程库:Ramda函数思维导图,帮你快速选择要用的函数... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

为什么要用ramda库

Pointfree 的概念,也就是函数级别的抽象,我们经常说复用逻辑,复用逻辑的关键的就是抽象,无论是面向对象还是架构设计。但是很少有人谈到函数级别的复用,当我了解ramda库的时候,我觉得这是一个很不错的方案。举个例子

假如我们有这么一段数据,需要筛选其中属性isMan: true的值:

var list = [{ name: 'zhangsan', isMan: true }, { name: 'xiaoli', isMan: false }, ...]

复制代码

我们看看不同的处理函数的写法,带来的复用性的差别

// Plain JS

var manList = list.filter(function(task) {

return task.isMan;

});

复制代码

复制代码使用LoDash,会简单一点:

var manList = _.filter(list, {isMan: true});

复制代码

复制代码上面两种情况,我们都会得到一个经过过滤的任务列表。

现在使用Ramda,我们可以这样做:

var filterManList = R.filter(R.where({complete: false});

复制代码

可以看出,其实ramda是在组装函数,连数据都没有,你要筛选数据的时候需要filterManList(list)

也就是说,处理数据的时候,我们不要把数据和函数耦合在一起,用一种可拆分的函数组装的方式去处理,会让复用性更强。例如下图

fn = R.pipe(f1, f2, f3);

复制代码

也就是函数和可以任意组合成新的函数fn,这个思想跟面向对象编程里,设计模式中的责任链模式非常相似,比如redux中间件组合也是这种思想。

其实用什么库不是很重要,只要能帮助你快速完成业务需求,才是最重要的,ramda只是一种选择,你认同这种编程思想。

学习ramda最大的难点

我也接触时间并不长,学习它我觉得最大的问题是官网那么多函数,让自己去筛选想要的很难第一时间找到,这就会极大的阻碍继续使用这个库的信心,所以我总结了一张思维导图表,按业务需求常见的类似增删改查这样的逻辑分了一下类,帮助想用这个库的同学快速找到对应的函数

总结这个真的非常费力,图很大,需要保存到电脑上(结合官方文档,可以查看用法示例https://ramda.cn/docs/)

总结

以上是生活随笔为你收集整理的python函数和代码复用思维导图_函数式编程库:Ramda函数思维导图,帮你快速选择要用的函数...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。