用途
credo-checks 用于理解并修复 Elixir 代码中常见的 Credo 检查问题,帮助开发者应对 Credo 报告的质量与一致性告警。
主要能力
Credo 的检查项被划分为以下几类:
- 一致性检查(Consistency Checks):确保项目中的代码风格保持一致。
- 设计检查(Design Checks):识别设计问题与反模式。
- 可读性检查(Readability Checks):改善代码可读性与可维护性。
- 重构检查(Refactoring Checks):指出可重构的机会。
- 警告检查(Warning Checks):捕捉潜在的缺陷与问题。
常见问题与修复示例
模块文档缺失
问题写法:
# Issue: Missing module documentation
defmodule MyModule do
end
修复后:
defmodule MyModule do
@moduledoc """
This module handles user authentication.
"""
end
函数复杂度过高
问题写法(高圈复杂度):
# Issue: High cyclomatic complexity
def complex_function(x) do
if x > 10 do
if x < 20 do
if rem(x, 2) == 0 do
:even_mid
else
:odd_mid
end
else
:high
end
else
:low
end
end
修复后(抽取为独立函数):
# Fixed: Extract to separate functions
def classify_number(x) do
case {x > 10, x < 20, rem(x, 2) == 0} do
{false, _, _} -> :low
{true, false, _} -> :high
{true, true, true} -> :even_mid
{true, true, false} -> :odd_mid
end
end
单级管道
问题写法:
# Issue: Single pipe
list |> Enum.map(&(&1 * 2))
修复后:
Enum.map(list, &(&1 * 2))
未使用变量
问题写法:
# Issue
def process({:ok, result}, _context) do
result
end
修复后(以下划线为前缀):
# Fixed: Prefix with underscore
def process({:ok, result}, _context) do
result
end
使用方式
当需要在 Elixir 项目中理解并修复 Credo 检查告警、统一代码风格时,可参考本技能提供的分类与常见问题修复示例进行处理。
适用场景
适用于 Elixir 项目的代码质量维护,包括处理 Credo 报告、修复风格与设计告警、改善可读性与可维护性、识别重构机会,以及排查潜在缺陷。
限制
暂未提供关于安装命令、配置方式、支持的 Credo 版本、与编辑器或 CI 的集成方式等信息。