CodeSOD: アップサートしてみな ノート

CodeSOD: アップサートしてみな

あるプログラマーが、.NET Framework から .NET Core への移行プロジェクトからのコードスニペットを共有しました。そのコードは、Customer オブジェクトを処理するアクションメソッドを持つ CustomerController を特徴としています。 メソッド内では、条件文が customer.someProperty をチェックし、どのオーバーロードされた UpsertSomething メソッドを呼び出すかを決定しています。 UpsertSomething メソッドは、非常に長いパラメータリストで呼び出され、その多くが null またはデフォルトのブール値です。 著者は、UpsertSomething への2つの呼び出しがほとんど同じであり、1つのブールパラメータだけが異なることを指摘しています。 これは、if/else 文が不要であったことを示唆しています。 代わりに、customer.someProperty の値を単一の UpsertSomething 呼び出しへの引数として直接渡すことができたはずです。 著者は、これを理想的とは言えないコーディングプラクティスの好例として強調しています。 提供されたスニペットは、移行中に遭遇したより広範なコードベースを代表しています。 この投稿は、よりシンプルな設計選択によって、コードの複雑さを避けることができる場合がある例として役立っています。