開発日記8日目:バックエンド技術選定完了!Node.js(Express)とMongoDBに決定!🌟
群馬県民がもっと地元イベントを楽しめるように!イベント発見アプリを個人開発している🐮です!
今日は開発8日目。バックエンド開発に必要な技術の選定を行い、ついにNode.js(Express)とMongoDBを選ぶことにしました!技術の海を泳ぎ回り、ようやくたどり着いたこの選択にワクワクしています!✨
🌟 今日のハイライト
- ✅ バックエンドフレームワークにNode.jsを選定!
- ✅ データベースにMongoDBを採用決定!
- ✅ 各技術のメリット・デメリットを徹底比較!
🛠 今日の作業内容
1. バックエンド技術の候補を比較検討
まずは、以下の技術を候補に挙げ、それぞれの特徴をじっくりと分析しました。
🔹 Node.js(Express)
-
メリット
- JavaScriptで統一:フロントエンドと同じ言語で開発可能
- 非同期I/Oで高いパフォーマンス
- 豊富なライブラリと巨大なコミュニティ
-
デメリット
- 単一スレッドのため、CPU負荷の高い処理には不向き
- コールバック地獄の可能性(最近はasync/awaitで解決)
🔸 Django(Python)
-
メリット
- 堅実なフレームワーク:セキュリティや管理画面が充実
- バッテリー同梱哲学で必要な機能が統合
- オブジェクト指向でコードが整理しやすい
-
デメリット
- フロントエンドと異なる言語での開発
- 学習コストと開発効率の懸念
🔺 Firebase(BaaS)
-
メリット
- サーバーレスで迅速な開発が可能
- 認証やリアルタイムデータベースなどの豊富な機能
- スケーラビリティが高く、インフラ管理不要
-
デメリット
- ベンダーロックインのリスク
- カスタマイズ性や複雑なビジネスロジックの実装に制約
2. Node.js(Express)とMongoDBを選定!
数々の検討を経て、最終的にNode.js(Express)をバックエンドフレームワークに、データベースにはMongoDBを採用することに決めました!🎉
選定理由
- 言語の統一感:フロントエンドとバックエンドをJavaScript(TypeScript)で統一することで、開発効率が向上。
- 学習コストの低減:新たな言語を学ぶ時間を削減し、開発に集中できる。
- 柔軟性と拡張性:Expressのシンプルさから、必要な機能を自由に組み込める。
- MongoDBのドキュメント指向:イベント情報などの多様なデータ構造を柔軟に扱える。
3. 各技術のメリット・デメリット比較での学び
技術選定の過程で、それぞれの技術の強みと弱みを深く理解することができました。
-
Node.js(Express)+MongoDB
- メリット:開発効率、スケーラビリティ、NoSQLの柔軟性
- デメリット:データの整合性管理の難しさ
-
Django(Python)+PostgreSQL
- メリット:堅牢な構造、豊富な機能、データ整合性
- デメリット:開発効率、言語の違いからくる学習コスト
-
Firebase
- メリット:迅速な開発、インフラ管理不要
- デメリット:カスタマイズ性の制限、ベンダーロックイン
📊 プロジェクト進捗状況
フェーズ | 進捗率 | 主要成果物 |
---|---|---|
要件定義 | 100% | ユーザーストーリーマップ |
UI/UX設計 | 90% | デザインシステムガイドライン |
フロントエンド技術選定 | 100% | 技術選定レポート |
バックエンド技術選定 | 100% | 技術選定レポート |
開発環境構築 | 20% | 開発ツールリスト、初期プロジェクト構成 |
💡 今日の気づきと学び
成功した点
- 言語統一による開発効率の向上:JavaScriptで統一することで、頭の切り替えがスムーズに。
- コミュニティの力を実感:情報が豊富で、問題解決が迅速に行える安心感。
改善が必要な点
- データベース設計の深掘り:MongoDBの特性を活かしたデータ設計をさらに学ぶ必要がある。
- セキュリティ面の強化:Non-blocking I/Oのメリットを活かしつつ、セキュリティリスクを最小限に。
🚀 次回予告:開発環境の構築と初期設定!
次回は、選定した技術を基に開発環境の構築とプロジェクトの初期設定を行います!
- Node.jsとExpressのセットアップ
- MongoDBのローカル環境構築
- TypeScriptの導入とlint設定
これから本格的に開発が始まると思うと、胸が高鳴ります!🔥
✨ 今日のひとこと
群馬の皆さんに役立つアプリを目指して、明日も全力で頑張ります!皆さんの応援が本当に励みになっています。コメントやいいね、お待ちしています!😊
最後までお読みいただきありがとうございます!
引き続き応援よろしくお願いします!では、また明日〜!👋