2024-04-05

発達障害Pythonに向いてない

Pythonに型がないせいで気付きにくいバグがある。

発達障害みたいなバグを量産してしまってチームからの目が痛い。

正直これは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を入れるつもりだったのに文字列が入れられるからこんなことになる。性的型付けしか受け付けたくない。

Pythonは中規模以上の開発で使うべきじゃない。発達障害Pythonは向いてない。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん