新しいシステムを設計するとき、または他の人のコードを理解するときに、設計段階で何かが間違っていることを示す兆候にはどのようなものがありますか? 特にプロジェクトの初期段階で、クラス図や継承階層、あるいはコード自体に、設計の全面的な見直しが必要であることを示す手がかりはありますか?
ベストアンサー1
私にとって最も印象に残っているのは、「コードの臭い「」。
私は大抵の場合、「良い習慣」に反する事柄に対して敏感です。
たとえば、次のようなものです。
名前から想像する以外のことを実行するメソッド (例: 0 バイトのファイルを黙って削除する FileExists())
いくつかの非常に長いメソッド(プロシージャを囲むオブジェクト ラッパーの兆候)
同じ列挙メンバーに対する switch/case ステートメントの繰り返し使用 (抽出が必要なサブクラスの兆候)
状態をキャプチャするためではなく、処理のために使用されるメンバー変数が多数あります (メソッド オブジェクトを抽出する必要があることを示している可能性があります)
多くの責任を持つクラス(単一責任原則の違反)
メンバー アクセスの長いチェーン (this.that は問題ありません。this.that.theOther も問題ありませんが、結果に対するメンバー アクセスの非常に長いチェーンは脆弱です)
クラスの命名が不適切
狭いスペースにデザインパターンを多用しすぎる
頑張りすぎ(フレームワーク内または同じプロジェクト内の他の場所にすでに存在する関数の書き換え)
スペルミス(どこでも)や文法ミス(コメント)または誤解を招くようなコメント