什么是 代码检查?

代码检查是一种静态分析技术,使用自动化工具在不执行代码的情况下分析源代码,发现语法错误、潜在 bug、风格不一致和安全漏洞。常用工具包括 ESLint、Pylint 等,可集成到 IDE 和 CI/CD 流程中实现自动化质量控制。

快速了解

全称代码检查/静态分析
创建时间1978 年(Stephen Johnson 为 C 语言创建的原始 lint)
规范文档官方规范

工作原理

Linting(以最初用于 C 语言的 'lint' 工具命名)是一种静态代码分析形式,用于检查源代码以标记编程错误、bug、风格错误和可疑构造。与运行代码的测试不同,linter 静态地分析代码——无需执行。现代 linter 检查语法错误、未定义变量、未使用的导入、不一致的格式、潜在的安全问题以及违反编码标准的情况。流行的 linter 包括用于 JavaScript 的 ESLint、用于 Python 的 Pylint、用于 Ruby 的 RuboCop 和用于代码格式化的 Prettier。Linting 通常通过 IDE 插件(实时反馈)、pre-commit 钩子(在提交前捕获问题)和 CI/CD 管道(在团队中强制执行标准)集成到开发工作流程中。Linting 可以提高代码质量、保持一致性、尽早发现 bug 并减少技术债务。

主要特点

  • 静态分析(无需执行代码)
  • 在运行时之前捕获错误
  • 强制执行编码标准和风格
  • 可配置的规则和插件
  • 与 IDE 和 CI/CD 集成
  • 可以自动修复许多问题

常见用途

  1. 强制执行团队编码标准
  2. 捕获常见编程错误
  3. 保持一致的代码风格
  4. 安全漏洞检测
  5. 代码审查自动化

示例

loading...
Loading code...

常见问题

代码检查(Linting)和测试有什么区别?

代码检查对代码进行静态分析而不执行它,检查语法错误、风格违规和潜在 bug。测试运行代码以验证其行为正确。代码检查捕获未使用变量和格式问题等问题,而测试验证功能和逻辑。两者是互补的实践。

代码检查器(Linter)和格式化工具(Formatter)有什么区别?

Linter 分析代码中的错误和潜在问题(如未使用的变量、可能的 bug),而格式化工具只处理代码风格(缩进、空格、换行)。ESLint 主要是 linter 但有格式化规则。Prettier 纯粹是格式化工具。许多团队同时使用两者 - Prettier 用于格式化,ESLint 用于捕获错误。

如何在 JavaScript 项目中设置 ESLint?

运行 'npm init @eslint/config' 通过交互式设置初始化 ESLint。这会创建一个 eslintrc 配置文件。然后运行 'npx eslint .' 来检查代码,或 'npx eslint --fix .' 自动修复问题。对于 VS Code,安装 ESLint 扩展可在编码时获得实时反馈。

应该使用 ESLint 还是 Prettier,还是两者都用?

同时使用两者效果最好。ESLint 捕获错误并执行编码标准,而 Prettier 处理代码格式化。使用 eslint-config-prettier 将它们配置在一起,以禁用与 Prettier 冲突的 ESLint 格式化规则。这样您可以获得 ESLint 的错误检测和 Prettier 的一致格式化。

如何为特定行或文件禁用代码检查规则?

对于单行,在其上方添加 '// eslint-disable-next-line rule-name'。对于代码块,用 '/* eslint-disable rule-name */' 和 '/* eslint-enable rule-name */' 包裹。对于整个文件,在顶部添加 '/* eslint-disable rule-name */'。您还可以在 ESLint 配置中配置 ignorePatterns 来排除文件。

相关工具

相关术语

相关文章

AI Code Review 流水线:安全自动化、评测与合并门禁

系统讲解如何构建可信的 AI Code Review 流水线:用确定性检查建立证据,让大模型只生成候选问题,再完成 Schema 校验、变更行复核、缺陷复现、人工处置与合并门禁。内容覆盖 GitHub Actions 不可信代码隔离、PR Prompt Injection、误报与漏报评测、测试缺口检测、生成测试验证、成本指标和回滚合同,适合准备把自动化代码审查接入 CI/CD 的研发与 DevSecOps 团队。

2026-05-22

AI 生成代码质量:通过测试之外的工程验证

用明确的变更契约、代码库上下文、分层确定性检查、结构断言、安全审查和生产证据提升 AI 生成代码质量。本文解释为什么测试通过只是必要条件,如何控制依赖、权限与外部副作用,怎样设计可执行质量门禁,并在不信任模型置信度的前提下衡量可维护性、返工、逃逸缺陷和发布风险,适合正在将 Coding Agent 接入真实研发流程的工程团队建立可审计、可回滚的验收体系。

2026-04-25

代码格式化:JavaScript、CSS、HTML 与 XML

实践 JavaScript、CSS、HTML 与 XML 格式化,区分格式化器、Lint 和压缩器的职责,理解解析器、团队配置、可审阅 diff、Source Map、构建产物、语法兼容性和隐私边界,建立适合本地开发、CI、代码审查、多人协作、跨平台维护、遗留项目迁移与生产发布的可复现代码风格流程。

2026-07-19