1 min read

見た目の秩序と内側の混沌

Table of Contents

GitHub Copilot とともに進めるフルスタック開発

現在、クライアントから依頼を受けた Web サービスを一からフルスタックで開発しています。メインの開発支援として GitHub Copilot を活用しており、ユーザー管理やログイン機能など、当初の見積もりでは約10人日(1人日=8時間)を想定していたものが、実際には2.5人日ほどで実装できました。

Figma でデザインした UI を Copilot に読み込ませると、指定したフレームワーク(今回は Next.js + shadcn + Tailwind CSS)に沿って、高精度でコンポーネントを生成してくれます。ボタン押下時の onClickイベントなど、通信処理についてはスタブ化され、「ここに実装を追加する」といったコメントも添えられており、理解がしやすいです。

バックエンドについても、私は AWS を利用しているため、Cognito や SDK を利用した認証処理も Copilot に依頼して作ってもらえます。さらに、インフラ構築には AWS CDK を用いており、こちらも指示すればコードを提案してくれるので、ゼロから形を作る工程が非常に楽になりました。

Copilot が作ってくれた「1」の状態を理解し、「1」から「10」へと拡張していく段階では、私自身がしっかりと関与していきます。これは、まさに AI と人間の共同作業といえるでしょう。


未知を既知にひっくり返すということ

私は AI 登場以前からシステムエンジニアとして仕事をしてきました。何かを実装する際には、以下のような順序で知識やコードを得てきました:

  • 既存のコードベースを調査し、使えそうなものを探す
  • 見つからなければ Web 検索で情報を収集する
  • 最後に公式ドキュメントを参照する

AI の登場により、こうしたステップは圧倒的に短縮されました。しかし注意が必要なのは、AI が出力したコードの中には、私にとって“未知”の要素が多く含まれていることです。そのまま受け入れてしまえば、理解できていない領域が積み重なり、いずれは自分でも把握できないプロダクトができてしまいます。

こうした“未知”は、ひとつひとつ丁寧に“既知”へとひっくり返していく必要があります。具体的には、疑問点を AI に再質問したり、サンドボックス環境で実際に動かしてみたりすることです。


見た目の秩序と内側の混沌

たとえば、AI が生成するコードはオセロの盤面のようなものです。黒い石に囲まれた白い石が多く、ぱっと見には整って見える。しかし、それが自分の手で裏返したものではない限り、本当に“白”とは言えないのです。自分で理解してこそ、それは秩序のある世界になります。

ソフトウェアは、開発者にとって秩序であるべきです。たとえユーザーには見えない内部構造であっても、その秩序がなければ機能追加や修正は困難になります。AI が作った秩序は見かけ上は整っていますが、それは他人が整えたものであり、自分にとっては依然として未知です。

だからこそ、自らの手で未知を既知に変えていく作業を怠らないようにしたいと思います。