Redian新闻
>
转 Redux写起来很麻烦... 去你大爷的纯函数
avatar
转 Redux写起来很麻烦... 去你大爷的纯函数# Programming - 葵花宝典
v*r
1
选哪一种类型签证? b1,b2还是b1/b2?
表格里面有一个军队问题,父亲曾经在部队呆过,如实化钩?会不会因为这个被拒?
avatar
u*a
2
张蓝心. 一查是全国跆拳道冠军. 腿长体脂低. 英气十足, 有点碟中谍4女主角
的亚马逊女战士气质 (这点运动能力差的女星根本装不出来)...看着很有感觉, 装逼能
力也不错.
avatar
k*n
3
书荒的朋友可去看看
。。不过打脸是必然的套路
再推两本
天苍黄
民国投机者与岁月如歌那个作者写的。。
寄灵 - 阿菩。。写唐骑与陆海巨宦的。。
avatar
s*o
4
是t-mobile的prepaid sim 卡!但手機泡水壞了!求各位推薦好用的手機!
avatar
d*r
5
作者:Jim Liu
链接:https://www.zhihu.com/question/63726609/answer/212357616
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Redux是基于纯函数的,为了保证它的“纯度”,它的reducer函数必须是严格的 S' =
f(S) 的形态,所以,与其说Redux是“状态管理”库,不如说它是“状态转移管理”库
,因为Redux是无状态的,状态是在你的程序里的,你自己维持状态,它只是给你提供
了一个状态转移的统一方式。这使得它的整个模型看起来是非常干净。
而事实上我们在开发实际项目当中可能有小半(maybe大半)的reducer场景其实应该是
S' = await fAsync(S) 的形态,比方说,我点了一个计数器+1的按钮,在一个美丽的
DEMO里,它就+1了,但放到生产需求里,很可能是要先发起一个Ajax请求,请求OK了再
+1,甚至这时候不是+1,而是直接和服务端同步一个新的值。
但异步的reducer就破坏了它的“纯度”,因为异步是不确定的,先发不一定先至,这
会破坏reducer的“可回放性”,它引以为豪的replay就不成立了,它的基石就崩塌了。
这就注定了它解决不了异步的问题,然后它为了让自己显得很白玉无瑕,死活也不愿意
碰异步那摊子脏东西,什么?你要在reducer里发起一个Ajax请求?对不起这不是我们
的best practice,我们对此嗤之以鼻,你如果真要这么做,那就……做去吧。
于是Redux在解决异步问题上的“残疾”就注定给它擦屁股的库会如雨后春笋一样的涌
现出来,比如其他回答里提到的dva,再比如redux-saga,它们都是勇士,做了redux所
不愿意做的那摊子脏活。
这个过程又引入了新的麻烦,一方面是异步本身带来的复杂度,比如redux-saga里的
every和latest;另一方面是代码写起来的麻烦,比如redux-saga里各种yield,还有可
以堆成山的胶水代码。
所以你觉得redux写起来很麻烦,麻烦就对了,这不是幻觉,因为它为了保证自己的简
洁,把麻烦的事情抛给了你。结论很简单,要么就引入更多“生态”,让别人帮你解决
麻烦,让它们对你输出价值观。要么就别走redux的函数式路线,去你大爷的纯函数,
用别的价值观,我用全局变量全局事件,用watch,用observable,用whatever,反正
不用你。
avatar
a*n
6

B1/B2,其实填B2和b1/b2都有,都有人通过,处理的是人,不是机器,他们自己自然
会分辨是啥。
只要你父亲不是那种特别敏感的,一般不会,很多人也填了,也通过了

【在 v***r 的大作中提到】
: 选哪一种类型签证? b1,b2还是b1/b2?
: 表格里面有一个军队问题,父亲曾经在部队呆过,如实化钩?会不会因为这个被拒?

avatar
s*3
7
估计也少不了被成龙潜, 这个畜生
avatar
k*n
8
放开那个女巫 -- 二目
有点意思的书。
avatar
l*g
9
买个十块钱的NOKIA,或买个UNLOCK的IPHONE
avatar
s*o
10
正是因为繁琐麻烦,所以入了坑的勇士们都会乐意拉别人也下来享受,不然好不容易掌
握的很快就成垃圾了 LOL

=

【在 d*******r 的大作中提到】
: 作者:Jim Liu
: 链接:https://www.zhihu.com/question/63726609/answer/212357616
: 来源:知乎
: 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
: Redux是基于纯函数的,为了保证它的“纯度”,它的reducer函数必须是严格的 S' =
: f(S) 的形态,所以,与其说Redux是“状态管理”库,不如说它是“状态转移管理”库
: ,因为Redux是无状态的,状态是在你的程序里的,你自己维持状态,它只是给你提供
: 了一个状态转移的统一方式。这使得它的整个模型看起来是非常干净。
: 而事实上我们在开发实际项目当中可能有小半(maybe大半)的reducer场景其实应该是
: S' = await fAsync(S) 的形态,比方说,我点了一个计数器+1的按钮,在一个美丽的

avatar
v*r
11

如果选了参加过军队,下面一系列问题什么军衔,服务部队之类的,这都要详细填阿?

【在 a*****n 的大作中提到】
:
: B1/B2,其实填B2和b1/b2都有,都有人通过,处理的是人,不是机器,他们自己自然
: 会分辨是啥。
: 只要你父亲不是那种特别敏感的,一般不会,很多人也填了,也通过了

avatar
u*a
12
介绍里说: "被成龙大哥发掘"

【在 s******3 的大作中提到】
: 估计也少不了被成龙潜, 这个畜生
avatar
x*d
13
还可以,就是有些瘦。
avatar
d*c
15
纯函数有很多好处,但是现实世界里需要side effect,需要不纯才能做事情。
不应该追求纯,而是能纯函数的地方尽量纯函数,把side effect限制在一定范围内。
Haskell就是太追求纯,我看clojure没这个问题。
redux可能受elm启发,这方面elm也许做的更好一点,不过我不了解细节。
avatar
G*Y
16
你嫉妒!

【在 s******3 的大作中提到】
: 估计也少不了被成龙潜, 这个畜生
avatar
c*u
17
Nice. Very good. Is there any more? It's too 'shou'. I need something like
that. Thanks

【在 k**n 的大作中提到】
: 放开那个女巫 -- 二目
: 有点意思的书。

avatar
c*n
18
上午在知乎还看到一个用react-native搞出大坑的帖子
avatar
s*3
19


【在 u******a 的大作中提到】
: 张蓝心. 一查是全国跆拳道冠军. 腿长体脂低. 英气十足, 有点碟中谍4女主角
: 的亚马逊女战士气质 (这点运动能力差的女星根本装不出来)...看着很有感觉, 装逼能
: 力也不错.

avatar
k*n
20
你是喜欢女巫题材,还是种田文?
女巫种田就不好找了:)

【在 c******u 的大作中提到】
: Nice. Very good. Is there any more? It's too 'shou'. I need something like
: that. Thanks

avatar
m*o
21
Haskell吧side effect都封装到IO Monad里面去了。我看上Scala最好,想fp也可以,
想oo也行。

【在 d******c 的大作中提到】
: 纯函数有很多好处,但是现实世界里需要side effect,需要不纯才能做事情。
: 不应该追求纯,而是能纯函数的地方尽量纯函数,把side effect限制在一定范围内。
: Haskell就是太追求纯,我看clojure没这个问题。
: redux可能受elm启发,这方面elm也许做的更好一点,不过我不了解细节。

avatar
G*Y
22
这像是还没得手呀

【在 s******3 的大作中提到】

avatar
c*u
23
种田后宫文。像这种好多美女的。不要太小白也不要太现实。反正感觉度要把握的和这
个差不多


: 你是喜欢女巫题材,还是种田文?

: 女巫种田就不好找了:)



【在 k**n 的大作中提到】
: 你是喜欢女巫题材,还是种田文?
: 女巫种田就不好找了:)

avatar
a*e
24
问题不在纯函数,而在于副作用有很多种类(包括无副作用的特例,也即纯函数)。
这都源于类型系统太弱鸡:
1. 异步请求也可以是纯函数,但是类型系统不够强大,无法表达这种条件
或者:
2. Reduction 也可以允许副作用,只要副作用不影响 determinism 就好了。如果类型
系统不够强大,也无法表达这种条件
Untyped 语言(如 Clojure)其实是在说:“随便你怎么写,如果不满足条件的代码被
默认做了非法的优化造成的后果你自己看着办,谁让你这么写来着[摊手]”
归根结底,type is the study of an intrinsic property of
code (without executing it). 不会因为写程序的人的观点而改变
Haskell 的目的不是追求纯函数,而是研究如何用类型系统来学习和安排副作用,从而
写出正确的代码。

【在 d******c 的大作中提到】
: 纯函数有很多好处,但是现实世界里需要side effect,需要不纯才能做事情。
: 不应该追求纯,而是能纯函数的地方尽量纯函数,把side effect限制在一定范围内。
: Haskell就是太追求纯,我看clojure没这个问题。
: redux可能受elm启发,这方面elm也许做的更好一点,不过我不了解细节。

avatar
s*3
25
这是条件反射 跟得手没得手关系不大
不过陈港生的地位 这种人被他看上 要得手也不是难事

【在 G**Y 的大作中提到】
: 这像是还没得手呀
avatar
y*k
26
这个踏天无痕我也看了几章,感觉更俗这本比上本强不少。他自己的风格慢慢出来了。
上本修仙的也没看多少,但感觉写的很拘谨,很无聊。
avatar
s*o
27
那个我也看了,主要是遇人不淑,选什么技术都是一个死字。
你们的mobile是用什么在做?

【在 c******n 的大作中提到】
: 上午在知乎还看到一个用react-native搞出大坑的帖子
avatar
k*n
28
原始战记-陈词懒调
写过“回到过去变成猫”
不错。。粮草 。
无后宫
avatar
c*n
29
有钱有时间上原生
没时间还是web,css改改凑活下 最多也就是redirect到稍微对mobile优化了点的web
少传点东西什么的
hybrid有个几个小的试水的 大的还是没上 就是怕这种时间精力扔进去了效果还不行
你们呢

