👻
バグらないコードを書かせる技術 in AI駆動開発
AI駆動開発の肝と阻害要因
LLMによるコード生成の肝は速さです。それが故にたくさん書いてたくさん捨てることができます。この特性を最大限活用するには、機能の追加時と削除時にバグを起こさないようにする必要があります。
これを妨げる支配的な場面は、「大きなコードブロックを丸々置き換える」場面です。
対策
これを防ぐために、私は2つのことを意識しています。
1つは、plugableな設計を意識することです。
plugableとは簡単に差し替え・拡張可能なコードを指します。ユーザというインターフェイスさえ守っていれば、ログインユーザをログアウトユーザに転用できるような場合、plugableです。
簡単に置換できることは、LLMによるコード全体の書き換えが発生しづらいことを意味します。
もう1つはコンポーザビリティです。
小さな部品がお互いを必要とせず、独立して動くアプリケーションはコンポーザビリティを有すると言えます。責務が明確でお互いに疎結合であれば、部品となるモジュールを追加・削除する際に変更位置は明確であり小さくなるはずです。
上記2つを達成できれば、開放閉鎖の原則というものに則った形になるはずです。
開放閉鎖の原則とは、「モジュールは既存のコードを変更せず新しい機能を追加できるようにすべきである」という考え方であり、「大きなコードブロックを丸々置き換える」ことを防ぐためにまさに達成したかったことです。
まとめ
LLMにバグらないコードを書かせるためには開放閉鎖の原則に従うことが重要であり、plugableな設計とコンポーザビリティを意識することが重要という話でした。
Discussion