airbnb编码风格_停止崇拜Airbnb风格

2023-11-11 12:20

本文主要是介绍airbnb编码风格_停止崇拜Airbnb风格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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和优化器例程之类的神秘组件。

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

翻译自: https://hackernoon.com/stop-worshipping-airbnb-styles-6f3e5958deee

airbnb编码风格

这篇关于airbnb编码风格_停止崇拜Airbnb风格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/390016

相关文章

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

form表单提交编码的问题

浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urlencoded; charset=UTF-8        那么我们如果需要修改编码,不使用默认的,那么可以如下这样操作修改编码,来满足需求: hmtl代码:   <meta http-equiv="Conte

OpenStack实例操作选项解释:启动和停止instance实例

关于启动和停止OpenStack实例 如果你想要启动和停止OpenStack实例时,有四种方法可以考虑。 管理员可以暂停、挂起、搁置、停止OpenStack 的计算实例。但是这些方法之间有什么不同之处? 目录 关于启动和停止OpenStack实例1.暂停和取消暂停实例2.挂起和恢复实例3.搁置(废弃)实例和取消废弃实例4.停止(删除)实例 1.暂停和取消暂停实例

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

在 Qt Creator 中,输入 /** 并按下Enter可以自动生成 Doxygen 风格的注释

在 Qt Creator 中,当你输入 /** 时,确实会自动补全标准的 Doxygen 风格注释。这是因为 Qt Creator 支持 Doxygen 以及类似的文档注释风格,并且提供了代码自动补全功能。 以下是如何在 Qt Creator 中使用和显示这些注释标记的步骤: 1. 自动补全 Doxygen 风格注释 在 Qt Creator 中,你可以这样操作: 在你的代码中,将光标放在

一个图形引擎的画面风格是由那些因素(技术)决定的?

可能很多人第一直覺會認為shader決定了視覺風格,但我認為可以從多個方面去考慮。 1. 幾何模型 一個畫面由多個成分組成,最基本的應該是其結構,在圖形學中通常稱為幾何模型。 一些引擎,如Quake/UE,有比較強的Brush建模功能(或應稱作CSG),製作建築比較方便。而CE則有較強的大型地表、植被、水體等功能,做室外自然環境十分出色。而另一些遊戲類型專用的引擎,例

Python字符编码及应用

字符集概念 字符集就是一套文字符号及其编码的描述。从第一个计算机字符集ASCII开始,为了处理不同的文字,发明过几百种字符集,例如ASCII、USC、GBK、BIG5等,这些不同的字符集从收录到编码都各不相同。在编程中出现比较严重的问题是字符乱码。 几个概念 位:计算机的最小单位二进制中的一位,用二进制的0,1表示。 字节:八位组成一个字节。(位与字节有对应关系) 字符:我们肉眼可见的文字与符号。

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接:https://arxiv.org/pdf/2408.16766 项目链接:https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架,以验证这个大规模数据集在风格迁移中的有益效果。引入了内容对齐评分(Content Alignment Score,简称CAS)来评估风格迁移

在Eclipse环境下修改Tomcat编码的问题

问题: 由于BMS需要设置UTF-8编码,要不就会出现中文乱码问题; 一、项目保持UTF-8格式; 二、由于可能会多次移除项目、加载项目,不想每次都要修改tmp0\conf 原因: 如果在eclipse中配置了tomcat后,其实,tomcat所用的所有tomcat配置文件,都不是catalina_home/config下面的xml文件,而是在eclipse所创建的Serve