1

重複の可能性:
私が継承した巨大なJavaSwingアプリの手がかりを得る/デバッグする

私は新しいプロジェクトに参加し、プロジェクトの製品を理解する必要があります。私はデーモン/スタンドアロンタイプのアプリケーションに精通していますが、今回はSwingを使用してJavaGUIアプリケーションに参加する必要があります。

私はかなり大きなコードベースに精通している必要があります。私は過去3日間これを試みてきましたが、「全体像」を把握するのに苦労していることがわかりました。イベント駆動型モデルは、アプリケーション内のどこからでも発生し、トリガーされることを意味します。

現時点では、画面をどのように構築して組み立てるかを理解するのにまだ苦労しています。私はコードを見ることができますが、参照や呼び出しなどをたどることができるのに慣れている通常のモデルではないため、たどるのに苦労しています。

この学習プロセスを簡素化/高速化するためにできることはありますか?ダイアグラム形式(クラス図、シーケンス図など)で見ると、物事をよりよく理解する傾向があります。コードをUMLにリバースエンジニアリングして理解を深めることができるツールを見つけようとしていますが、コードベースが大きいため、生成されるUML図はおそらく使用できなくなります。関係するクラスの数。

何かアドバイスをいただければ幸いです。

4

3 に答える 3

1

レガシーアプリケーションとそれに付随するすべての手荷物を扱っていると思います。

したがって、UMLを生成するようになったとしても、それが(おそらく)巨大な混乱であることがわかるので、それが役に立たないことは間違いありません。デザインパターンに似ていたものが台無しになり、コードスニペットがコピーされてaからb、cに貼り付けられました...

(私の経験から)最善の策は、特定のアクションを実行するときにデバッガーのプログラムロジックに従うことです。少なくとも、同様のシナリオに直面したときに最も役立つことがわかったのはそれです。

于 2012-10-12T11:58:06.467 に答える
1

優れた IDE を入手してください。このタスクには itellij のアイデアをお勧めします。無料ではありませんが、あらゆる場面でEclipseに勝っています

于 2012-10-12T12:01:31.660 に答える
1

私はdngfngに同意します。レガシーアプリケーションには「手荷物」が付属しています。「時間」と既存の開発者との多くの議論だけがそれを分類します。

ここでの他の提案に加えて、ユーザーの観点から製品を「使用する」だけだと思います。ソフトウェアの使用に慣れるまで、機能で約束されているすべてのアクションを実行します。その後、コードベースを見ると、もう少し直感的になるかもしれません。

于 2012-10-12T17:09:24.780 に答える