Acesso no exterior: www.kdjingpai.com
Ctrl + D Marcar este site como favorito

fuck-u-code是一个专用于代码质量分析的工具,它被设计用来检测项目代码的复杂和混乱程度,并给出一个直观的“屎山指数”评分。这个工具通过本地运行,不会联网上传任何代码,保障了代码的安全性。它支持包括Go、JavaScript/TypeScript、Python、Java、C/C++在内的多种主流编程语言。fuck-u-code从七个核心维度评估代码,例如循环复杂度、函数长度和代码重复度等。它的一个显著特点是能够生成彩色的终端报告,用一种幽默的方式展示分析结果,让代码审查过程不再枯燥。此外,工具还支持将分析报告输出为Markdown格式,方便与AI工具(如ChatGPT)集成或写入团队文档。

Lista de funções

  • Suporte a vários idiomas: 支持分析Go、JavaScript/TypeScript、Python、Java、C/C++、Rust等多种编程语言。
  • 屎山指数评分: 提供一个0到100分的质量评分系统。分数越高,代表代码质量越差。
  • 七大维度检测: 从循环复杂度、函数长度、注释覆盖率、错误处理、命名规范、代码重复度和代码结构这七个方面评估代码质量。
  • 彩色终端报告: 在终端中输出带有颜色和表情符号的分析报告,使结果展示更生动、直观。
  • Markdown报告输出: 可以生成结构化的Markdown格式报告,方便开发者将分析结果用于AI工具处理、文档集成或是在CI/CD流程中生成报告。
  • 灵活的配置选项: 用户可以通过命令行选项自定义分析行为,例如显示详细报告、设定问题文件的展示数量、排除特定文件或目录等。
  • operação local: 工具完全在本地环境运行,不需要联网,不会上传用户代码,确保了代码的隐私和安全。

Usando a Ajuda

fuck-u-code 是一个命令行工具,主要作用是分析指定路径下的项目代码,并给出一份详细的质量评估报告。

Processo de instalação

你可以选择以下三种方式中的任意一种进行安装。

1. 从源码直接安装(推荐)
如果你的电脑已经配置好Go语言环境,这是最简单的方式。

go install github.com/Done-0/fuck-u-code/cmd/fuck-u-code@latest

运行这个命令后,请确保Go的bin目录已经添加到了系统的PATH环境变量中。如果运行时提示command not found,可以执行以下命令将bin目录添加到PATH中(以Linux/Mac为例):

export PATH="$PATH:$(go env GOPATH)/bin"

为了让这个设置永久生效,建议将上面这行命令添加到你终端的配置文件里,例如.bash_profiletalvez.zshrc.

2. 从源码构建
如果你想自己编译,可以先将代码克隆到本地。

# 克隆仓库
git clone https://github.com/Done-0/fuck-u-code.git
# 进入项目目录
cd fuck-u-code
# 编译生成可执行文件
go build -o fuck-u-code ./cmd/fuck-u-code

编译完成后,会在当前目录下生成一个名为fuck-u-code的可执行文件。

3. 使用Docker构建
如果你熟悉Docker,也可以通过Dockerfile来构建一个包含此工具的镜像。

docker build -t fuck-u-code .

Uso

基本分析
fuck-u-code的核心命令是analyze。你可以指定一个项目路径,工具便会开始分析。

# 分析指定路径的项目
fuck-u-code analyze /path/to/your/project

如果你在某个项目文件夹内,也可以省略路径,工具会默认分析当前目录。

# 分析当前目录
fuck-u-code analyze

如果你使用Docker镜像运行,需要将本地的项目目录挂载到容器中。

# 使用Docker运行分析
docker run --rm -v "/path/to/your/project:/build" fuck-u-code analyze

命令行选项
你可以通过添加不同的选项来控制分析和输出的行为。

opções (como nas configurações de software de computador) 简写 descrições
--verbose -v 显示非常详细的分析报告,包含每个文件的具体问题。
--top N -t N 只显示问题最严重的前 N 个文件,默认是5个。
--issues N -i N 控制每个文件最多显示 N 个具体问题,默认是5个。
--summary -s 只显示最终的总结结论和评分,不展示详细的分析过程。
--markdown -m 将输出内容格式化为Markdown,而不是彩色的终端文本。
--lang -l 指定报告的输出语言,目前支持中文(zh-CN)和英文(en-US).
--exclude -e 排除特定的文件或目录,可以使用多次。例如,--exclude "**/test/**".
--skipindex -x 在分析JavaScript/TypeScript项目时,跳过index.jstalvezindex.tsDocumentação.

