The Daily WTF 日本語
フォロー
CodeSOD: パラメータの配列
提供されたコードスニペットは、複数のパラメータをメソッドに渡すためにArrayListを使用するという問題のあるコーディングプラクティスを示しています。メソッドは、ArrayListに特定のデータ型と値が事前に決められた順序で含まれていることを期待しています。このアプローチは、コンパイル時の型チェックを犠牲にして、実行時エラーの可能性を生じさせます。この設計の根拠は、メソッドのシグネチャを変更することなく、将来のデータベースの変更に対応できるようにすることでした。しかし、これは、より安全で保守性の高いソリューションを提供するオプション引数のような標準的な言語機能を迂回するものです。開発者は、このようにArrayListを渡すことでコードがより柔軟になると誤解していました。パラメータバッグとしてのArrayListの使用というこのパターンは、コードベース全体で広く見られます。オプション引数という代替手段があれば、コンパイル時の安全性とより明確な意図を提供できたでしょう。現在の実装は、データの順序と型に関する暗黙の仮定に依存しており、脆いコードにつながっています。このプラクティスは、ソフトウェア開発におけるアンチパターンと見なされています。