Lint 与格式化工具链

共 20 题
#

1. Checkstyle(Java)的配置继承与命名规范强制

A Checkstyle 只能用一个固定配置文件,无法继承
B Checkstyle 不支持 XML 配置
C Checkstyle 只能检查代码风格,不能检查命名
D Checkstyle 支持配置继承复用基线,并能强制命名规范 ✓ 正确答案
#

2. ESLint flat config(v9)的现代化配置中扁平化、可组合

A flat config 沿用旧的 eslintrc 层级继承
B flat config 不支持 ignores
C flat config 只支持单个配置文件
D flat config 用扁平数组表达配置,可导出、可组合、结构清晰 ✓ 正确答案
#

3. ESLint 的可扩展架构(parser、rule、plugin、formatter)的工程价值

A ESLint 只能使用内置规则,无法扩展
B parser、rule、plugin、formatter 四层扩展让 ESLint 可支持新语言、自定义规则并复用 ✓ 正确答案
C ESLint 无法更换解析器
D ESLint 的 formatter 只能输出 JSON
#

4. PMD(多语言)的规则集与 Copy-Paste Detector(CPD)

A PMD 只支持 Java 一种语言
B CPD 与 PMD 毫无关系
C PMD 是多语言工具,提供规则集检查缺陷,并用 CPD 检测重复代码 ✓ 正确答案
D PMD 规则集无法自定义
#

5. 规范到规则的映射中如何将团队编码规范逐条转化为 lint 规则,无法自动化的规范如何由人工评审兜底?

A 所有规范都应转化为 lint 规则
B 规范化后无需人工评审
C 可自动化的规范转成 lint 规则,依赖上下文的规范由人工评审兜底 ✓ 正确答案
D 规范无法转化为任何规则
#

6. Prettier 与 ESLint 的协作中 eslint-config-prettier 关闭冲突规则

A Prettier 与 ESLint 功能完全重叠
B Prettier 管格式、ESLint 管质量,eslint-config-prettier 关闭冲突的格式规则 ✓ 正确答案
C 两者不能同时使用
D eslint-config-prettier 会关闭所有 ESLint 规则
#

7. SpotBugs(Java)的字节码分析与 FindSecBugs 的安全插件

A SpotBugs 分析源码,无法看字节码
B FindSecBugs 与 SpotBugs 无关
C SpotBugs 分析字节码发现缺陷,FindSecBugs 插件补充安全规则检测 ✓ 正确答案
D SpotBugs 只能检测命名问题
#

8. golangci-lint(Go)的多 linter 聚合(govet、errcheck、staticcheck)

A golangci-lint 只运行一个 linter
B golangci-lint 只适用于前端
C golangci-lint 无法自定义配置
D golangci-lint 聚合 vet、errcheck、staticcheck 等 linter,统一配置并纳入 CI 门禁 ✓ 正确答案
#

9. ESLint 的 shareable config(共享配置)的工程价值

A shareable config 只能在一个项目内使用
B shareable config 无法被覆盖
C shareable config 把规则打包成可复用、可版本化的包,统一多项目规范并降低维护成本 ✓ 正确答案
D shareable config 只能来自官方
#

10. ESLint 的自定义规则(custom rule)的开发

A 自定义规则通过监听 AST 节点并调用 report 报告问题 ✓ 正确答案
B 自定义规则无法提供自动修复
C 自定义规则不需要测试
D 自定义规则只能通过修改源码实现
#

11. commitlint(Git commit)的提交信息规范

A commitlint 只检查代码格式
B commitlint 与提交信息无关
C commitlint 无法配置规范
D commitlint 校验提交信息格式,配合 husky 在 commit-msg 钩子拦截不合规提交 ✓ 正确答案
#

12. clang-tidy 的 C/C++ 检查架构中 bugprone、performance、portability、security、misc、cert、modernize 等 check 分类如何配置,结合 -p compile_commands.json、header-filter 与 run-clang-tidy 实现增量检查,并纳入 CI 质量门禁与 -fix 自动修复流程?

A clang-tidy 无需编译数据库即可分析
B clang-tidy 只能检查头文件
C clang-tidy 按 bugprone/performance/security 等分类配置 check,需 compile_commands.json 与 header-filter,可增量检查并 -fix 自动修复 ✓ 正确答案
D clang-tidy 无法集成到 CI
#

13. Lint 抑制的治理中 disable/suppress 注释如何要求原因、限期清理并审计,避免永久豁免?

A 抑制应要求原因、设定期限并审计清理,避免永久豁免 ✓ 正确答案
B 抑制注释无需任何理由,可永久使用
C 抑制注释无法被统计
D 抑制越多代表代码质量越高
#

14. Lint 的执行策略中全量与增量检查如何选择,CI 与本地缓存如何避免慢检查拖慢流程?

A 所有场景都应全量检查
B Lint 无法缓存
C 增量检查结果与全量完全一致
D 本地/PR 用增量加缓存实现快速反馈,夜间用全量保基线,缓存避免重复慢检查 ✓ 正确答案
#

15. markdownlint(Markdown)的文档检查

A markdownlint 只检查代码,不检查文档
B markdownlint 无法配置规则
C markdownlint 检查 Markdown 文档的标题、列表、代码块等格式规范 ✓ 正确答案
D markdownlint 只能检查 HTML
#

16. stylelint(CSS/SCSS)的样式检查

A stylelint 检查 CSS/SCSS 的命名、属性、重复声明等样式规范,并支持自动修复 ✓ 正确答案
B stylelint 只检查 JavaScript
C stylelint 无法检查 SCSS
D stylelint 不能集成到 CI
#

17. 格式化与 Lint 的分工中 Prettier + ESLint?

A 格式化与 lint 是同一件事
B Prettier 负责排版格式化,ESLint 负责质量检查,二者分工协作 ✓ 正确答案
C Prettier 也能检查代码质量
D 两者互斥,只能用一个
#

18. Lint 的 CI 集成与错误抑制治理?

A CI 作为门禁拦截新增错误,抑制治理要求原因且限期审计,防止永久豁免 ✓ 正确答案
B CI 只负责展示 lint 结果,不拦截
C 抑制注释无需管理
D CI 无法运行 lint
#

19. 自定义规则中团队规范的落地?

A 团队规范只能靠人工评审
B 把可自动化的规范写成自定义规则,经试验、评审后纳入门禁,并持续维护 ✓ 正确答案
C 自定义规则无需测试
D 自定义规则一次写好永不修改
#

20. Lint 工具升级的风险控制中新版本规则行为变化如何通过基线对比与灰度启用管理?

A 升级后规则变化无需管理
B 通过基线对比量化影响、灰度启用新规则、锁定版本,实现可控升级 ✓ 正确答案
C 新规则升级后应直接全量阻断
D 升级无法影响门禁