2024年5月4日土曜日

next.js はなぜ機能が充実してないのでしょうか?例えばLaravelだとバリデーション機能が元からありますが、next.jsだと後からライブラリを追加しないといけません。

LINK

https://jp.quora.com/next-js-%E3%81%AF%E3%81%AA%E3%81%9C%E6%A9%9F%E8%83%BD%E3%81%8C%E5%85%85%E5%AE%9F%E3%81%97%E3%81%A6%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B-%E4%BE%8B%E3%81%88%E3%81%B0Laravel%E3%81%A0?topAns=1477743736209239 

色んな観点がありますが、バックエンドとフロントエンドの2つの特性の違いが理由として考えられます。

1つは、バリデーションの重要性です。

バックエンドでは不正なデータが入ってはいけないので、バリデーションは必須要件です。

一方でフロントエンドのバリデーションは必須要件ではなく付加価値です。クライアントで検証してエラーを出せれば、無駄にサーバに負荷をかけずに済み、利用者にとっても使いやすいです。

もう1つは、バンドルサイズの重要性です。

バックエンドではサイズが問題になることは少ないです。数百MBのコンテナイメージを使うことも普通です。サイズの小ささは付加価値です。

一方でフロントエンドではバンドルサイズを気にします。プラットフォームによっては制限があったり、制限はなくてもサイズが大きいと初期ロードが遅くなります。必須要件と言ってもいいでしょう。

まとめるとこんな感じです。

  • バックエンドではバリデーションは必須要件、サイズの小ささは付加価値
  • フロントエンドではサイズの小ささは必須要件、バリデーションは付加価値

そうすると必然的に、バックエンドではバリデーションは組み込み、フロントエンドではオプションになります。

とは言えまだ過渡期だからというのもあるかもしれません。Next.jsだとフロントエンドとバックエンドの境目が曖昧になってきているので、バリデーションがないと危ない感じがします。

0 コメント:

コメントを投稿