CodeSOD: 必須フィールド ノート

CodeSOD: 必須フィールド

別のシステムに接続するには、認証情報による認証が必要です。Lisaが引き継いだconnect関数は、認証情報の要件を強制することを意図していますが、デフォルトのパラメータ値を誤って使用しています。これにより、関数は最終的に例外をスローするにもかかわらず、引数なしで呼び出すことが可能になります。主な問題は、誤解を招くデフォルト値だけでなく、それが生み出すデバッグの悪夢にあります。ユーザー名が省略された場合、例外は正しく「username is required」と表示されます。しかし、パスワードが省略された場合、同じ誤解を招くエラーメッセージ「username is required」が表示されます。これは事実上正しいですが、実際の問題であるパスワードの欠落に対処していません。この欠陥のあるエラーメッセージは、「間違っているどころか間違っている」という概念の例です。エラーメッセージは技術的には正しいですが、ユーザーの特定の問題を診断するには全く役に立ちません。より正確なエラーメッセージは、どの認証情報が欠落しているかを明確に示します。この設計上の選択は、効果的なデバッグとユーザーエクスペリエンスを著しく妨げます。