【雑談】boolean事故

これは職業プログラマでの話なのですが、Androidのアプリの案件でソースコードはJavaで書いていました。真偽値はJavaではbooleanなのでタイトルがそんな感じになっています。で、事故なんですが・・・まあ、想像はつくと思います。大した話ではないのですが。。。 そのAndroidアプリのテストを行っていたときです。比較的リリースも近い大詰めの時期でした。どうもアプリの挙動が正しくない動きをしていたんですね。ちょっとした表示制御の部分だったので、誰もそのおかしさに気が付かなかったんですね。で、ソースコードを眺めて見たんです。が、しかし、パット見なんか良さそうに見えるんですよね〜〜。おかしいなーって思って、よくよく見てみると・・・なんと、booleanが事故ってたんですよ。真偽がひっくり返っていました。残念です。通常Javaの場合って、booleanは「isXXX」のように表現するじゃないですか。例えば、今日が日曜日かどうかの判定をする際は、「isSunday」って変数名や、メソッド名にしますよね。で、isなんちゃらって聞き方したら、基本なんちゃらですか?って、聞くイメージですよね。「isSunday」の場合、真(true)なら日曜日、偽(false)なら日曜日以外、となると思います。ソースコードなら以下の様な感じ。

if (this.isSunday()) {
    // 日曜日だぜ
}

ところが、その事故ってたソースコードはそれが反対になっていたんですよ。「isXXX」と聞いているのに、そっちの分岐にXXXじゃない方のロジックが書かれていたんです。なんとまあ・・・。で、そのbooleanを参照しているロジックを書いている人が複数人いたのですが、反対になっていたのは特定の人でした。勘違いしたんでしょうかね。。。それともそもそも間違って覚えている? まあ、ソースコードのレビューしたの僕なんですけどね・・・ザルじゃんザル。レビューワーとしての能力がバレたところで今日はおしまいにします。では。
この前の事故はこちら

関連記事

【雑談】SpotifyのSDK

【雑談】コロリ

【雑談】プログラミング用フォント

【雑談】今年も終わり

【雑談】VPNの接続設定・・・続き

【雑談】このところ