8

はい、恐ろしい「M」という言葉です。

ワークステーション、ソース管理、および作成していない 50 万行のソース コードがあります。ドキュメントは、承認されて公開された時点では古くなっています。元の開発者はLTAOで、次のプロジェクト/スタートアップ/ルーニービンで、電子メールに応答していません.

何をする?

{お気に入りのエディター} と Grep を使用すると、コード ベースの厄介な内臓を詳しく調べることができますが、メンテナンス エンジニアのツールボックスには他にどのようなツールが必要ですか?

ボールローリングを開始するには; C/C++ のスペランキングのためのソース インサイトなしでは生きていけないと思います。(免責事項:私は彼らのために働いていません)。

4

12 に答える 12

4

象を食べるのと同じように - 一度に一口ずつ:)

場合によっては、全体像が本当の動機になることがあります。スポットを選んで、少しずつ取り組む必要があります。

もちろん、開始するビットを選択する必要があります。通常、これは主にユーザー/ビジネスによって引き起こされ、最優先の特定の変更が必要です (昨日) が、柔軟性が少しある場合や慣れる時間があれば、メトリックが役立つことがよくあります。ここで使用するツールはテクノロジと言語によって異なりますが、NDependJDependなどのツール、組み込みのコード メトリック (Visual Studio Team System にあるもの、またはさまざまな利用可能な Eclipse プラグインなど)、またはSimianなどのツールのサイズを把握するためのツールです。コピペ問題。

単体テストとカバレッジの数が 0 より多いことを願っています。そのため、継続的インテグレーション環境で実行できるすべてのテストを常に取得し、学習に応じてテストを追加するための基礎として使用することをお勧めします。

そして、他の人が言ったように-言語にオプションが利用できると仮定すると-コードナビゲーションと自動リファクタリングを備えた優れたIDEが必須です(Eclipse、ReSharperの有無にかかわらずVisual Studio)。

士気を高める本:

幸運を :)

于 2008-09-24T15:54:26.640 に答える
3

.Net スペースで最高のツールの 1 つはReSharperです。このツールのおかげで、開発ライフサイクルのあらゆる面で時間を節約できました。彼らはまた、文書化されていないプロジェクト/ソリューションに参加している間、私が生き残るのを助けてくれました.

  • コードのリファクタリング
  • コード ナビゲーション
  • コード分​​析

これらは、時間のかかるタスクを実行するのに役立つ多くの機能の一部です。

于 2008-09-24T14:58:06.400 に答える
2

コード検索エンジンは、膨大なソース ベースを回避するのに役立ちます。

言語に依存したソース コード検索エンジンは、SD Source Code Search Engineにあります。同時に多くの言語を処理できます。検索は、特定の言語のパターン、または言語全体のパターン (「TAX を含む識別子の検索」など) に対して実行できます。言語トークンに敏感になることで、誤検知の数が減り、ユーザーの時間を節約できます。C、C++、C#、COBOL、Java、ECMAScript、Java、XML、Verilog、VHDL、およびその他の多くの言語を理解します。

(私はツール アーキテクトです)

于 2009-08-22T20:46:52.537 に答える
1

そのような状況では、Understand for C++ を使用します。

于 2008-09-24T15:26:56.300 に答える
1

私は通常、Linux で Emacs + CScope から始めます。Visual Studio には、Windows で同様の機能を提供する検査ツールがいくつかあります。Doxygen も非常に便利です。ソースにドキュメンテーション コメントがなくても役立つドキュメントを生成します。

于 2008-09-24T14:59:23.357 に答える
1

いくつかの UML ツール (おそらくペン付きの単純なノートブック =) ) および/またはクラス、呼び出し、メソッド階層 (IDE に統合されたもの) を構築するためのツールを実行します。次に、デバッガーまたは単純な単体テストでダイナミクスを監視します。これを使って、ある種のリバース エンジニアリングを実行して、デザインを解明しようとします。

于 2008-09-24T14:59:28.287 に答える
1

署名調査プロセスを使用することは、コードを俯瞰的に理解するための良い方法です。優れたスクリプト言語とそれを使用するいくつかのモジョがあれば、任意の言語で独自のコードベース用に高度にカスタマイズされた署名調査を作成することは、まったく難しい作業ではありません。

バグ追跡ソフトウェアは、特にソース管理ソフトウェアとリンクしている場合は、非常に貴重です。なぜなら、誤った決定が下された理由についての洞察が得られるからです。これは、メンテナンス プログラマーがリファクタリングも計画している場合はさらに重要です。

文書化されたログも役に立ちます。これにより、進行中にシステムを文書化できます。

于 2008-09-24T18:42:14.083 に答える
0

重要なツールは、コードベースをナビゲート(および編集)して理解を助けることができるものです。

クラスの関係を表示できるものがあると非常に便利です(オブジェクト指向言語を使用している場合)。(静的な)コールツリーを表示する機能は、行う変更の影響を測定する場合にも非常に役立ちます。

あなたはソースインサイトについて言及します。長期にわたるオープンソースプロジェクトは、ソースナビゲーターです。しばらく停滞した後、再び開発が始まったようです。

于 2008-09-24T15:02:46.017 に答える
0

特にコードとバイナリが混在している場合は、LutzのReflectorがこれに役立ちます。呼び出しと依存関係のグラフ(依存、使用、公開、インスタンス化など)、アセンブリグラフ、およびいくつかの優れたプラグインを取得します。

于 2008-09-24T18:58:09.943 に答える
0

コードベース全体をナビゲートできる必要があります。お気に入りの IDE でこれが許可されている場合は、Understand for C++ (既に引用されています)、lxr、またはOpenGrokなどのインデクサーを使用できます。

お急ぎの場合は、 grep(1s)または -better - Ackに頼ることができます。

于 2008-10-06T11:33:38.147 に答える
0

はい、頭に釘を打ちます。Unix シェルと便利な Notepad++ は、ColdFusion、PHP、Perl などでメンテナンス作業を行っていたときに使用していたものです。エディターを切り替えず、名前/パラメーター/変数へのすべての参照を追跡するのは良いことです。

ここで、Visual Studio で右クリックして [すべての参照を検索] をクリックするだけです。PHP 関係者は、編集に vi を使用せざるを得ないため、非常に嫉妬しています。;)

于 2008-09-24T14:54:44.927 に答える
0

NDepend は、レガシー コード、特に大規模な絡み合ったレガシー コード ベースのリエンジニアリング専用のツールです。免責事項: 私はツール開発者の 1 人です。

かつてブログに書いた Scott Hanselman の言葉を引用すると、「NDepend は、自分のアプリケーションについてこれまでにない洞察を与えてくれます (...) 見ている情報の深さと幅に気づいたとき、駄菓子屋にいる子供のように。」

リエンジニアリングに役立ついくつかの NDepend の機能は次のとおりです。

于 2010-09-01T15:10:49.607 に答える