失敗は捨てないほうがいい、って話なんすよ
いや、これがですね。最近Arduinoのセンサーデータ処理をPythonで書いてて、気づいたことがあって。
コードが動かないとき、みんなどうしてますか?
print()でその場だけ確認して、直ったら消す、みたいなことやってないですか?
それ、めちゃくちゃもったいないと思うんです。
—
ログに残すと何が変わるか
具体的にいうと、こういう書き方なんすよ。
`python
import logging
logging.basicConfig(
filename=”debug.log”,
level=logging.DEBUG,
format=”%(asctime)s [%(levelname)s] %(message)s”
)
def divide(a, b):
logging.debug(f”divide呼び出し: a={a}, b={b}”)
if b == 0:
logging.error(“ゼロ除算を検出”)
return None
result = a / b
logging.info(f”結果: {result}”)
return result
divide(10, 2)
divide(5, 0)
`
実行するとファイルに全部残るんですよ。
DEBUG・INFO・ERRORでレベル分けできるのが地味にすごくて。
—
「痕跡」から原因がわかる
ログファイルを見返すと、どの順番で何が起きたかが時系列で確認できるんすよね。
- どこで値がおかしくなったか
- 何回目の試行でエラーが出たか
- 正常なときと異常なときの違いは何か
これって、実験ノートと同じ文脈だと思ってて。スペースLABOで観察記録をつけるのと、本質的には変わらないじゃないですか?
—
失敗ログは宝物だと思ってる
print()消したら失敗の事実も消えるんすよ。
でもログなら残る。
次また同じ問題にぶつかったとき、過去の自分が未来の自分を助けてくれるんですよね。
これがマジですごくて、デバッグって完成に近づく作業じゃなくて、問題を理解していく作業なんだと思うようになったんすよ。
途中の失敗に価値があるって、こういうことなんじゃないかな、と思うんですけど。
→ プロフィール / 他チャネルを見る


コメント