【在 s***o 的大作中提到】
: 那个我也看了,主要是遇人不淑,选什么技术都是一个死字。
: 你们的mobile是用什么在做?

avatar
s*h
30
比山河英雄志,枭臣差远了
avatar
s*o
31
也是web+css顶

【在 c******n 的大作中提到】
: 有钱有时间上原生
: 没时间还是web,css改改凑活下 最多也就是redirect到稍微对mobile优化了点的web
: 少传点东西什么的
: hybrid有个几个小的试水的 大的还是没上 就是怕这种时间精力扔进去了效果还不行
: 你们呢

avatar
y*k
32
踏天无痕渐入佳境啊,虽然陈海从一个老谋深算的人突然变身情圣有点缺乏铺垫。
avatar
c*e
33
写ajax是在actions里,你怎么在reducer里写這個?

=

【在 d*******r 的大作中提到】
: 作者:Jim Liu
: 链接:https://www.zhihu.com/question/63726609/answer/212357616
: 来源:知乎
: 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
: Redux是基于纯函数的,为了保证它的“纯度”,它的reducer函数必须是严格的 S' =
: f(S) 的形态,所以,与其说Redux是“状态管理”库,不如说它是“状态转移管理”库
: ,因为Redux是无状态的,状态是在你的程序里的,你自己维持状态,它只是给你提供
: 了一个状态转移的统一方式。这使得它的整个模型看起来是非常干净。
: 而事实上我们在开发实际项目当中可能有小半(maybe大半)的reducer场景其实应该是
: S' = await fAsync(S) 的形态,比方说,我点了一个计数器+1的按钮,在一个美丽的

avatar
w*e
34
不觉得入啥佳境,一个现实社会的loser一到异界立马就变成军事天才,把握人心如儿
avatar
c*e
35
這個jim liu对javascript一无所知,可能是后台转前台的,用的后台的思维来做前台。

=

【在 d*******r 的大作中提到】
: 作者:Jim Liu
: 链接:https://www.zhihu.com/question/63726609/answer/212357616
: 来源:知乎
: 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
: Redux是基于纯函数的,为了保证它的“纯度”,它的reducer函数必须是严格的 S' =
: f(S) 的形态,所以,与其说Redux是“状态管理”库,不如说它是“状态转移管理”库
: ,因为Redux是无状态的,状态是在你的程序里的,你自己维持状态,它只是给你提供
: 了一个状态转移的统一方式。这使得它的整个模型看起来是非常干净。
: 而事实上我们在开发实际项目当中可能有小半(maybe大半)的reducer场景其实应该是
: S' = await fAsync(S) 的形态,比方说,我点了一个计数器+1的按钮,在一个美丽的

avatar
y*k
36
这种YY小说,金手指/主角光环必不可少啊。这些我都麻木了。这本书我觉得不错是他
基本恢复了更俗的长处:善于描写错综复杂的多方势力,和细腻的发展和斗争。再加一
些男女情感描写。这样即使是修仙背景的故事,更俗也已经写的达到他其他书的水准了
avatar
l*n
37
完全同意
avatar
c*m
38
民国投机者后来在什么时候被和谐的?
avatar
d*r
39
JS还是不适合做纯FP吧

【在 a*****e 的大作中提到】
: 问题不在纯函数,而在于副作用有很多种类(包括无副作用的特例,也即纯函数)。
: 这都源于类型系统太弱鸡:
: 1. 异步请求也可以是纯函数,但是类型系统不够强大,无法表达这种条件
: 或者:
: 2. Reduction 也可以允许副作用,只要副作用不影响 determinism 就好了。如果类型
: 系统不够强大,也无法表达这种条件
: Untyped 语言(如 Clojure)其实是在说:“随便你怎么写,如果不满足条件的代码被
: 默认做了非法的优化造成的后果你自己看着办,谁让你这么写来着[摊手]”
: 归根结底,type is the study of an intrinsic property of
: code (without executing it). 不会因为写程序的人的观点而改变

avatar
R*k
40
谁来推荐个比较爽快的后宫文啊,上一本我看的还是极品家丁
avatar
l*n
41
redux不算啥,整个react生态圈很分割。不像angular那么统一。
avatar
G*U
42
用了一段时间的redux,现在转vue了。
lz可以看看vue
avatar
c*e
43
还是gmail简单,angularjs, react都不用。

【在 l**********n 的大作中提到】
: redux不算啥,整个react生态圈很分割。不像angular那么统一。
avatar
c*n
44
gmail还是gwt写的吗

【在 c*********e 的大作中提到】
: 还是gmail简单,angularjs, react都不用。
avatar
c*e
45
gmail的web server都是google自己写的,更何况其它的。反正google里牛人有的事,
写这些东西易如反掌。

【在 c******n 的大作中提到】
: gmail还是gwt写的吗
avatar
m*x
46
其实redux的好处还是比较复杂的单app多component频繁切换的场景,mvc里面数据模型
独立性比较好。如果是简单app或是复杂多app切换场景,redux route绑定起来就复杂
了。。。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。