Credo代码检查Skill credo-checks

这个技能用于理解和修复Elixir代码中常见的Credo检查问题,包括代码一致性、设计、可读性、重构和警告检查,帮助提升代码质量和维护性。关键词:Credo,Elixir,代码质量,代码检查,编程规范。

后端开发 0 次安装 0 次浏览 更新于 3/25/2026

name: credo-checks user-invocable: false description: 用于理解和修复Elixir代码中常见Credo检查问题,以提升代码质量和一致性。 allowed-tools: []

Credo检查

理解并修复常见的Credo问题。

检查类别

一致性检查

确保项目中的代码风格一致。

设计检查

识别设计问题和反模式。

可读性检查

提高代码可读性和可维护性。

重构检查

突出重构机会。

警告检查

捕获潜在的错误和问题。

常见问题

模块文档

# 问题:缺少模块文档
defmodule MyModule do
end

# 修复
@moduledoc """
此模块处理用户认证。
"""
defmodule MyModule do
end

函数复杂度

# 问题:圈复杂度高
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

# 修复:提取到单独函数
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

管道链

# 问题:单一管道
list |> Enum.map(&(&1 * 2))

# 修复
Enum.map(list, &(&1 * 2))

未使用变量

# 问题
def process({:ok, result}, _context) do
  result
end

# 修复:前缀加下划线
def process({:ok, result}, _context) do
  result
end