exemplo de uso
下面是一些常见的使用场景。

  1. 进行一次详细的分析
    fuck-u-code analyze --verbose
    
  2. 只关注最糟糕的3个文件
    fuck-u-code analyze --top 3
    
  3. 生成一份英文的Markdown报告并保存到文件
    这个功能非常适合团队协作和文档记录。

    fuck-u-code analyze --markdown --lang en-US > report.md
    
  4. 在持续集成(CI)中快速检查代码质量
    只看总结可以快速判断代码质量是否达标。

    fuck-u-code analyze --summary
    
  5. 分析时排除测试文件和依赖库
    fuck-u-code analyze --exclude "**/test/**" --exclude "**/vendor/**"
    

高级用法:结合AI工具

--markdown选项是fuck-u-code一个非常有用的功能。生成的Markdown报告结构清晰,包含了总体评估、各项指标表格、问题文件列表和改进建议。

你可以将这份报告的内容直接复制给AI工具(如ChatGPT、Claude等),然后向它提问,例如:

  • “请帮我分析这份代码质量报告。”
  • “针对报告中提到的问题,请给出具体的代码重构建议。”
  • “请根据这份报告,为我的团队总结前三个需要优先解决的代码质量问题。”

这可以帮助你更快地理解代码中的坏味道,并得到可行的修复方案。

cenário do aplicativo

  1. 个人项目自查
    开发者在完成一个功能模块或一个个人项目后,可以使用该工具对自己的代码进行一次全面的“体检”。通过查看“屎山指数”和具体问题列表,可以帮助开发者在代码腐化之前就进行重构和优化,养成良好的编码习惯。
  2. 团队代码审查(Code Review)
    在团队协作中,代码审查是一个重要环节。fuck-u-code可以作为审查前的自动化工具。团队成员在提交代码前先用它进行自查,或者将Markdown报告附在合并请求(Pull Request)中。这不仅提高了审查效率,也让代码质量的讨论变得更客观、数据化,避免了主观争议。
  3. 评估旧项目(屎山)的维护成本
    当需要接手一个陌生的旧项目时,可以使用fuck-u-code快速对其代码质量进行一次摸底。通过生成的报告,可以大致了解项目的技术债务有多严重,从而更准确地评估后续的维护、重构所需的时间和人力成本。
  4. 集成到CI/CD流程
    可以将fuck-u-code集成到持续集成(CI)流水线中。例如,在代码合并到主分支之前,自动运行一次代码质量分析。如果分数低于某个设定的阈值,就阻止本次合并。这可以形成一道自动化的质量防线,确保团队的代码质量维持在较高水平。

QA

  1. 这个工具会上传我的代码吗?安全吗?
    这个工具是完全安全的。它在你的本地电脑上运行,整个分析过程不需要连接互联网,更不会以任何形式获取或上传你的代码。
  2. “屎山指数”评分是如何计算的?分数越高越好吗?
    恰恰相反,分数越高代表代码质量越差,代码越有可能是一座“屎山”。这个分数是根据七个维度(如函数长度、代码重复度、注释率等)的检测结果综合计算出来的。0分代表代码质量很高,而100分则表示代码质量非常糟糕。
  3. 为什么我在Linux或Mac上安装后提示command not found?
    这通常是因为Go语言环境的bin目录没有被添加到系统的PATH环境变量里。你需要手动将它添加进去。可以执行export PATH="$PATH:$(go env GOPATH)/bin",并把这行命令加到你终端的配置文件中(如.zshrctalvez.bash_profile)使其永久生效。
  4. 这个工具支持哪些编程语言?
    它目前支持多种主流语言,包括Go、JavaScript/TypeScript、Python、Java、C/C++和Rust。
  5. 分析前端项目时,会把node_modules里的文件也算进去吗?
    不会。工具默认已经排除了一些常见的前端项目依赖和构建产物目录,例如node_modulesedistebuild以及一些压缩过的JS文件(如.min.js),以确保分析结果的准确性。
0Marcado
0Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

voltar ao topo

pt_BRPortuguês do Brasil