NullPointerException

2024-07-18 日本語 /posts/2024/2024-07-18-toggle-switches.jpg

立て続けに新店オープンを控える大事なタイミングで、珍しいエラーが発生して朝からバタバタとしておりました(ようやくちょっと落ち着いたかな?)。

10年くらい運用しているデータベースのある列の値が NULL (空)になってしまい、数値があることを期待した処理がエラーになり、後続の処理もバタバタと連鎖してエラーになって…とドミノ倒し的にトラブルが発生してしまいました。テーブルの設計時に NOT NULL 制約をつけておけば簡単に回避できた事象なんですが、相手にしているデータがしっかりしていて油断しているとこういうことが起きてしまいます(現に、10年近く完璧なデータが届き続けていて、私の知る限り初めての破損です)。

NetflixのChaos Monkeyなんかが有名で、もう逆説的とも言えないのかもしれないですが、ある程度いい加減なデータを受け取っているシステムの方が、堅牢なシステムに仕上がります。なまじ行儀の良いシステムばかり相手にしてると、ちょっとしたイレギュラーが大きなトラブルに直結してしまうことがあります。

人間の体や、人間同士の関係性にも当てはまると思ってて、ぱっと見効率が悪かったり、いい加減だったりする方が、意外と長期のスパンでパフォーマンスがよかったり、打たれ強かったりするなと、経験的に感じています。

写真は全然関係なくて、週末のワークショップで利用するトグルスイッチ。どんな出会いがあるのか楽しみです。

或る月曜日
Ruby Association Activity Report