🕌
Webアプリケーションフレームワーク調査時の観点整理
目的
新しい言語やWebアプリケーションフレームワークを使い始める前に、学習と周辺ライブラリの調査も兼ねて簡易なWebアプリケーションを作成することがあると思います。
その際に私自身が確認する観点をまとめました。
1-2日程度でアプリケーション作成できる観点に留めています。
確認ポイント
Basic
アプリケーションフレームワークのチュートリアルでも紹介されるような基礎的な機能の使い方の確認。
| カテゴリー | 確認項目 | 備考・補足 |
|---|---|---|
| RDB | トランザクション | |
| RDB | N+1 | |
| RDB | マイグレーション | |
| RDB | DB接続 | |
| View | HTMLテンプレート | |
| Ops | 環境切り替え | |
| Ops | Lint | |
| Model | バリデーション | |
| Model | 静的ファイルのアップロード | |
| Test | UnitTest | |
| Req/Res | ルーティング | |
| Req/Res | セッション管理 | |
| Req/Res | CRUD | |
| セキュリティ | CSRF | 対策の仕方の確認 |
| セキュリティ | XSS | 対策の仕方の確認 |
| セキュリティ | 暗号化・ハッシュ化 | API提供方法と利用方法の確認 |
Applied
実践で必要になる機能の確認
| カテゴリー | 確認項目 | 備考・補足 |
|---|---|---|
| Req/Res | JSON API | JSON生成方法などの確認。 |
| Req/Res | APIドキュメント生成、OpenAPI連携、APIバリデーション | |
| Req/Res | WebSocket | |
| Model | HTTPクライアント | 使い方の確認。HTTPクライアントのオプションなどの確認 |
| Model | Redisクライアント | 使い方の確認 |
| Model | JobQueueを用いた非同期処理 | 使い方の確認 |
| Model | メーラー | メールテンプレートの保存方法や呼び出し方の確認 |
| Model | i18n | テキストの保存方法とリクエスト時の切り替え方法などの確認 |
| Model | Time/Date | 生成方法、比較方法の確認 |
| Ops | Logger | リクエスト周りのmiddlewareの挿入方法を含めた確認 |
| Ops | バッチ処理 | バッチ処理の書き方と起動方法 |
| Ops | WebServerの並列 | Webサーバーのプロセス、スレッドなどのモデルについて確認する |
| Ops | スケーラビリティ | WebServer以外のワーカーについて上記観点で確認する |
| Ops | コネクションプール | DB、Web、Redisなどの各外部サービスのプールの設定方法とプールからのコネクション取得方法を確認する |
| DB | ロック | ORMの悲観、楽観ロックの提供の仕方を確認する |
Optional
必須ではないけど、要求次第では必要になる機能の確認
| カテゴリー | 確認項目 | 備考・補足 |
|---|---|---|
| Model | S3 | 特に静的ファイルをアップロードするときの設定、DBへのメタデータの保存方法などを確認する。 |
| Model | SNS/SQS | Pub/Subの実装が容易にできるかを確認 |
| Model | 認可 | |
| Model | GraphQL | |
| Req/Res | gRPC | |
| Ops | 環境構築、Docker | |
| Ops | CI/CD | |
| Ops | エラー管理、APM連携 |
まとめ
手軽に必要な機能を網羅するための観点を整理しました。
これらを確認するためのサンプルアプリケーションの要件もまとめようと思います。
Discussion