fuck-u-code
é uma ferramenta dedicada à análise da qualidade do código, projetada para detectar a complexidade e a bagunça do código de um projeto e atribuir a ele uma pontuação intuitiva do "Shit Mountain Index". A ferramenta é executada localmente e não faz upload de nenhum código pela Internet, garantindo a segurança do código. Ela é compatível com uma ampla gama das principais linguagens de programação, incluindo Go, JavaScript/TypeScript, Python, Java, C/C++ e outras.fuck-u-code
Avalia o código em sete dimensões principais, como complexidade ciclomática, comprimento da função e repetição de código. Um de seus recursos notáveis é a capacidade de gerar relatórios coloridos de pontos de extremidade que apresentam os resultados da análise de forma bem-humorada, tornando o processo de revisão de código menos entediante. Além disso, a ferramenta também suporta a exportação do relatório de análise para o formato Markdown para facilitar a integração com ferramentas de IA (por exemplo, ChatGPT) ou a gravação em documentos da equipe.
Lista de funções
- Suporte a vários idiomasSuporte para análise de Go, JavaScript/TypeScript, Python, Java, C/C++, Rust e muitas outras linguagens de programação.
- Pontuação do índice de Shit MountainPontuação de qualidade: fornece um sistema de pontuação de qualidade em uma escala de 0 a 100. Quanto maior a pontuação, pior a qualidade do código.
- Sete dimensões de detecçãoAvaliação da qualidade do código em sete áreas: complexidade ciclomática, comprimento da função, cobertura de comentários, tratamento de erros, convenções de nomenclatura, repetição de código e estrutura de código.
- Relatório do terminal coloridoRelatórios de análise de saída com cores e emoticons no terminal, tornando a apresentação dos resultados mais vívida e intuitiva.
- Saída de relatório markdownRelatório de análise: relatórios estruturados em formato Markdown podem ser gerados, facilitando para os desenvolvedores o uso dos resultados da análise para processamento de ferramentas de IA, integração de documentos ou geração de relatórios em processos de CI/CD.
- Opções flexíveis de configuraçãoOs usuários podem personalizar o comportamento da análise por meio de opções de linha de comando, como a exibição de relatórios detalhados, a definição do número de arquivos problemáticos a serem exibidos, a exclusão de arquivos ou diretórios específicos, etc.
- operação localA ferramenta é executada inteiramente no ambiente local, não requer conexão com a Internet e não faz upload do código do usuário, garantindo a privacidade e a segurança do código.
Usando a Ajuda
fuck-u-code
é uma ferramenta de linha de comando cuja função principal é analisar o código do projeto em um caminho especificado e fornecer um relatório detalhado de avaliação da qualidade.
Processo de instalação
Você pode escolher uma das três formas de instalação a seguir.
1. instalação direta a partir do código-fonte (recomendado)
Se o seu computador já estiver configurado com o ambiente da linguagem Go, essa é a maneira mais fácil de fazer isso.
go install github.com/Done-0/fuck-u-code/cmd/fuck-u-code@latest
Depois de executar esse comando, certifique-se de que o arquivobin
foi adicionado ao diretórioPATH
nas variáveis de ambiente. Se o tempo de execução solicitarcommand not found
Você pode executar o seguinte comando para definir obin
é adicionado ao diretórioPATH
em (Linux/Mac, por exemplo):
export PATH="$PATH:$(go env GOPATH)/bin"
Para tornar essa configuração permanente, é recomendável adicionar a linha acima ao arquivo de configuração do seu terminal, por exemplo.bash_profile
talvez.zshrc
.
2. construção a partir do código-fonte
Se você quiser compilá-lo por conta própria, poderá clonar o código localmente primeiro.
# 克隆仓库
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
Quando a compilação for concluída, ela gerará um arquivo no diretório atual chamadofuck-u-code
do arquivo executável.
3. construir com o Docker
Se você estiver familiarizado com o Docker, também poderá criar uma imagem com essa ferramenta por meio do Dockerfile.
docker build -t fuck-u-code .
Uso
análise fundamental
fuck-u-code
O comando principal doanalyze
. Você pode especificar um caminho de projeto e a ferramenta começará a analisá-lo.
# 分析指定路径的项目
fuck-u-code analyze /path/to/your/project
Você também pode omitir o caminho se estiver em uma pasta de projeto e a ferramenta analisará o diretório atual por padrão.
# 分析当前目录
fuck-u-code analyze
Se estiver executando uma imagem do Docker, será necessário montar o diretório do projeto local no contêiner.
# 使用Docker运行分析
docker run --rm -v "/path/to/your/project:/build" fuck-u-code analyze
Opções de linha de comando
Você pode controlar o comportamento da análise e do resultado adicionando diferentes opções.
opções (como nas configurações de software de computador) | escrever caracteres de forma simplificada | descrições |
---|---|---|
--verbose |
-v |
Exibe um relatório de análise muito detalhado com problemas específicos para cada arquivo. |
--top N |
-t N |
Somente os N principais arquivos com os piores problemas são mostrados; o padrão é 5. |
--issues N |
-i N |
Controla a exibição de até N perguntas específicas por arquivo; o padrão é 5. |
--summary |
-s |
Somente as conclusões e classificações finais resumidas são mostradas, não o processo de análise detalhada. |
--markdown |
-m |
Formatar a saída como Markdown em vez de texto de terminal colorido. |
--lang |
-l |
Especifique o idioma de saída do relatório, atualmente compatível com o chinês (zh-CN ) e inglês (en-US ). |
--exclude |
-e |
A exclusão de arquivos ou diretórios específicos pode ser usada várias vezes. Por exemplo.--exclude "**/test/**" . |
--skipindex |
-x |
Ao analisar projetos JavaScript/TypeScript, ignore a opçãoindex.js talvezindex.ts Documentação. |
exemplo de uso
Aqui estão alguns cenários de uso comuns.
- Conduzir uma análise detalhada
fuck-u-code analyze --verbose
- Concentre-se apenas nos 3 piores arquivos
fuck-u-code analyze --top 3
- Gere um relatório Markdown em inglês e salve-o em um arquivo
Esse recurso é perfeito para colaboração e documentação em equipe.fuck-u-code analyze --markdown --lang en-US > report.md
- Verifique rapidamente a qualidade do código na integração contínua (CI)
A simples observação do resumo pode ser uma maneira rápida de determinar se a qualidade do código está à altura.fuck-u-code analyze --summary
- Excluir arquivos de teste e bibliotecas dependentes da análise
fuck-u-code analyze --exclude "**/test/**" --exclude "**/vendor/**"
Uso avançado: combinado com ferramentas de IA
--markdown
As opções sãofuck-u-code
Um recurso muito útil. O relatório Markdown gerado é claramente estruturado e contém uma avaliação geral, tabelas para cada indicador, uma lista de documentos problemáticos e sugestões de aprimoramento.
Você pode copiar o conteúdo desse relatório diretamente para uma ferramenta de IA (por exemplo, ChatGPT, Claude, etc.) e fazer perguntas a ela, por exemplo:
- "Ajude-me a analisar este relatório de qualidade de código."
- "Dê sugestões específicas de refatoração de código para os problemas mencionados no relatório."
- "Com base nesse relatório, resuma os três principais problemas de qualidade de código que precisam ser priorizados pela minha equipe."
Isso pode ajudá-lo a entender mais rapidamente as características ruins do seu código e a obter correções viáveis.
cenário do aplicativo
- Auto-estudo de projeto individual
Depois de concluir um módulo funcional ou um projeto pessoal, os desenvolvedores podem usar essa ferramenta para fazer um "check-up" abrangente de seu código. Ao analisar o "Shit Mountain Index" e a lista de problemas específicos, ela ajuda os desenvolvedores a refatorar e otimizar seu código antes que ele se corrompa e a desenvolver bons hábitos de codificação. - Revisão do código da equipe (Revisão do código)
A revisão de código é uma parte importante do trabalho em equipe.fuck-u-code
Ele pode ser usado como uma ferramenta de automação de pré-revisão. Os membros da equipe a utilizam para autoverificação antes de enviar o código ou anexam o relatório Markdown a uma solicitação de mesclagem (Pull Request). Isso não apenas melhora a eficiência da revisão, mas também torna a discussão sobre a qualidade do código mais objetiva e orientada por dados, evitando disputas subjetivas. - Avaliação dos custos de manutenção de projetos antigos (shit hill)
Quando chegar a hora de assumir um projeto antigo e desconhecido, você poderá usar ofuck-u-code
Realizar rapidamente um mapeamento da qualidade de seu código. O relatório gerado dá uma ideia geral da gravidade da dívida técnica do projeto, permitindo uma avaliação mais precisa do tempo e dos custos de mão de obra necessários para a manutenção e a refatoração subsequentes. - Integração ao processo de CI/CD
É possível combinarfuck-u-code
Integrar-se ao pipeline de integração contínua (CI). Por exemplo, antes que o código seja mesclado na ramificação principal, uma análise da qualidade do código é executada automaticamente. Se a pontuação ficar abaixo de um limite definido, essa mesclagem será bloqueada. Isso cria uma linha automatizada de defesa da qualidade, garantindo que a equipe mantenha um alto nível de qualidade de código.
QA
- Essa ferramenta fará upload do meu código? Ela é segura?
Essa ferramenta é totalmente segura. Ela é executada em seu computador local e todo o processo de análise não requer uma conexão com a Internet, muito menos o acesso ou o upload do seu código de qualquer forma. - Como é calculada a pontuação do "Shit Mountain Index"? Uma pontuação mais alta é melhor?
Ao contrário, quanto maior a pontuação, pior a qualidade do código e maior a probabilidade de ser uma "montanha de merda". A pontuação é calculada com base em sete dimensões (por exemplo, comprimento da função, repetição de código, taxa de comentários etc.), com uma pontuação de 0 indicando uma qualidade de código muito alta e uma pontuação de 100 indicando uma qualidade de código muito ruim. - Por que sou solicitado após a instalação no Linux ou Mac?
command not found
?
Isso geralmente ocorre porque o ambiente da linguagem Gobin
não foi adicionado ao diretórioPATH
na variável de ambiente. Você precisa adicioná-la manualmente. Você pode executar o comandoexport PATH="$PATH:$(go env GOPATH)/bin"
e adicione essa linha ao arquivo de configuração do seu terminal (por exemplo.zshrc
talvez.bash_profile
) para torná-lo permanente. - Quais linguagens de programação são compatíveis com essa ferramenta?
Atualmente, ele oferece suporte a uma ampla variedade de linguagens convencionais, incluindo Go, JavaScript/TypeScript, Python, Java, C/C++ e Rust. - Ao analisar projetos de front-end, o
node_modules
Você conta os arquivos no arquivo?
Não vai. A ferramenta já exclui algumas dependências comuns de projetos de front-end e constrói diretórios de produtos por padrão, como o diretórionode_modules
edist
ebuild
bem como alguns arquivos JS compactados (por exemplo.min.js
) para garantir a precisão dos resultados da análise.