为什么使用 Prettier?
建立并执行样式指南
到目前为止,采用 Prettier 的最大原因是停止所有有关样式的持续辩论。公认的是,对于项目和团队来说,使用通用的样式指南很重要,但是达成这个结果是一个非常痛苦且毫无回报的过程。人们对于特定的编码方式很抵触,没有人喜欢花时间这样写代码,没人愿意接受别人的挑剔。
那么,为什么要选择 “Prettier 的风格指南”而不是其他随意的风格指南呢?因为 Prettier 是唯一一个全自动的“风格指南”。即使 Prettier 没有 100% 按照你喜欢的样子格式化所有代码,但考虑到 Prettier 的独特优势,这是值得“牺牲”的,你觉得呢?
- “我们希望解放思路,结束围绕编码风格的讨论。这些讨论虽然有时会卓有成效,但大部分都是浪费。”
- “事实上,一个工程师需要花费大量的精力来清理我们所有的代码,因为我们在很长的时间内一直在讨论三元运算符的样式,并且还没达成一致。这很愚蠢,而且这是一场旷日持久的“大辩论”。现在,所有人都容易达成一致的是:只需运行 Prettier,然后采用这种样式即可。”
- “厌倦了去告诉人们如何为项目代码整理样式。”
- “我们的首要理由是不再浪费时间来讨论代码风格的问题。”
- “设置一个 githook 可以减少 PR 中的样式问题,这些问题会由于 ESLint 规则或我以后必须自行挑选或清理的内容,而导致版本损坏。”
- “我不希望任何人再挑剔其他人。”
- “这让我想起了史蒂夫·乔布斯每天都穿同样的衣服的原因,因为他每天要做上百万个决定,他不想被像挑选衣服这种琐事所烦心。我认为 Prettier 就是这样。”
帮助新员工
Prettier 通常是由对当前的代码库和 JavaScript 富有经验的人引入的,但是从中受益匪浅的是刚接手项目的新员工。可能有人认为这只对编程经验少的人有用,但我们发现,它可以缩短经验丰富的工程师融入公司的时间,因为他们以前可能使用的是不同的编码风格,或者从不同的编程语言转过来的。
- “我使用 Prettier 的动机是:看起来我知道如何编写出好的 JavaScript 代码。”
- “我总是将空格放错位置,现在我不必再担心了。”
- “初学者会犯很多语法错误。感谢 Prettier,初学者可以减少这些错误,并节省大量时间来专注于真正重要的事情。”
- “作为一名老师,我也会告诉我的学生安装 Prettier,来帮助他们学习 JS 语法并写出可读性强的代码。”
编写代码
人们使用 Prettier 时通常会发生的事情是,他们意识到以前上花费了大量时间和精力来格式化代码。使用集成 Prettier 的编辑器,只需按一个键,即可格式化代码。这会是一次令人大开眼界的体验。
- “我想写代码,但不想花时间在格式化上。”
- “它消除了困扰我们日常生活的 5% 的事,即格式化代码”
- “都 2017 年了,添加一个参数后碰巧超过了 80 列的限制时,即便将方法调用分成多行仍然很痛苦:(”
易于采用
我们一直在努力使用争议最小的编码样式,经历了许多轮次修复所有边缘情况并完善了入门经验。当您准备好将 Prettier 推入您的代码库时,不仅从技术上来说这应该很容易,而且新格式化的代码库也不会引起大的争议,并且会被您的同事毫不费力地接受。
- “这个开销很低。无需进行大量工作,我们就能将 Prettier 引入到不同种类的代码库中。”
- “它基本上没有 bug。如果在实现过程中存在主要的样式问题,我们会谨慎地将其扔到我们的 JS 代码库中。很高兴事实并非如此。”
- “大家都将其放在预提交的脚本中运行,也有一些人编辑器装了插件,保存代码时运行。”
- “它的速度非常快,我们其中一个大的 JS 代码库能够在 13 秒内运行完 Prettier。”
- “Prettier 对我们最大的好处就是能够立即格式化整个代码库。”
清理现有的代码库
想出一种编码风格并加以实施是一项艰巨的任务,常常会漏掉一些特殊情况,您将不得不处理不一致的代码库。在这种情况下,运行 Prettier 是一个捷径,现在代码库统一了,而且易于阅读,几乎没有花费任何时间。
- “看一眼代码:) 我只需要恢复理智即可。”
- “我们接手了一个由全球 20 名不同的开发人员在 18 个月内开发的约 2000 个模块的 ES6 代码库。没有太多的研究就拿下了。”
上车的人多
项目的纯技术层面不只是人们选择采用 Prettier 的唯一原因,由谁创建、被谁使用、在社区传播的速度,都起到很重要的影响。
- “对我来说,令人惊讶的是:1)2 个月前宣布。2)似乎每个主要的 JS 项目都已采用它。3)7000 颗星标,每月通过 npm 的下载量达 100,000”
- “由 React 和 React Native 的开发者构建。”
- “我喜欢成为热门新事物的一部分。”
- “因为很快有足够的人会使用它。”