🕌

Webアプリケーションフレームワーク調査時の観点整理

2023/08/21に公開

目的

新しい言語や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連携

まとめ

手軽に必要な機能を網羅するための観点を整理しました。
これらを確認するためのサンプルアプリケーションの要件もまとめようと思います。

GitHubで編集を提案

Discussion