私はまともな大規模なプロジェクトのリファクタリングに取り組んでおり、より良い標準化と開発の容易さのためにコードクローンを検索して削減することに興味があります。
「完全一致」で表示され続けるコードスニペットがあります(Visual Studio 2012の「コードクローンの検索」機能を使用)。
ここにあります:
End If
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Using
End Using
Return Nothing
基本的に、私には似たような機能がたくさんあります(構造は似ていますが、実際の機能は似ていません)。これらはすべて次のようなもので開きます。
Const sql As String = ...
Using cn As SqlConnection...
Using cmd As SqlCommand(sql,cn)
... Maybe add some SqlParameters
cn.Open()
... Something with cmd.Execute...
今、私は最初のコードブロックが多くの多くのメソッドで同一であることを認識していますが、そのコードを引き出し、一度記述して、その機能が必要になるたびに呼び出す方法を見つけることができません。制御フローが多すぎるように思われます。
そのため、これを修正する方法に困惑しています(Microsoftが「クローンコード」として識別したため、これを「修正」できると想定しているだけです)。
私は、同じタイプのこと(テーブルからカウントを返す、最上位の値を返すなど)を実行し、SQLによってのみ実際に異なる少数の関数を作成するという方針に沿って何かを考えています。実行されます。ただし、パラメータ(タイプと数)が異なる場合があるため、これは少し注意が必要です。
何かご意見は?