AIは、私のコーディングのクセまで真似てくれる
NGWを開発して10年。命名規則も書き方も、私という一人の書き手の流儀でできている。新しく足すロジックを、AIはその流儀そっくりに書いてくれる。均質さは、そのまま読みやすさになる。
10年ぶんの流儀
NGW を開発して、かれこれ10年になる。10年もあれば、プログラムの書き方にも変数の命名規則にも、それなりの歴史が積もる。誰かの教科書どおりというより、私という一人の書き手が手を動かし続けてきた結果としての流儀だ。良い意味でも悪い意味でも、癖がある。
コードの一貫性は、機能そのものと同じくらい保守性に効く。同じ考え方、同じ名付け、同じ構造で書かれていれば、初めて見る箇所でも「たぶんこうなっているはず」と予測が立つ。逆に、途中からスタイルがばらけると、読むたびに頭を切り替えねばならず、それだけで疲れる。10年ものコードベースを一人で保ってこられたのは、この一貫性のおかげでもある。
私のクセごと、真似てくれる
AI と協働していて驚いたのは、ここだった。新しく追加するロジックを、私の書き方にそっくりに書いてくれるのだ。
種明かしをすれば、難しいことをしているわけではない。AI は周囲の既存コードを読み、その命名の付け方、関数の切り方、条件の並べ方——つまり私の流儀を汲み取って、それに合わせて新しいコードを書く。見本がすぐ隣にあるのだから、と言えばそれまでだが、実際にやられると効き目は大きい。追加された行が、まるで数年前の自分が書いたかのように馴染んでいる。
これが嬉しいのは、先のことを考えるからだ。この先、私がずっと自分でメンテナンスするのかは分からない。それでも、コードを読むことはきっとあるだろう。そのとき、とても読みやすいのである。なんせ、私のコーディングのクセまで真似てくれるのだから。統一感が壊れない。均質さは、そのまま読みやすさになる。
もっとも、これは諸刃でもある。良いクセも悪いクセも一緒に継がれる。だからこそ、直すべき癖は自分が先に直しておく必要がある——見本が自分である以上、手本の質がそのまま伝播するのだ。
ソースを指さして指示する
やり取りの仕方も、思ったより泥臭くて具体的だ。ときにはブラウザのソースコード表示を見ながら指示することもある。実際の修正箇所を目で確かめ、「この xxxx 行目の xx を nn にして」と、ピンポイントで直接伝える。
抽象的に「あの機能をこう変えて」と頼むより、現物の一点を指さして言うほうが、行き違いが少ない。曖昧な注文が曖昧な結果を生むのは以前書いたとおりで、場所と変更内容を具体で示せるなら、そのほうが速いし確実だ。道具が賢くなっても、指示は具体的なほど良い。この原則は変わらない。
均質さを、壊さずに進む
10年かけて保ってきたコードの一貫性を、新しい手が入るたびに少しずつ崩していく——それが、これまで「人を増やす」ことの隠れた代償だった。AI が既存の流儀を汲んでくれることで、その代償を払わずに前へ進める。一人の書き手が書いたような均質さを保ったまま、書く速度だけが上がる。
コードは、書く時間より読む時間のほうがずっと長い。だから、読みやすさに効くものは何であれ価値がある。自分のクセを継いでくれる相棒は、その意味で、想像以上にありがたい。