为什么选择 Prettier?
构建和强制执行代码风格指南
采用 Prettier 的最大原因是结束关于代码风格的持续争论。 普遍认为,为项目和团队制定统一的代码风格指南是有价值的,但实现这一目标的过程非常痛苦且毫无意义。人们对特定的代码编写方式有很强的感情,没有人喜欢花费时间编写和接收代码风格方面的挑剔。
那么,为什么选择“Prettier 代码风格指南”而不是其他任何随机的代码风格指南呢?因为 Prettier 是唯一一个完全自动化的“代码风格指南”。即使 Prettier 没有完全按照你想要的方式格式化所有代码,考虑到 Prettier 独有的优势,这种“牺牲”也是值得的,你不觉得吗?
- “我们希望释放脑力资源,并结束围绕代码风格的讨论。虽然有时这些讨论是有益的,但大多数情况下是浪费时间的。”
- “曾经有一位工程师花费了巨大的精力来清理我们的所有代码,因为我们争论三元运算符的风格已经很长时间了,而且一直不一致。这很蠢,但这是一个持续不断的“大辩论”,浪费了很多来回沟通的时间。现在,我们更容易达成一致:只需运行 Prettier,并使用它的风格。”
- “我厌倦了告诉人们如何为他们的产品代码设置样式。”
- “我们最重要的原因是停止浪费时间争论代码风格的细枝末节。”
- “设置了一个 Git 钩子,减少了 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 星,每月 100,000 次 npm 下载”
- “由 React 和 React Native 的同一批人构建。”
- “我喜欢成为热门新事物的一部分。”
- “因为很快人们就会要求使用它。”