停止崇拜Airbnb风格

JavaScript开发人员的愤怒情书

我喜欢函数式编程及其提出的概念。 我真的是 你知道我还真正爱什么吗? Javascript 。 它灵活,广泛且充满各种问题(就像我一样)。

在整理工作项目时,我发现抛出的整理错误中有近200个是由于使用for of迭代语法引起的。

作为我,一个合理的人(至合理的程度)决定检查他们的规格 。 当然,这对他们的团队来说真是太好了……

不。实际上,只是检查一下就让我生气。

观察以下两个代码块:

// synchronous  
function foo(args) {
return args.reduce((prev, arg) => prev.then(() => doSomethingAsync(arg), Promise.resolve())
}

async function fooStacking(args){
const stack = [];
let arg, item;
for (arg of args){
item = await someAsyncFunction(arg);
stack.push(item);
}
return stack;
}
// also, the concurrent version
async function fooConcurrent(args){
const stack = [];
for (let arg of args) stack.push(someAsyncFunction(arg));
return Promise.all(stack);
}

其中之一是功能上可读,明智且具有自我证明的代码段。 另一个是由AirBnb首席工程师撰写的

你猜怎么着? 他们俩都不对。

显然 ,不存在编写此函数的正确方法。

“嗨,这是道格拉斯·克罗克福德(Douglas Crockford)呼吁您一生如何做。”

这就是为什么我生气。 地球上每个JavaScript开发人员都将编写(并可能会担保)使您生气的代码,尤其是如果您不喜欢这种方式的时候。

他们可能会大胆而野蛮地迫使Array.reduce方法执行它甚至不打算做的事情,或者他们编写的代码看起来确实很老旧且丑陋,看起来就像是1990年代的编程手册一样。

您(或我)无法采取任何措施阻止他们。

老实说,它是如此令人毛骨悚然,以至于没有任何意义。 甚至没有一场胜利。

目前让我烦恼的事情(由于Airbnb的规格和棉绒准则):
循环显然是邪恶的 ,我应该选择使用使用循环遍历项目的函数。 您知道的... 因此,他们不必使用循环。
他们还比较break ,并continue语句GOTO 语句终极邪恶 ),但return报表基本上可以做同样的事情都breakcontinue (区别在于它的他们这样做的范围)。 AirBnb还做出了大胆的声明,即break语句仅在循环中使用。 我想这会使switchif语句也变得邪恶……
嘿,您是否正在通过Babel运行生产服务器代码? 没有? 好吧, Airbnb认为您应该做到。
还有其他一些事情,例如使用require不能接受(这对Babel项目有意义,但对Node项目不可行),并被要求在某些声明中添加过多的换行符。
为了更具建设性,我决定开始编写自己的eslint规范(并编写配套的how-to指导以告知其他人该如何做)。

编写代码时要有标准,结构也要好。 但是不要让您的代码看起来像别人的代码,因为它很时髦。 制定自己的标准。 并停止关闭那些不同意您无法解释的选择的人

超过这一点的杂乱无章

自从我8年前开始使用JavaScript以来,它已经走了很长一段路。 我也看到了一些奇怪的地狱趋势。 当我开始的时候,就像一个狂野的JS意大利面条一样,以jQuery为王 ,而拟态统治了一切。

现在,我们生活在数字化意味着扁平化的时代。 明智地设计,显然在架构上也是如此。 在某些情况下,功能变得越来越平坦的设计模式正在出现,甚至有时您甚至无法确定功能的含义。

我试图以遗留JS程序员的身份阅读某人的(夸张的)基于方法的代码。
公平地说,也许我们不再知道某个功能实际上是什么。 也许现在它超越了原始的数学根源(2015年成立)。

我认识一个人,尝试使用Object.assign直接分配给对象的__proto__ 。 每天感觉就像我进入暮光之城,在那里Object方法成为唯一的出行方式,每个人都开始看起来像Object方法。

也许我在地狱里。 不会。也许我和其他人一样,被风滚草的语言所困,拥有诸如TurboFans优化器例程之类的神秘组件。

也许……也许就像您写分号的方式一样,这些都不重要。

From: https://hackernoon.com/stop-worshipping-airbnb-styles-6f3e5958deee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值