fuck-u-code
は、プロジェクトのコードの複雑さと乱雑さを検出し、直感的な「Shit Mountain Index」スコアを与えるように設計された、専用のコード品質分析ツールです。このツールはローカルで動作し、インターネット上にコードをアップロードしないため、コードの安全性が保証されます。Go、JavaScript/TypeScript、Python、Java、C/C++など、主要なプログラミング言語を幅広くサポートしています。fuck-u-code
サイクロマティック複雑度、関数の長さ、コードの繰り返しなど、7つのコアな次元でコードを評価する。このツールの特筆すべき特徴の1つは、解析結果をユーモラスな方法で提示するカラフルなエンドポイントレポートを生成する機能で、コードレビューのプロセスを退屈なものにしません。さらに、このツールは、AIツール(ChatGPTなど)と簡単に統合したり、チームのドキュメントに書き込んだりするために、解析レポートをMarkdown形式にエクスポートすることもサポートしています。
機能一覧
- 多言語サポートGo、JavaScript/TypeScript、Python、Java、C/C++、Rust、その他多くのプログラミング言語の解析をサポート。
- クソ山指数スコア0から100までのスコアリング・システム。スコアが高いほどコード品質が悪い。
- 検出の7つの次元コードの品質を7つの領域で評価:サイクロマティック複雑度、関数の長さ、コメントカバレッジ、エラー処理、命名規則、コードの繰り返し、コード構造。
- カラー端末レポート端末に色や絵文字を使った分析レポートを出力し、結果をより鮮明かつ直感的に表示します。
- マークダウン・レポート出力:: 構造化されたレポートをMarkdown形式で生成することができるため、開発者は分析結果をAIツールの処理やドキュメント統合、CI/CDプロセスでのレポート生成に簡単に利用することができます。
- 柔軟な設定オプション詳細レポートの表示、表示する問題ファイル数の設定、特定のファイルやディレクトリの除外など、コマンドラインオプションで解析動作をカスタマイズできます。
- ローカルオペレーションこのツールは、完全にローカル環境で動作し、インターネット接続を必要とせず、ユーザーコードをアップロードしないため、コードのプライバシーとセキュリティを保証します。
ヘルプの使用
fuck-u-code
はコマンドラインツールで、その主な役割は、指定されたパスの下にあるプロジェクトのコードを分析し、詳細な品質評価レポートを与えることである。
設置プロセス
以下の3つの方法からインストール方法を選択できます。
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_profile
もしかしたら.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 .
使用方法
ファンダメンタル分析
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
コマンドラインオプション
さまざまなオプションを追加することで、分析や出力の動作を制御することができます。
オプション | 簡略化して書く | 説明 |
---|---|---|
--verbose |
-v |
各ファイルの特定の問題を含む非常に詳細な分析レポートを表示します。 |
--top N |
-t N |
最悪の問題を起こした上位Nファイルのみが表示され、デフォルトは5。 |
--issues N |
-i N |
ファイルごとに最大N個の特定の質問の表示をコントロールします。 |
--summary |
-s |
最終的なサマリーの結論と評価のみが示されており、詳細な分析プロセスは示されていない。 |
--markdown |
-m |
カラー端末のテキストではなく、Markdownとして出力をフォーマットする。 |
--lang |
-l |
レポートの出力言語を指定します。現在、中国語 (zh-CN )と英語(en-US ). |
--exclude |
-e |
特定のファイルやディレクトリを除外することは、複数回使用することができる。例えば--exclude "**/test/**" . |
--skipindex |
-x |
JavaScript/TypeScriptプロジェクトを分析するときはindex.js もしかしたらindex.ts ドキュメンテーション |
使用例
よくある利用シーンをいくつか紹介しよう。
- 詳細な分析の実施
fuck-u-code analyze --verbose
- 最悪の3つのファイルだけに集中する
fuck-u-code analyze --top 3
- 英語でMarkdownレポートを作成し、ファイルに保存する
この機能は、チームでの共同作業や文書作成に最適です。fuck-u-code analyze --markdown --lang en-US > report.md
- 継続的インテグレーション(CI)でコード品質を素早くチェック
要約を見るだけで、コード品質が水準に達しているかどうかを素早く判断することができる。fuck-u-code analyze --summary
- テストファイルと依存ライブラリを解析から除外する
fuck-u-code analyze --exclude "**/test/**" --exclude "**/vendor/**"
高度な使い方:AIツールとの組み合わせ
--markdown
オプションは以下の通り。fuck-u-code
非常に便利な機能です。生成されるMarkdownレポートは明確な構造になっており、全体的な評価、各指標の表、問題のある文書のリスト、改善のための提案が含まれています。
このレポートの内容をそのままAIツール(ChatGPT、Claudeなど)にコピーして、例えば質問することができる:
- "このコード品質レポートの分析を手伝ってください"
- "報告書に記載された問題に対する具体的なコード・リファクタリングの提案をする"
- 「このレポートに基づいて、私のチームにとって優先すべきコード品質問題の上位3つを要約してください。
これによって、コードに含まれる悪条件をより早く理解し、実行可能な修正を行うことができる。
アプリケーションシナリオ
- 個人プロジェクト自己学習
機能モジュールや個人プロジェクトを完了した後、開発者はこのツールを使ってコードの包括的な「チェックアップ」を行うことができます。Shit Mountain Index "と具体的な問題のリストを見ることで、開発者はコードが腐敗する前にリファクタリングと最適化を行い、良いコーディング習慣を身につけることができる。 - チーム・コード・レビュー(コード・レビュー)
コードレビューはチームワークの重要な一部である。fuck-u-code
プレレビュー自動化ツールとして使用できます。チームメンバーはコードを提出する前にセルフチェックのために使用したり、マージリクエスト(Pull Request)にMarkdownレポートを添付したりします。これはレビューの効率を向上させるだけでなく、コード品質の議論をより客観的でデータ主導のものにし、主観的な論争を避けることができます。 - 旧プロジェクトの維持費査定(糞丘)
古くて不慣れなプロジェクトを引き継ぐときはfuck-u-code
コード品質のマッピングを素早く実行できます。生成されたレポートにより、プロジェクトの技術的負債がどの程度深刻であるかの大まかな見当がつき、その後のメンテナンスやリファクタリングに必要な時間と人件費をより正確に評価することができます。 - CI/CDプロセスへの統合
を組み合わせることも可能だ。fuck-u-code
継続的インテグレーション(CI)パイプラインに統合する。例えば、コードがmasterブランチにマージされる前に、コード品質分析が自動的に実行される。スコアが設定されたしきい値を下回ると、マージはブロックされる。これにより、自動化された品質防御ラインが構築され、チームが高いレベルのコード品質を維持できるようになる。
品質保証
- このツールは私のコードをアップロードしますか?安全ですか?
このツールは完全に安全です。あなたのローカルコンピューター上で動作し、解析プロセス全体がインターネット接続を必要とせず、あなたのコードへのアクセスやアップロードも一切不要です。 - クソ山指数」のスコアはどのように計算されるのか?点数は高い方がいいのですか?
逆に、スコアが高いほどコード品質が悪く、「クソの山」である可能性が高い。スコアは7つの次元(関数の長さ、コードの繰り返し、コメント率など)に基づいて計算され、0点はコード品質が非常に高く、100点はコード品質が非常に低いことを示す。 - LinuxやMacにインストールした後、プロンプトが表示されるのはなぜですか?
command not found
?
これは通常、Go言語環境がbin
ディレクトリがシステムのPATH
を環境変数に追加する必要がある。手動で追加する必要がある。を実行することができる。export PATH="$PATH:$(go env GOPATH)/bin"
そして、この行を端末の設定ファイル(例えば.zshrc
もしかしたら.bash_profile
)を永久化する。 - このツールはどんなプログラミング言語をサポートしていますか?
現在、Go、JavaScript/TypeScript、Python、Java、C/C++、Rustなど、主流の言語を幅広くサポートしている。 - フロントエンド・プロジェクトを分析する場合
node_modules
その中にあるファイルを数えますか?
そうはならない。このツールはすでにデフォルトで、いくつかの一般的なフロントエンド・プロジェクトの依存関係やビルド製品のディレクトリを除外しています。node_modules
そしてdist
そしてbuild
や、いくつかの圧縮JSファイル(例えば.min.js
)を用いて、分析結果の正確さを保証する。