可能性、2人以上のチーム 開発するか、型の恩恵が どれだけ有用か… フレームワーク ①React ②Vue.js ③その他 ④未使用(Pure JS, バニラJS) アプリ規模、SPA/MPA、 既存アプリへの導入か… JS実行環境 ①Node.js が基本 ②Deno を試す Denoを選ぶと他の要素 が諸々揃ったり プロジェクト作成支援(ボ イラープレート) ①CRAやVue CLIを ②慣れてる人が手動で ①を選ぶと他の要素が 諸々揃ったり トランスコンパイラ ①他の選択肢で揃ったり ②新技術を導入 (esbuild, SWCとか) モジュールバンドラー ①他の選択肢で揃ったり (Webpackが有名) ②新技術を導入 (Turbopackとか) ビルドツール類 ①他の選択肢で揃ったり ②新技術を導入 Viteが知られる フォーマッター、リンター ①他の選択肢で揃ったり ②個別に導入 Prettier, ESLintがデ ファクト。別途CI/CDの 仕組みを工夫したり テストのサポート ①他の選択肢で揃ったり ②個別に導入 ユニットテストはJestが デファクト。結合テスト、 e2eテストでも 色々。規模による 開発言語 ①JS/TSで揃える ②他の言語にする APIの通信先は複数もok ・クラウド フロント/バックを分業す るか、技術要素、チームメ ンバのスキル構成…など で分岐 JS/TSで行くならフレームワーク選択 ①ミニマムにexpress ②フルスタックにNext.js (Vue.jsならNuxt.js) ③その他を試す アプリを構成する技術要素、規模、プロ ジェクトの周辺状況…で分岐。 JS実行環境はフロントと普通合わせる APIの受け口を他の言語で開発 ①インタプリタ型: Python, Ruby, PHP ②コンパイル型: Go, Rust, Kotlin, Java, C#... それぞれの言語圏でのFW、ライブラリを選定。大体API対応 APIの受け口をクラウドに ①AWS: API Gateway+Lambda ②Azure: (API Management)+Azure Functions サーバーレスアーキテクチャが可能。仮想マシン、コンテナの手も こっちも やるよ 選択肢が多く互いに関連、かつ 増減や流行り廃りがあるのが 初学者の混乱の元にも