12

重複の可能性:
C/C++ ソース コードを一連のコーディング標準に照らしてチェックする無料のツール?

直接アクセスできない複数の人が関与する C++ プロジェクトを開始しています。アクセシビリティに応じてクラス メンバーのケーシングを定義するコーディング スタイル ガイドに合意しました (つまり、パスカル ケースのプライベート、キャメル ケースのパブリックとプロテクト)。スタイル ガイドについての議論を開始しないでください。もう十分です。ありがとうございました。)。

ここでやりたいことは、スタイル ガイド違反のレポートを生成することです。コミット時などにスタイル ガイドを強制したくありませんが、各開発者が自分のコードがスタイル ガイドに違反している場所を確認するために使用できるツールを提供したいと考えています (チェックしたい場合)。

ジョブを実行できるツールを知っていますか?

(クラスメンバーのアクセシビリティを検出するなど、一部の C++ を理解できる必要があります。)

4

3 に答える 3

1

スタイル ガイドは企業固有のものになる傾向があり、それを実現するには企業固有のチェックを作成する必要があります。

私の会社では、カスタマイズ可能な C++ スタイル チェッカーを提供しています。このチェッカーでは、非推奨のイディオムを構文でチェックしたり、変数と型に特定のプロパティがあることを確認したり、特定のコマンドが特定の順序でローカルに発生することを確認したりできます。これらのチェッカーは、ソース コードで C++ 方言の正確なパーサーを使用します。カスタマイズは簡単ではありません。基礎となるエンジンと、C++ プログラムの構文解析に関する知識が必要です。

レイアウトをチェックするルールを書くことは可能ですが、それは多くのやりがいのない作業であり、そのような苦情を解決することは、プログラマー リソースの私見を生産的に使用することではありません。そして、自分のスタイルを強制するつもりがないのなら、なぜプログラマーを不満で悩ませるのでしょうか? IT は (別の投稿者が指摘したように) 単純に、プログラマーに費用をかけずに正しい結果を生成するレイアウト フォーマッターを実行する方が簡単に思えます。

汎用フォーマッタの問題の 1 つは、言語が不正確であるため、ソース コードを誤って解釈したり、フォーマット時にコードを壊したりして、コンパイル エラー、デバッグ、および時間の浪費につながる可能性があることです。また、スタイル チェッカーと同じ正確な言語のパーサーを使用して書式設定を行うC++ フォーマッターも提供しています。再フォーマット中にコードを壊すことはできません。

于 2012-05-30T18:12:04.763 に答える
1

まあ、コミット時にAStyleまたはUncrustifyを介してコードを実行できます。これにより、少なくとも悪いコードが何らかの標準に再フォーマットされます。それがコードのコミットと標準に関する大部分の問題であることがわかりました。コミット後に再フォーマットすると、まったく些細な多くのデルタ変更として表示されます。

それ以外の場合は、他のSO answerを確認してください。

于 2012-05-30T15:37:30.030 に答える
1

プロジェクトでこれを行うために、 vera++ツールを使用して成功しています。私は、会社のスタイルのガイドラインを採用するために (TCL で) いくつかの規則を書きました。チェックから報告されたすべての誤検知を回避するまでは、少し苦痛でした。少なくとも現在はうまく機能しており、レポートを Jenkins ビルド分析に統合しました。

レポートは、Eclipse IDE のカスタム エラー分析にも簡単に適用できます。

于 2012-05-30T16:08:15.893 に答える