🕌
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