toshiki

理解していないAI製コードをどう出荷するか

· Hacker News #130

AIが書いた中身まで分からないコードを本番に出す不安に、HNのエンジニアが答えた。骨組みは人が決め、検証に投資し、変更を小さく保つのが共通解。

  • #ai
  • #llm
  • #code-review
  • #testing
  • #software-design

#なぜ今日これを選んだか

自分もアプリの多くをAIと一緒に書いている。速く作れる一方で、「動いているが細部は説明できない」コードが増えていく怖さがある。HNで同じ悩みを持つ現役エンジニアたちが、実際にどう扱っているかを具体的に語っていたので、エンジニアとしての地力を落とさない使い方を確かめたくて選んだ。

#要点

  • 構造(責務・インターフェース・抽象)は人が決め、AIには中身の実装だけを任せる。AIに設計まで任せると抽象が弱くなる
  • 生成の前に計画と設計メモを書き、検証(自動テスト・E2E・段階的リリース)に投資する。ただしAIが書いたテストは甘くなりがちなので、それ自体も疑う
  • 変更は数ファイルに絞って小さく出す。AIにコードの仕組みを説明させるのは理解の助けになるが、自分で書いた理解より早く忘れる

#自分にとっての示唆

Rustとハードウェアでエンジニアとして一段上がる(#130)には、AIに書かせた量より「自分が説明できる範囲」を広げることが大事だと感じた。可動域アプリは姿勢推定や角度計算など、数字の正しさが命になる部分が多い。明日からは、AIに頼む前に関数の入出力と責務を自分で1行書き、出てきたコードには角度計算のテストを1本だけ自分の手で足す。速さは保ちつつ、中身を説明できるコードを少しずつ増やしていく。