CodeSOD: Build Up

SQLクエリの文字列連結は、問題の一般的な原因です。著者は、生のSQL文字列の代わりにSQLビルダーAPIを使用することを提唱しています。このビルダーは、必要に応じてSQLにレンダリングできる構文ツリーを構築し、直接的な文字列操作の問題を回避します。ORMも選択肢ですが、著者はそれらをリーキーアブストラクションと見なしています。チームはJavaを使用しており、SQL文字列ではなくビルダーを使用するというルールに従っていました。しかし、構築にStringBuilderを使用しており、これは技術的にはビルダーの定義に適合します。このStringBuilderアプローチは、単なる追加手順を伴う文字列連結に過ぎませんでした。例のコードは、クエリを作成するために使用されたStringBuilderを示していますが、生成されたSQL文字列は、意図された目的に対して根本的に不正確で不完全でした。この壊れたコードが即座に検出されずに本番環境で実行されたという事実は、重大な懸念事項です。エラーが静かに無視されたか、または欠陥のある出力が警告を発するほど重要ではなかったことを示唆しています。著者はこれを「WTF」の瞬間として強調し、堅牢なエラー処理または検証の欠如を強調しています。