発達障害みたいなバグを量産してしまってチームからの目が痛い。
正直これはPythonのせいだ。
例えば
if is_checked:
この構文、”False"という文字列ではTrueになってしまう。想定外にオブジェクトが入ってしまっても普通にTrueになってしまう。想定外のNoneが来てしまうとFalseになって開発中はなかなか気付かないなんてこともある。基本的にifの後は if hoge == True: と書くべきだと思ってる。linterで怒られることもあるが、それよりもバグに気付けない方が怖い。
if "1" == 1:
これはfalseだけど、これが変数で来てたりすると全然気付かない。
for i in user_list:
こんな構文でuser_listにはリストが来ることを期待していたのに文字列を入れてしまうことがある。
そうなるともうぐちゃぐちゃ。
user_list += user_id
これはuser_idが ["hogehoge"]ならうまくいって"hogehoge"なら["h", "o", "g", "e", ...]が追加されることになる。
これも気付きにくい。
いずれも開発段階では気付かないことが多い。テスト段階になったり、テストないような突貫工事体制だとリリース直前の動作確認で気付いたりする。
リストを入れるつもりだったのに文字列を入れてしまったりbooleanを入れるつもりだったのに文字列が入れられるからこんなことになる。性的型付けしか受け付けたくない。
確かにみづらすぎワロタ ありがとう参考になりました