随着新功能的集成和源代码的不断重构,应用程序开发永远不会停止。
随着源代码的增长和代码大小的增加,一些在编写代码时不存在的错误可能会成为严重的问题。
一些编程错误可能会产生问题。此类错误可能以错误、风格错误和有问题的配置的形式出现。
代码中错误的影响可能因实例而异。例如,此类错误可能会阻止最终用户登录、签出或访问各个页面。
结构不良的代码的维护成本可能很高。代码的结构还会影响应用程序的可靠性和效率以及最终用户与应用程序交互的方式。
通过查找源中的错误,您可以防止最终用户与您的应用程序交互时发生错误。
什么是掉毛?

Linting 是自动检查源代码是否存在程序和风格错误的过程。 Linting 是使用 linting 工具完成的。 Linters 以编程方式扫描您的代码,查找可能导致代码风格和完整性不一致的错误和问题。
Lint 发生在开发周期的早期,在代码被审查和测试之前。一些 linting 工具可以帮助修复已识别的问题。
为什么 linting 很重要?

检查是否有错误
编写代码时可能发生错误。幸运的是,linter 可以帮助识别此类错误。
lint 工具有助于识别错误,例如:
- 无法访问的代码
- 危险的数据类型组合
- 数组之外的索引
- 非便携式结构
- 取消引用空指针
- 未使用的变量
Lint 还可以帮助您自动修复代码中的某些问题。例如,某些工具允许您在 JavaScript 函数末尾添加缺失的分号,以避免将来出现错误。
帮助您编写安全的代码
黑客总是在寻找漏洞。编写安全代码是减少网络安全威胁的最佳方法之一。 Linting 工具会检测代码中的各种安全问题并提醒您。
lint 有助于执行编码标准
如果您正在处理一个单独的项目,您可以采用适合您的编码风格。但是,如果您是团队的一员,则可以通过同意编码标准来减少冲突。大多数 lint 工具允许用户自定义团队可用的规则。
每当用户偏离设定的编码标准时,此类工具总是会突出显示。团队还可以使用既定的编码标准,例如Google 的 JS 风格指南。
提高代码质量
您的代码可能运行良好,但仍然包含一些错误。 Linters 可以帮助识别其中一些问题并避免将来可能出现的错误。
何时使用 linting?

Linters 可用于以下情况:
需要基本分析
lint 工具用于基本分析。但是,如果您想执行高级分析,您可能需要的不仅仅是 lint 工具。
使用标准规则
lint 工具根据标准规则分析代码的样式和编程错误。因此,linter 可以识别代码是否违反了某些规则。但是,您可以禁用或覆盖应用程序上特定文件的某些规则。
使用解释语言
存在数百种编程语言。然而,其中一些语言使用 lint 的效果比其他语言更好。
JavaScript 和 Python 是没有编译阶段的解释性语言的例子。 Lint 软件可帮助您解决基本的编码错误,并确保使用 Python 或 JavaScript 时保持一致的编码风格。
然而,当使用C和C++等编译语言时,仅靠lint软件不足以识别编程和风格错误。
linting 有什么好处?

- 最终结果是生产中的代码错误更少。尽早检测代码气味,以防止它们进入生产。
- 简化代码审查。通过设置可以使用 linter 检查的样式规则,代码审查将重点放在代码的功能而不是样式方面。
- 生成可维护且一致的代码。不同的开发人员在编写代码时往往有不同的偏好。 Linters 帮助组织同意特定标准并生成遵循特定标准的代码。
- 确保客观地衡量代码质量。 linter 不再进行主观的代码质量讨论,而是可以轻松地进行客观、可衡量的评估。
以下是您应该使用的一些 Lint 工具。
JSHint
JSHint是一个静态分析工具,用于检查 JavaScript 代码中的错误。 JSHint 扫描您的源代码并指出潜在的错误和常见错误。

JSHint 在各种环境中运行,每种环境都有不同的安装过程。开始使用此工具的最简单方法是全局安装它。使用这个命令:
npm install -g jshint安装后,可以通过命令行界面使用它。
您还可以使用此命令将其安装为现有 Node.js 项目中的开发依赖项。
npm install --save-dev jshint特征
- 灵活的。 JSHint 可作为 Node.js 模块、命令行工具或 Web 应用程序使用。
- 轻松与各种 IDE 和文本编辑器集成。 JSHint 具有 VIM、Sublime Text、 Visual Studio Code 、Atom、Textmate 和 Brackets 的扩展/插件。因此,您可以直接从您最喜欢的 IDE 检查错误和常见错误。
JSHint 是一种流行的免费开源静态分析工具,被 Mozilla、Wikipedia、Facebook、Twitter、Disqus 和 Medium 等大公司使用。
风格棉绒
Stylelint是一个基本的分析工具,用于检查 CSS 文件中的错误。该工具可以帮助开发人员避免在样式表中犯错误并编写一致的代码。

