マジサバ試験サイトの技術スタックを整理する
マジサバ試験サイトの技術スタックを整理する
なお,サイトの規模感や開発速度,保守性,学習の先を考慮して選択されている
Pythonと迷ったが,近い将来に高速なバックエンドを実装することを考えると,こちらの方が利点がありそう
型チェックがTSより厳密で,バグを未然に防止
メモリ効率がよく,実行時間も早い. 最低限のリソースで動かしたいファンメイドサイトに適している
学習が楽なのもある
保守性も魅力
シングルバイナリで,必要なファイルが一つにまとめられる
デプロイ時に環境依存の問題が生じない
バックエンド: Go (Echo)
フロントエンド:
Templ: HTMLレンダリング
htmx: 画面遷移なしでのデータ送信(解答の自動保存など)
Reactなどは使わず,学習コストを下げながら非同期通信などを実現
Alpine.js: クライアント側のインタラクション(マークシートの即時塗りつぶし、タイマー)
Tailwind CSS: 「共通テスト風」UIの構築
データベース: SQLite (将来的にPostgreSQLへ移行検討)
インフラ/デプロイ: MVP段階では未定(Goのバイナリが動く環境)
,Fly.io,Render,Raillwayなどが考えられる