最先端の迷走
今年完成を目標としている新サイト制作プロジェクトが前途多難であることは
ブログで何度も言及していますが、ちょっとかなりの方向転換を余儀なくされつつあります。
というのも、去年1年間で迷いに迷って「Laravel+Nuxt3の疎結合」という答えを出し、
年初からさっそく具体的な開発に動き出しているのですが……。
Laravelはともかく、Nuxt.jsがあまりにも足元の危うい感じが否めないため
さすがにちょっと他のフレームワークにいまからでも乗り換えようかと考えています。
Next.jsはフロントエンドフレームワーク「Vue.js」をさらに包括するフレームワーク。
バージョン3は去年の12月に安定版がリリースされたばかりという最新鋭の開発環境です。
しかし、あまりにも新しすぎて情報が少なすぎるんですよね。
少ないならまだマシで、散々探して「無い」という結論に至ることもあるから困ったもの。
たとえば今日なんかはログイン機能を作ろうと思っていろいろ調べていました。
Nuxt.jsには「Nuxt-Auth」という認証機能プラグインが公式に存在するのですが、
これはどうやらバージョン3には未対応らしい。
サードパーティで比較的早く対応しているプラグインもあるものの、それはLaravel非対応。
藁をすがる気持ちで探しに探した結果Githubでわずか10いいねのリポジトリを発見するも、
マニュアルが簡潔すぎて大事なことが書かれていないため実装ができないという……。
Nuxt.jsはバージョン3で後方互換性をかなり切り捨てているため、
それ以前の知見があまり役に立ちません。これが情報収集の難易度を上げています。
さらに公式マニュアルも発展途上なので、
つい最近まで正しい書き方だったのがいつの間にか通用しなくなっていることもザラ。
つまり、情報収集が難しい上に最新情報を探し当てないと正確な開発ができないと。
しかもそれら情報源はほぼほぼ英語です。
英語をスラスラ読める人ならともかく、自分のように翻訳ソフト頼みの場合はさらにキツいです。
いままでは、それでも自分の情報収集能力の低さが原因なんだろうと食いついてきましたが、
ログイン周りの仕様の揺れ具合やプラグイン未対応の惨状でさすがに諦めつつあります。
情報収集の難易度を考えると、
フレームワーク選定は単に新しければ新しいほど良いというわけではなく、
むしろ適度に枯れた技術の方が知見が溜まっていて開発しやすいんでしょうね。
さて、仮にNuxt3から撤退するとなった場合に考えられる選択肢は4つ。
①Nuxt2で開発する、②React/Next.jsで開発する、③フロントはノンフレームワークで開発する、
④それ以外のフレームワークを探す、のいずれかになります。
①は将来性という観点からあまり望ましくないものの、今日まで頑張ってきた経験値を活かせます。
②はまあ安牌かなという感じ。ただ習得難易度は高く、こっちもNuxtと同じでない保証はありません。
その代わり習得すればこれだけでネイティブアプリも作れるので可能性の大きさはダントツです。
③は要するにLaravelのblade機能をフロントの代わりに使うということになります。
ただHTMLベースだとサイトで動的なコンテンツを作りたい場合に障壁になる可能性があります。
④は、突拍子もない候補として「jQueryを使う」という案がなくも無いです。
散々jQueryはオワコンと言われてきたわけですが、逆にここまで枯れていれば情報収集は簡単。
いままでもそれなりに触ってきたので技術的ハードルも低く、
これまでに悩まされてきた未知の技術との戦いが無くなる安心感は正直あります。
ただ、今回みたいなログイン機能をjQuery単独でサクッと実装できるのかと言われると……。
というわけでどれも一長一短で非常に悩ましいです。また振り出しからか……。
まあ、強いて言えばVue.js系列がダメということを身をもって知ったわけですから、
薄々これが最適解だろうと思っていたReactに手を出してみるのが無難なような気がします。
もはや習得難易度よりも情報収集が可能かどうかの方が大事ということが明らかになったわけで。
その観点で言えばリリースされて半月しか経っていないNuxt3よりは
さすがにハードルは若干下がるのではないでしょうか。触ってみないとわからないけど。
今月上旬はなんだかんだでコードとそれなりに格闘してきましたが、
その結果が「Nuxt3は自分には無理かも」ということがわかっただけというのはなんとも世知辛い。
さすがにコードの書き方など多少は共通部分もあり、
試行錯誤はまったくの無駄ではなかったと思いたいところですが……。
ともあれ、前途多難ながら開発は少しずつ進んでいます。