
AIが書いたコードを本番に出す前に見る3点
※この記事は AI を仕事で使い始める人向けのロードマップです。順番に読むと、何から手を付けるかが決まります。
動くことと安全なことは別
僕が書かせた予約システムは約3,400行あって、今も1か月半、本番で動いている。出す前に自分で全部読み直して、3つの問題を見つけた。AIが書いたコードは画面の上では普通に動いて見える。でも、動いて見えることと、安全に動くことは別の話。普通に使うだけなら、問題は何も起きない。壊れるのは、いつもと違う操作をされたときだと分かった。普段の動作確認だけでは、この違いに気づけない。見た目が同じでも、裏側の作りはAIに任せたままなら自分の理解が追いついていないことが多い。だからこそ、出す前に自分の目で読み直す時間を取っている。読み直す時間は、作る時間に比べれば短い。短い時間でも、本番で起きる前に見つけられるなら十分に価値がある。
見つけた3つの問題
読み直して見つかったのは、普段は起きない状況で起きる問題だった。設定が無いときに使われる予備の鍵、2人が同時に来たときの取り合い、メール送信が失敗したときの扱い。原因はこの3点。どれも、1日目には出てこない種類の問題だった。設定が無いときの予備の鍵は、本番の設定を入れ忘れた瞬間に、誰にも気づかれず動いてしまう種類の問題。2人が同時に来たときの取り合いは、人数が少ない間は絶対に出てこない。メール送信の失敗は、通知が来ないこと自体に気づかなければ、ずっと隠れたままになる。
見るところ → 問題 → 直し方
設定なし → 予備鍵が使われる → 消して止める
どれも、無理に作って初めて見えた話。設定を消して動かしてみる、画面を2つ開いて同時に押してみる。実際に手を動かして、やっと見つかった。読むだけでは気づけなかったと思う。設定が無い状態を自分で作って動かしたとき、本来は止まるはずの場面でそのまま進んでしまった。そこで初めて、予備の鍵が残っていることに気づいた。同時に押す確認も同じで、画面を2つ並べて自分で両方を操作しないと、取り合いの様子は見えてこない。
見る順番は3つ
本番に出す前に、僕が実際にやっているのはこの3つだ。読む範囲を先に決めてから、順番に進める。順番を飛ばして試すと、どこで見つけた問題か後で分からなくなる。
全部を自分で読む: 3,400行あっても、分岐のある場所だけは目で追う。読まずに出さない。読む速さより、分岐を見落とさないことの方が大事。「もし」で始まる条件文は、全部1度は目で追う。そこに、普段は通らない道が隠れていることが多い。読む順番は、頭から全部でなくていい。入口と出口、分かれ道の形が分かれば十分。
無いときどうなるかを考える: 設定が無い、ネットが止まる、という状況をわざと作って動かす。普段は起きないことを、わざと起こしてみる。設定ファイルを一時的に別名にして動かすだけで、無いときの挙動はすぐに確認できる。確認して何も止まらなければ、そこが直すべき場所。止まらないことに安心するのではなく、止まらない理由を疑う。その疑いが、予備の鍵のような問題を見つける入口になる。
同時に来る状況を作る: 自分で2つのタブを同時に開き、同じ予約を同時に押してみる。1人で試せば十分で、誰かに頼む必要は無い。2つの画面で同じ操作を同時に押すだけで、取り合いが起きるかどうかはすぐに分かる。起きたら、先に来た1件だけ通す処理を入れる。
この3つを通すだけで、見えてくるのはほとんどの問題。全部を潰せるとは思わないが、少なくとも分かっている範囲は増える。分かっている範囲が増えれば、何かが起きたときの当たりをつけやすくなる。当たりがつけば、直すまでの時間も短くなる。本番に出した後も、この3つは定期的にやり直している。作った直後と、半年使った後では、見えるものが違う。使う人数や使い方が増えれば、同じコードでも抱える危うさが変わってくる。
次にやること
見る3点は同じでも、見るたびに新しい発見がある。次は#30で、作った道具が壊れたときに、どの順番で聞けばいいかを話す。