特征
- 设置简单。有关如何设置 Stylelint 的分步指南可以在其官方网站上找到。安装 Stylelint 最简单的方法是全局安装 Stylelint。
您可以使用以下命令安装它:
npm install -g stylelint但是,Stylelint 是一个 NPM 软件包,因此您必须确保安装了 NPM。
- 可以与文本编辑器和插件集成。您可以直接从代码编辑器运行 Stylelint。最流行的集成包括官方 VS Code 扩展:linter-stylelint(Atom 插件)、 SublimeLinter-stylelint (Sublime Text 插件)和Ale (VIM 插件)。
- 可定制。 Stylelint 检查标准规则。但是,您可以自定义规则和标准来满足您的需求。如果您想在代码中强制执行非风格一致性,您可以添加诸如unit-allowed-list和selector-max-id之类的规则。
Stylelint 是免费且开源的。该工具将检测基本和常见问题,因此您不必太担心 CSS 文件。
网络提示
Webhint是一种分析工具,可通过检查常见错误和最佳实践来帮助提高网站的可访问性、跨浏览器兼容性和速度。

这个可定制的工具可以扫描您网站的 URL 是否存在弱点,并生成有关您的网站如何根据一组规则实施网络最佳实践的报告。
您可以使用此命令在您的计算机上全局安装 Webhint。
npm install -g --engine-strict hint要配置 Webhint,您的主目录中需要有一个 .hintrc 文件。您可以使用此命令生成此配置文件。
hint --init特征
- 在整个 Web 开发生命周期中可用。 Web 提示是您开发、调试和交付代码时的伴侣。您可以在编码时使用VS Code 扩展,使用DevTools 扩展测试您的 Web 应用程序,并在将网站投入生产之前利用 webhint CLI 来分析您的网站。
- 灵活的。 Chrome、Edge (Chromium) 和 Firefox 支持 Webhint。您还可以使用Studio Visual Code 扩展。
- 可定制。 Webhint 包括创建错误最少的网站的常见技巧。但是,您可以使用贡献者指南来创建适合您需求的提示。
Webhint 是开源的,由OpenJS 基金会维护。
标准JS
JavaScript 标准样式包括样式指南、格式化程序和 linter。顾名思义,标准 JS 检查 JavaScript 代码中的编程和样式错误。

您可以使用此命令全局安装标准 JS。
npm install standard --global您还可以使用此命令在 Node.js 项目中进行本地安装。
npm install standard --save-dev特征
- 易于设置。您无需配置任何内容即可检查代码是否有错误。标准的 -fix 就是删除混乱代码所需的全部。
- 有几十个插件/扩展。您可以使用linter-js-standard或使用vscode-standard扩展的 Visual Studio Code 将标准 JS 与 Atom 结合使用。
- 自动格式化。您可以使用标准的 –fix 命令,因此无需手动修复代码。
标准 JS 是开源的。该工具可以让您及早发现所有错误。
CSS-Lint
CSS-Lint是一个免费的 CSS 在线重新格式化器和验证器。

特征
- 便于使用。您不需要安装任何东西。只需将代码粘贴到在线编辑器中即可。该工具检查并纠正语法和格式错误。
- 不要存储cookie 。 CSS-Lint 不存储 cookie。即使经过检查,您的代码始终是您的。
当您有小文件需要检查时,CSS-Lint 非常有用。但是,如果您的应用程序很大,那么最好的选择是获取可以在项目中配置的 linter。
作者注
创建和维护源代码是一个过程。拥有正确的基础至关重要,而 linter 在此过程中发挥着关键作用。使用 linter 后,代码审查将重点关注业务逻辑等重要问题,而不是风格或常见编程错误。
结论
以上是一些您现在就可以开始使用的 linting 工具,以消除源代码中的编程和样式错误。开发人员现在可以专注于编写解决方案,而不是在代码中寻找丢失的分号或样式错误。所有这些 linter 都是开源的,因此您可以调整它们以满足您的需求。
您还可以探索一些最好的 API 开发和测试工具。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

