Webフレームワーク
Web Framework
Web アプリケーションを作るための標準的機能(または標準的作成方法)の提供
標準的機能とは?
(各種部品を組み合わせることもあるので、全部が1つに収まっているわけではない)
(いくつかの物は、類似、重複、関連する機能がある。)
(順不同)
古いブラウザに対する対応
受信の待ち受け(HTTP/HTTPS)
URLの解析
HTTPヘッダの解析
受信したコンテンツデータの解析
URLによるルーティング(どの機能・情報が呼ばれるべきか?)
入力検証
データへのアクセス
環境変数
メモリアクセス
ファイルアクセス
データベースアクセス
ORマッパー
別の Web などへのアクセス(WebAPI)
何らかのデータアクセスAPIの呼び出し
外部機能(外部プログラム)の呼び出し
データ編集
HTML文書の組み立て
HTTPヘッダの組み立て
コンテンツデータの送信
リソースの同期
認証
認可承認
エラーハンドリング
ログ出力(ログ管理)
キャッシュ機能
追加機能管理(プラグイン管理)
ID の生成
トークンの生成
Cookie の管理
セッション管理(元々 HTTP 自体にはセッション機能がないのでアプリケーションが管理する必要がある)
多言語対応
テンプレート機能(文書内埋め込み変数、埋め込み計算、埋め込みプログラム)
バージョン管理
バージョンアップ(アップグレード)、バージョンダウン(ダウングレード)
バックアップ、リストア
ビルドシステム
最新のECMAScript、TypeScript、 AltCSSへの対応
バンドル化
Minify
テスト用簡易サーバー
ソース変更の即時反映
テスト
デプロイ(発行、配置)
サービス検索
データのアップロード
データのダウンロード
最近は、ゴテゴテと機能を付けるよりは、コア部分を最小にして、設計規約で縛る方法の方が多い。
必要最小限の機能に絞ることで、パフォーマンスが上がる。フットプリントが小さくなる。
必要な機能を追加することで実際のアプリケーションに適合させる。
機能はプラグインで継ぎ足す方法が最近は主流。
Node.js
Vue.js
React
AngularJS
Java, Scala
Play Framework
PHP
Laravel
CakePHP
Ruby
Ruby on Rails
Python
Django
Flask
ノートの結合を検討