驳《驳〈驳《我不是很懂 Node.js 社区的 DRY 文化》〉》

1,226 阅读7分钟
原文链接: zhuanlan.zhihu.com

我也只是纯粹觉得这个标题很有意思,这点我和方应杭的观点是一致的。当然这里我使用了单双书名号,更正确了呢!

这篇文章的主要目的,是对此次事件的一些说明,以及反驳一些逻辑谬误。

关于「如何评价方应杭的前端水平」这个问题

首先,我真心觉得提「如何评价方应杭的前端水平? - 知乎」这个问题的人真是看热闹不嫌事大。

但可惜提问得不正确,因为我在想法中的言论并没有在批判方应杭的前端水平,批判的是他对 Node.js 社区的恶意论点,并且分析了其原因是他缺乏对健壮性的意识,所以这个问题本身我认为提得有所偏颇。

为什么说他误人子弟?为什么说他恶心?

方应杭有很多 错误的观点,本身来说出现错误观点很正常,就像阮一峰老师也经常出现错漏的地方,但是大家都很尊敬阮老师,因为阮老师是本着知识分享的精神来写的文章,没有恶意;反观方应杭,包括他自己也承认,他的错误观点有一部分是刻意的,目的就是为了让别人来撕他,给他带来流量,因为他搞培训需要流量。

而方应杭这些错误的观点,目标群体正是那些水平尚浅、刚刚入门的前端新人,这些前端新人由于水平尚浅往往无法作出正确的判断,而方应杭往往用「众人皆醉我独醒」的语气进行恶意营销,所以很容易就让新人们相信他的观点,形成对某些问题的刻版印象。

举例说明,当时方应杭写了一篇 Node.js 的批评文,被狼叔写了个 回答 逐句反驳,最终方应杭把回答给删了。在其中狼叔也同样用到了「误人子弟」这个词,因为大家可以看到,如果没有狼叔站出来,有些人就会形成一个「Node.js 比传统服务端技术栈差很多」的刻板印象,从而一方面影响这些人的客观判断,另一方面对 Node.js 生态来说也是一种恶意的指控。

方应杭指控 Node.js 社区 DRY 文化的滑坡谬误

再看这次方应杭批判 Node.js 社区 DRY 文化的行为,他试图再一次让不明真相的前端新人形成一个刻板印象:Node.js 社区有问题,DRY 文化极其病态,大家不应该去用这些开源库,自己写就够了。他举了个例子—— is-odd ,他认为 isOdd 这种函数应该自己直接用 num % 2 的方式去写,而不是用这个包。从此来论证他「Node.js 社区 DRY 文化有问题」的观点。

这从逻辑学上来说叫滑坡谬误。

滑坡谬误(Slippery slope)是一种非形式谬误,使用连串的因果推论,却夸大了每个环节的因果强度,而得到不合理的结论,因为事实不一定照着线性推论发生,而有其他的可能性。——滑坡謬誤 - 维基百科,自由的百科全书

我们可以说使用这个包本身没有必要,完全可以自己写,但不代表这就可以说整个 Node.js 社区的 DRY 文化极其病态。

利用 Node.js 社区 DRY 文化提高工作效率的价值

从第二个维度来说,这类包存在的意义,就是把一些非本质复杂的事务给封装起来,让我们可以专心处理业务上本质复杂的问题。

什么是非本质复杂?比如说我们希望判断某个变量是否为一个数组,从而去做一些业务处理,而这些业务处理就是我们的本质复杂,而怎么判断一个变量是否为一个数组就是非本质复杂。

所以说 Node.js 社区有这些包的存在是合理的,而且是非常有价值的。其中最突出的一个库就是 lodash,它帮助我们处理非常多非本质复杂工作,极大提高工作效率。

利用 Node.js 社区 DRY 文化提高工程健壮性的价值

从第三个维度来说,这些包存在的意义,是可以为我们提高工程的健壮性。

当一个包下载量非常大、Star 非常多,这往往意味着它做得比较好,比如说边缘情况处理得比较完善、测试用例写得很完善、文档写得很好等,这些经过开源社区验证过的包在大部分情况下能比自己写的——无论是考虑的情况还是说性能——通常要更好。

对于 Node.js 社区 DRY 文化的小结

总结来说,Node.js 社区的 DRY 文化本身是可以为我们提高工作效率、提高工程健壮性的,不能因为极少数部分的包而认为整个社区是「极其病态」的。

方应杭对 Node.js 社区的这种指责,是因为他作为培训机构的人员,需要做营销,而他选择了这种恶意营销的方式,也就是抛出一个看似正确但实质错误的观点,来一方面吸引不明真相的新人的眼球,另一方面希望让大家来撕他逼,给他带来流量。他这种营销的方式对前端界来说是一种伤害,是一种利益驱动下的损人利己的行为,所以我称之为恶意营销。自然,他受到了前端届大部分大佬的唾弃(只是这些大佬们并不愿意浪费宝贵时间去撕他,但都在一些集中了大部分高级前端工程师的群里表达了类似的观点)。

方应杭的偷换议题谬误

在《驳《驳《我不是很懂 Node.js 社区的 DRY 文化》》》一文中,有人留下了这样的评论:

马车与金币谬误(Carriage and Coins Fallacy):即偷换议题谬误,将原本的话题偷换为另一个对自己有利的话题进行诡辩的逻辑谬误。——@新西兰小太阳

指的是方应杭面对指责的时候,他不去对指责本身进行反驳,而是换另一个对自己有利的话题继续进行诡辩。除了这篇文章本身外,我们还可以看到在 这个回答下的评论区 中,他评论「所以你们认为一个人所有观点都正确,才是大神咯?肤浅」,是典型的偷换议题谬误,因为作者没有在论据他是否大神,所以他这条评论从逻辑上没有任何意义,但却借此来试图让别人认为作者的反驳点没有意义。

方应杭评论区的幸存者偏差

方应杭在自己的各种文章和回答中,采用了非常多「评论由作者筛选后显示」功能,以此来形成自己的言论下没有正面反驳的现象,从而让很多人以为他这种观点是对的。这是利用典型的幸存者偏差手段来影响读者阅读时的言论。

综上,可见他对利用逻辑谬误来影响他人心理的手段已经用得炉火纯青了。

一些对我的指责

另外再讨论一下关于对我的指责。

这次事件有部分人跳出来指责我本身水平也不高,凭什么指责方应杭。这些人是用了典型的「你行你上」思维,从逻辑学上来说,这是偷换概念。因为无论我的水平怎样,当我们在论证「方应杭言论是否有问题」时,都不会影响方应杭言论本身是否有问题。

还有人指控我给一些批评我水平差的人点赞同是为了拉粉丝攻击作者,这真是相当的荒谬。我之所以给他们点赞同,是因为我也认同自己的技术水平还有很大的上升空间,还有很多东西需要学习,这竟然被指责成气量小,我只能微笑脸了。