バイブコーディング実践編 — Claude Code を中心に AIで安全に作る力Capstone — 小規模Webアプリ完走

Capstone — scaffold + minimal happy path

読了目安 6

学習のねらい

これまでの章で学んだ知識を統合し、Capston プロジェクトの最初のステップとして、アプリケーションの基本的な骨格 (scaffold) を構築します。 このレッスンでは、最小限の機能 (happy path、正常系の一連の流れ) をエンドツーエンドで動作させることを目指します。 AI を活用しながら、フロントエンド (Next.js) とバックエンド (FastAPI) を連携させ、デプロイ可能な形まで持っていく一連の流れを体験することで、大規模な開発の土台を築くスキルを養います。

最小動作の確保 (Minimal Happy Path)

「Minimal Happy Path」とは、アプリケーションの最も基本的な機能が、エラーなく一通り動作する状態を指します。 例えば、TODO リストアプリであれば、「タスクを追加し、それが一覧に表示される」という一連の流れがこれにあたります。

この段階で重要なのは、複雑な機能やエラーハンドリングに時間をかけず、まず「全体がつながって動く」ことを確認することです。 これにより、フロントエンドとバックエンドの連携、データベース接続、基本的な UI の表示といった、システムの基盤部分の問題を早期に発見・修正できます。

PR 分割戦略

AI は一度に多くの変更を生成しがちですが、それをそのまま大きな PR (Pull Request) として出すと、レビューが困難になります。 効果的な開発のためには、PR を小さな単位に分割する戦略が重要です。

例えば、以下のように分割できます。

  1. 環境構築・プロジェクトのひな形: Next.jsFastAPI のプロジェクトをそれぞれ作成し、最小限の構成 (package.json, requirements.txt, .env.example, .gitignore) を整える。
  2. データベース接続とデータモデル: FastAPI 側でデータベース接続 (例: SQLite) を設定し、データモデル (例: Todo モデル) を定義する。マイグレーションも含む。
  3. バックエンド API の実装: FastAPI で、タスクの追加・取得といった基本的な CRUD (Create, Read, Update, Delete) API エンドポイントを実装する。
  4. フロントエンド UI の実装: Next.js で、タスク一覧表示、タスク追加フォームなどの UI コンポーネントを作成する。
  5. フロントエンドとバックエンドの連携: Next.js から FastAPI の API を呼び出し、データを取得・送信して UI に反映させる。

このように PR を分割することで、各変更の粒度が小さくなり、レビューしやすくなるだけでなく、問題発生時の原因特定も容易になります。

Feature Flag (機能フラグ)

「Feature Flag (機能フラグ)」は、特定の機能をコードから完全に削除することなく、有効/無効を切り替えられる仕組みです。 開発中の機能や、まだリリースしたくない機能を本番環境にデプロイする際などに役立ちます。

例えば、環境変数や設定ファイルを使って ENABLE_NEW_FEATURE=true/false のように設定し、コード内でその値に応じて処理を分岐させます。

# FastAPI の場合
from fastapi import FastAPI
import os

app = FastAPI()
ENABLE_NEW_FEATURE = os.getenv("ENABLE_NEW_FEATURE", "false").lower() == "true"

@app.get("/items/")
async def read_items():
    if ENABLE_NEW_FEATURE:
        return {"message": "New feature is enabled!"}
    return {"message": "Old feature is active."}

Capston プロジェクトでは、大規模な機能フラグの導入は必須ではありませんが、「将来的に機能を切り替えたい」というニーズが出てきた際に、このような考え方があることを知っておくと役立ちます。

まとめ

Capston プロジェクトの最初のステップとして、Next.js と FastAPI を用いたアプリケーションの scaffold を構築し、minimal happy path をエンドツーエンドで動作させることを目指しましょう。 PR を小さな単位に分割する戦略と、feature flag の概念を理解することで、より効率的で安全な開発を進められます。

参考リンク


Capstone — scaffold + minimal happy path | バイブコーディング実践編 - AI研修