概要
- コーディングの主な目的は 最適な問題解決
- 開発速度 と アプリケーション速度 を重視した選択
- Phoenix LiveView が一体型ソリューションとして最適
- バックグラウンドジョブやリアルタイム通信の 容易な実装
- 学び続ける姿勢 の重要性を強調
なぜコーディングするのか、そしてPhoenix LiveViewの選択理由
- コーディングの本質は 最適な方法で問題を解決すること
- 最も重視するのは アプリの速度 と 開発スピード
- ReactやNext.js+Laravel、Inertia.js+Laravelの場合、 フロントエンドとバックエンドの両方を管理 する必要
- ソロ開発者として 状態管理の二重化 に割ける時間の不足
- 一体型で全てを処理できる堅実なモノリシック構成 を求めた経緯
- Laravel LivewireやRails Hotwireも検討。 JavaScript依存を減らしてフロントエンド開発を簡素化 できるツール
- Next.jsによる フルJavaScript構成 も検討したが、 バックエンドでのJS利用に抵抗感
- Rails Hotwireは MVP開発の速さ が魅力
- しかし バックグラウンドジョブ や リアルタイム更新、 双方向通信 の実装には追加作業が必要
ElixirとPhoenixの魅力
- ElixirとPhoenixは Ruby on Railsの優雅さ と 圧倒的なパフォーマンス を両立
- Obanによるバックグラウンドジョブ が標準搭載
- 分かりやすくクリーンな構文
- LiveView は従来のサーバーレンダリングとフロントエンド重視型フレームワークの 絶妙なバランス
- LiveViewは WebSocket通信 でリアルタイム双方向更新を実現
- 必要に応じて Alpine.jsなどのJavaScriptライブラリも活用可能
- Phoenixは Obanによるジョブ管理 が容易。失敗しても 自動再起動 でアプリの安定性維持
- Elixirは Erlangベースのコンパイル言語。WhatsAppやDiscordのような 高い同時接続性 を実現
Phoenix LiveViewを選んだ決め手
- 高速な開発 が可能
- 高い同時接続性 への対応力
- ほぼ一つの言語で全て完結
- クリーンで読みやすいコード の実現
- コンパイラが本番前にバグを検出
- フォールトトレラントな設計 でダウンしにくいアプリ
他フレームワークとの比較と結論
- Phoenixが Laravel、Rails、Next.jsより優れている とは断言しない
- いずれも 優秀なフレームワーク であり、実際にアプリ構築経験あり
- 自分のユースケースにはPhoenixが最適解
- プロジェクト: Hyperzoned.com
新しい選択肢を探ることの重要性
- 既知の技術だけに頼らず、新たな選択肢を探求 する姿勢
- より効率的な問題解決法 の発見につながる可能性
- 学び続けることの大切さ を強調
連絡先
- Xまたは Hyperzoned.com で連絡可能