こんにちは!合同会社BitLaboの楠原です。
生成AIと最新Laravel、そして自動テストを組み合わせた「モダンなWEBシステム開発」のリアルに迫る連載の第2回目。
前回の「要件定義フェーズ」では、社内の泥臭い例外ルールを人間が丁寧に引き算しながら整理することの重要性を語りました。
▼第1回をまだ読んでいない方はこちら
エクセル管理の限界を感じたら。中小企業が「独自のWEB予約・決済システム」をスクラッチで組むべき理由
「何を作るか(要件)」がガチッと固まったら、次に行うのが【設計フェーズ(データベース設計)】です。
家づくりで言えば、間取りを決めた後に「基礎工事の図面」を引く段階ですね。今回は、このDB設計におけるAIの使い方と、20年の現場経験を持つプロが絶対に譲らない「設計思想」の裏側をぶっちゃけます。
■ AIは「きれいなテーブルの素案」を作る天才である
データベースの設計では、「ユーザー情報」「予約情報」「店舗情報」など、どんなデータをどういう形で保存するか(テーブル構造)を決め、それらを線で結びつけていきます(リレーション)。
実は、この「基本構造 of 書き出し」において、AIは驚異的なパワーを発揮します。
例えば、AIに「Laravelで、複数店舗対応の予約システムのマイグレーション(テーブル定義)を書いて」とプロンプトを投げると、1秒で完璧なLaravelの文法に則ったコードを吐き出してくれます。
カラム(項目)の命名規則もきれいで、外部キー制約なども一瞬でセットしてくれる。
正直、この「ボイラープレート(定型コード)を打つ作業」は、人間が手動でやるよりAIの方が圧倒的に早くて正確です。BitLaboでも、ここは大いにAIに頼っています。
しかし、AIが作った図面を「そのまま」採用すると、数年後に間違いなくシステムが崩壊します。
■ なぜ、AIにDB設計を100%委ねると5年後に泣くのか?
理由はシンプルです。
AIは「今の仕様」しか見えないけれど、人間のプロは「5年後の変化」が見えるからです。
DB設計において、私が絶対にAI任せにしないプロのこだわりは以下の2つです。
1. 将来の「業務の拡張」を予測した『余白』の設計
システムは、会社が成長するにつれて必ず「機能を追加したい」という要望が出てきます。
・「最初は一回限りの予約だけだったが、定期サブスク予約も始めたい」
・「特定の優良顧客だけ、別の特別割引料金を適用できるようにしたい」
AIは、最初に指示された要件だけで「最も効率の良いDB」を作ります。しかし、そこに将来サブスク機能を追加しようとすると、テーブルの構造を根本からひっくり返す大工事(改修費が数百万円レベル)が必要になってしまうことがよくあります。
私は20年の経験から、「このビジネスモデルなら、将来こういう展開があり得るな」という予測を立て、あらかじめテーブル同士を切り離し、将来の改修コストを10分の1に抑えるための『設計の余白』を仕込みます。これは、今ある情報だけで最適化するAIには絶対にできない職人技です。
2. Laravelの「Eloquent」を暴走させない、パフォーマンス設計
Laravelには、データベースを直感的に扱える「Eloquent(エボリューション)」という超強力なリレーション機能が備わっています。
これが便利すぎるがゆえに、AIに任せきりで設計すると、裏側で「N+1問題」と呼ばれる、データベースに数万回も無駄なアクセスを繰り返す激重システムが完成してしまいます。テスト環境(データが数件)では爆速で動いていたのに、本番運用が始まってデータが溜まった瞬間に画面が真っ白になる、というのはWEB開発あるあるです。
「どこにインデックス(索引)を貼るべきか」
「どの中間テーブルにデータを持たせるのが最適か」
最新のLaravel環境の特性を100%引き出し、数万件のデータが動いても「0.1秒でサクサク動く」ように裏側でチューニングを施すのは、今でも人間のエンジニアの重要な仕事です。
■ BitLabo流・DB設計のベストプラクティス
BitLaboでは、DB設計を以下のように役割分担して進めています。
AI의役割: テーブル構造の初期アイデア出し、マイグレーションコードの爆速生成
人間の役割: 将来の拡張性の予測、インデックス設計、パフォーマンスチューニング、最終構造の決定
AIにアイデアの壁打ち相手になってもらいながら、私、楠原の頭脳で「強固で美しいデータベース」へと仕上げる。これによって、圧倒的なスピードと、大企業の基幹システムにも負けない堅牢性を両立させています。
■ 次回予告:いよいよコードを書く「実装」へ!
強固な土台(データベース)が完成したら、いよいよ実際にプログラムを書いていくフェーズに移ります。
次回は、【第3回:実装スピード3倍の真実。AIを「最強の副操縦士」にしてLaravelのコードを爆速量産する現場実況】をお届けします。
AIにどの部分のコードを書かせ、人間はどこに集中するのか。BitLaboの「爆速スクラッチ開発」の心臓部を公開しますので、お楽しみに!
「今使っているシステムが重くて困っている」「将来を見越したシステムを作りたい」というご相談も、随時受け付けています。まずは気軽にお問い合わせフォームから声をかけてください!
