1

5人のチームメンバーが今後数年間でプロジェクトを理解して維持することが合理的であるかどうかを判断するために、数百万行のコードをレビューする作業があります。したがって、私たちは10人のメンバーからなる入力チーム、プロジェクトコード、アーキテクチャーのドキュメンテーションなどを持っています。コードが保守可能かどうかを素早く理解するには?

このプロジェクトを実行するかどうかについては、コードレビューを実行し、 。

  1. はテスト可能なコードです:?私は現在、理解しようとしている何

    彼らが持っている

  2. どのように多くの大frequntly使用したファイルを(各モジュールは、あざける、coverege、能力がlightwaighサーバー上で実行するために)

PS:

  1. コードが生産され、高い可用性を持つ
  2. 李のあなたの何百万人いる場合
  3. テストカバレッジは現在、およそ30から40パーセント
+1

これは、このフォーラムの枠内で合理的に回答できる質問ですか?それは完全にgrokするためにいくつかのセミナーを必要とする主題のように聞こえる。 –

+0

これまで、私は[X-Ray](http://marketplace.eclipse.org/content/x-ray-software-visualization)を同様のタスクにうまく使用しましたが、あなた自身で試してみる必要があります君は。 – biziclop

+1

@ Hovercraft Eelsの満員2つの副質問にはおそらく答えることができます。大きな、一般的な1つは間違いなくできません。 – biziclop

答えて

7
  • ですJUnitテストやこれと同等のテストをまだ実施していない場合は、確かに非常に危険なプロジェクトです。
  • このプロジェクトはすでに他の企業の生産に使用されていますか?はいの場合は、多くの問題に遭遇したかどうか、またどのくらいの速いバグが修正されたかを尋ねます。そうでなければ、これらの行に多くの問題が含まれていることはほぼ確実です。
  • プログラミング言語はOOをサポートしていますか?もしそうでなければ、あなたはおそらく、遅かれ早かれ書き直されなければならないたくさんのスパゲッティコードを扱っているでしょう。これは悪いニュースです。
  • コード内の技術的負債額の見積もりを試してください。長期間閉鎖されていない古いインシデントの問題追跡ツールを見てください。理由を調べてみてください。問題トラッカーがない場合、これは非常に非常に悪いニュースです。おそらく努力の価値はない。
  • ここまでの行をコード化した人にはプライベートで話してください。トレンチに入った人の話を聞く。所有者がアクセス権を与えられない場合、これは悪いニュースです。
  • このプロジェクトではどのフレームワークが使用されていますか?これらのフレームワークは良い評判を持っていますか?市場で熟練した人を見つけるのは簡単ですか?
  • どのくらいのドキュメントがありますか? Javadocの品質は?コードはにおいがしますか?それはよく書かれていますか?元の実装者は質問に利用可能ですか?そうでない場合、これは悪いニュースです。
  • いくつかのプロジェクトでは、急進的な意思決定や再設計が必要です。これは通常、努力の大きなコミットメントを意味します。あなたはこれらの決定を下すのに十分な権限を持っていますか、経営陣はあなたをサポートするのでしょうか、それとも赤字や交渉がたくさんあるのでしょうか?このプロジェクトがあなたの雇用主(またはそれを支払っている人)にとって重大ではなく、利益を上げることができない場合、経営陣は常に時間を費やさない言い訳を見つけるか、このバグを解決するよう依頼します。

回答者

コードが実稼働中の場合は、それは良いニュースです。 30-40%のテストカバレッジは全く悪くありません。 70%(またはそれ以上)にすることができれば、それは素晴らしいでしょう。いったんそこに行くと、物事は多かれ少なかれ飛行するでしょう。

私は、このプロジェクト(または良いドキュメント)の知識豊富な人や、使用されている技術に関するスキルを持っている人にはアクセスできますか?はいの場合は、それはさらに優れています。

しかし、私の最大の懸念は、このプロジェクトがあなたの雇用主にとって重大で有益であるということですか?もしそうでなければ、それに行きません。もし適切なビジネス意思決定がなされるのであれば。レコードの場合

EDIT

、私は最近Sonarを使用して開始しています。それは本当の銀色の弾丸です。これは間違いなくコードの品質を分析し、それを維持するのに役立ちます。私は間違いなくそれをお勧めします。

+2

私はオブジェクト指向についてのあなたの点を理解していますが、私はJavaでひどいスパゲッティコードを見ました。そして踏み台、それらの多く。 – biziclop

+0

@biziclopはい、OOはコードの品質を必ずしも意味するわけではありませんが、私が意味するのは、それが品質のコードを書くための手段を提供していることです(あるいは少なくとも多かれ少なかれ適切にカプセル化する)。モジュール化はほとんどの非言語で可能ですが、多くの場合、人々は規律と完全性を持っていません。巨大なプロジェクトを扱う際には、誰もが没頭します。 – JVerstry

関連する問題