web-dev-qa-db-ja.com

BIGプロジェクトのソースコードを理解するための最良の方法は何ですか?

重複の可能性:
どのようにして大きなコードベースに飛び込むのですか?

新しい製品を開発する前に、既存の製品や既存のソースコードを理解する必要がある場合があります。

時々、その大きなプロジェクトの別の小さなモジュールを書くために、その大きなソースコードを理解する必要があります。

私たちのケースでは、多くのファイルとフォルダを含むプロジェクトを研究して理解する必要があります。それを行うための最も簡単で快適な方法は何ですか? (特にCおよびC++およびLinuxの場合)

3
Jeegar Patel

すべての大きなプロジェクトには、通常、何らかのドキュメントがありますDoxygenこれは、コードを理解するのに非常に役立ちます。

SourceInsightのようなコードブラウジングツールを使用してコードを調べることもできます。

最後ですが、最善の方法は、コードを実行してユースケースをデバッグすることです。

2
Alok Save

Alsはすでに doxygen について言及していますが、これは多くのプロジェクトでドキュメント化に使用されています。
ソースブラウジングの場合: vim とともにプラグイン、 cscopectags は非常にうまく機能します。これらはLinux環境に簡単にインストールでき、タンデムで非常にうまく機能します。
お役に立てれば!

2

さまざまなアプローチがあります。ドキュメントがあれば役立つはずですが、現実には残念なことに、十分にドキュメント化されていないコードベースがかなりあります。多くの場合、社内の上級開発者にガイダンスを依頼できます。必ず、各モジュールで何がどのように行われるかについての概要を尋ねてください。

UML分析ツールを使用してコードベースから情報を抽出できます。BoUMLをお勧めします。これはきれいではありませんが、C++の処理には優れており、1つのクラスをプルしてそこから拡張するだけでクラス図を作成できます。

IDEまたはコードをナビゲートするのに役立つ同様のツールセットも役立ちます。プレーンエディターを使用するよりもはるかに簡単にコードをナビゲートできるためです。

分析を行う際は、コードの各部分が何をしていると思うか、またはどこに疑いがあるかを必ずメモしてから、社内のシニアに理解を確認するか、ギャップを埋めるよう依頼してください。

読むことやドキュメンテーションは役に立ちますが、書くことも役立ちます!

コードベースの一般的な機能を使用するテスト(深刻ではない)をいくつか作成するか、使用する必要があるコンポーネントに焦点を当てます。

予期していなかったこと、発生した問題、チームの慣行からの逸脱のいくつかを文書化してください。

一部のプログラムがどのように動作し、どのように使用されることが期待されているかに驚くかもしれません。

1
justin

あなただけのハードワークが必要です。

大きなコードベースに慣れることは、かせを解くようなものです。あなたはどこかから始めて、何も理解していません。次に、他の場所からもう一度始めますが、まだ何も理解していません。

始めから始めて、一部のパーツが目立たなくなります。最初に開始した場所からもう一度開始すると、いくつかの手掛かりが得られます。

次に、戦略は分割統治です。モジュールを分離し、順番に理解します。

可能な開始は、Makefile、main()関数、ファイル階層、既存のドキュメント(少なくともREADMEファイル))、または計画されていなくてもDoxygenが抽出できるものです。

0
mouviciel