Rails/React/MySQL経験者向けのNext.js/Prisma/PostgreSQL完全学習ガイド
このリポジトリは、Rails開発経験者がNext.js、Prisma、PostgreSQLの技術スタックをマスターするための包括的な学習リソースです。各トピックはRailsの概念と比較しながら解説されており、スムーズな移行を支援します。
- Rails、React、MySQLの開発経験がある方
- Next.js App Router、Prisma、PostgreSQLを学習したい方
- モダンなフルスタックWeb開発を習得したい方
-
- Rails MVC vs Next.js App Router
- ルーティングシステムの違い
- レンダリング戦略の比較
-
- 基本的なCRUD操作
- リレーション定義
- マイグレーション管理
-
- Rails Controller vs Next.js API Routes
- RESTful API設計
- エラーハンドリング
-
- スキーマ定義の違い
- PostgreSQL特有の機能
- マイグレーション戦略
-
- Devise vs NextAuth
- Pundit vs CASL
- セッション管理
-
- サーバーコンポーネントでの認証
- クライアントコンポーネントでの認証
- 認証フローパターン
-
- 必須テーブルの詳細
- Deviseとの比較
- カスタマイズ方法
-
- Sidekiq/Whenever vs Next.js
- スケジュールジョブ実装
- バックグラウンド処理
-
- バッチコマンドの作成方法
- ECSでの実行パターン
- エラーハンドリング
-
- RESTful API設計
- 認証・レート制限
- Webhook実装
- ECSデプロイメント
- Dockerコンテナ化
- ECSタスク定義
- CI/CDパイプライン
-
- レンダリング戦略
- データフェッチング
- パフォーマンス最適化
-
- 静的生成の仕組み
- 動的ルートの事前生成
- ISRとの組み合わせ
-
- トランザクション分離レベル
- MySQL vs PostgreSQLの違い
- バッチ処理パターン
-
- 並列処理のパフォーマンス
- 使い分けの指針
- エラーハンドリング
-
- メモリキャッシュの仕組み
- サーバーレス環境での制限
- 代替ソリューション
-
- グローバルキャッシュの危険性
- 安全なキー設計
- 事故防止パターン
-
- Rails風URLヘルパー実装
- 型安全なルーティング
- SWRとの統合
-
- 大規模アプリケーション構造
- DDD/Vertical Slice Architecture
- スケーリング戦略
-
- Rails Puma vs Next.js Node.js
- ワーカープロセスとスレッドモデル
- 本番環境のスケーリング戦略
- 実践プロジェクト
- タスク管理SaaSの実装
- 全機能の統合実装
- ベストプラクティス適用
-
基礎理解(2-3時間)
- アーキテクチャ比較(01)
- ORM比較(02)
- API開発パターン(03)
-
実装パターン習得(2-3時間)
- 認証・認可(05, 18, 20)
- サーバー/クライアントコンポーネント(09)
- ディレクトリ構造(19)
-
高度な機能(2-3時間)
- トランザクション(11)
- バッチ処理(06, 14)
- デプロイメント(08)
-
実践演習(3-4時間)
- 実践プロジェクト(10)
- 各機能の統合実装
-
ルーティング
- Rails:
routes.rbで一元管理 - Next.js: ファイルシステムベース
- Rails:
-
ORM
- ActiveRecord: 規約重視、マジックメソッド多数
- Prisma: 型安全、明示的な定義
-
認証
- Devise: フル機能の認証システム
- NextAuth: OAuth中心、カスタマイズ前提
-
デプロイ
- Rails: Capistrano、Heroku
- Next.js: Vercel、AWS ECS、Docker
# Node.js 18以上が必要
node --version
# プロジェクト作成
npx create-next-app@latest my-app --typescript --tailwind --app
# Prisma セットアップ
npm install prisma @prisma/client
npx prisma init
# NextAuth セットアップ
npm install next-auth @auth/prisma-adapter
# 開発サーバー起動
npm run dev| ファイル | 内容 | 学習時間目安 |
|---|---|---|
| 01_architecture_comparison.md | アーキテクチャの基本比較 | 30分 |
| 02_activerecord_vs_prisma.md | ORM詳細比較と実装例 | 45分 |
| 03_api_development_patterns.md | API設計パターン | 30分 |
| 04_database_migration.md | DB設計とマイグレーション | 30分 |
| 05_authentication_authorization.md | 認証認可の実装 | 45分 |
| 06_batch_processing.md | バッチ処理パターン | 30分 |
| 07_external_api_provision.md | 外部API提供方法 | 30分 |
| 08_ecs_deployment.md | ECSデプロイ詳細 | 45分 |
| 09_server_client_components_detail.md | コンポーネント詳解 | 45分 |
| 10_practice_project.md | 実践プロジェクト | 3時間 |
| 11_prisma_transaction_detail.md | トランザクション詳解 | 30分 |
| 12_promise_all_vs_sequential.md | 非同期処理パターン | 20分 |
| 13_lru_cache_storage.md | キャッシュ管理 | 20分 |
| 14_cli_commands_for_batch.md | CLIバッチコマンド | 30分 |
| 15_generateStaticParams_detail.md | 静的生成詳解 | 30分 |
| 16_nextjs_route_helpers.md | ルートヘルパー実装 | 30分 |
| 17_swr_cache_safety.md | SWRキャッシュ安全性 | 30分 |
| 18_client_server_auth.md | 認証パターン詳解 | 30分 |
| 19_nextjs_directory_structure.md | ディレクトリ設計 | 30分 |
| 20_nextauth_table_structure.md | NextAuthテーブル構造 | 30分 |
| 21_nextjs_web_server_architecture.md | Webサーバーアーキテクチャ | 45分 |
このガイドは継続的に改善されています。以下の方法で貢献できます:
- 誤字脱字の修正
- より良い説明の提案
- 新しいトピックの追加
- サンプルコードの改善
MIT License
Rails開発者コミュニティとNext.js開発者コミュニティの皆様に感謝します。