仕事でNext.jsを使うようになったのですが、いまいちよくわからない。
そこで今回以下の書籍でNext.jsを勉強しました。
1章では「Next.jsとTypeScriptによるモダン開発」という題ですが、
Next.jsだけでなく、フロントエンド開発の今までの流れも説明してくれて
最近いきなりnext.jsを使いだした私にとってはうれしい出だし。
概要を知ることができました。
最後には、TypeScriptやReact Next.jsの基礎を学んだあと、実際の開発環境構築や、最終的には簡易ECサイトを作ってデプロイするところまで面倒見てくれています。
普通に個人で勉強する分には、十分すぎる内容です。
ただ
どうもすっきりしません。
なんでかなーと思って自分の心の中を整理してみました。
懸念点について
リリースがVercel利用前提
VercelはNext.jsの開発元が公開するホスティングサービスで
CI/CDもサポートしてGithubとも連携して至れり尽くせりの機能なのですが、、、
商用利用では有償サポートに入らないといけません。
もともと、Javaで開発だと今まで通りだよね。Next.jsで新しい環境にチャレンジしたいねと
いうことで始めたため、Vercelの利用料金まで開発時に含めていませんでした。
商用利用なんだから、契約しちゃえばいいじゃん。
とお思いの方も多いと思いますが、1人当たり20ドル/月。
開発期間中は開発メンバー全員入れて、保守に入ったら減らすか、、、?
それともVercel使わずなんとかできるものか?
としらべていたら、もうすでに実践している人が
特に移行編がすばらしい、Vercelから移行するために、以下の機能を自前で用意しないといけない、ということでまとめてもらっています。
Vercelからの移行を完了させるには最低でも以下の機能の代替を探す必要がありました。
デプロイ環境
実行環境
CDN
環境変数・機密情報の管理
確かにどれも重要で、開発期間が短かったり、対応できる人員が少なかったりすると
1人当たり20ドル、、、2000円?でこれを準備できるとすると、、、、格安か。
一人雇うと、1カ月当たり、、、70万とかかかるから。
でもな、、、
それでも自前でやりたいな、、、
他に様々なデプロイ方法・環境がある模様
Amazon S3とCloudFront
Netlify S3
AWS Amplify
serverless-next.js
App Runner
だめだ、、、どれいいかわからない。。。
サーバ側がJSON Server前提
今利用しようとしている外部APIが、POSTしたら普通にパラメータがレスポンスで返却されるシステムなので、JSONではありません。。。
すべて今風の環境で想定されているため、この書籍ではJSON Serverを使用されていますが、私の今回の環境には合わなかった。。。
CSR SSR SSG どれを使うべき?
「3.7 Next.js のレンダリング手法」というところで、
SSG CSR SSR ISR の4つを説明してくれています。
図もありとても分かりやすい。
例も紹介されており、通常の開発ではこの説明だけで事足りそう。
でも、今回の私のシステムでは、どれを使うべきかが確定できない、、、
これは知識不足によるものなのですが、、、、
最初APIから取得すればもう変わることがないもの→SSG
毎回最新とってこないとだめなやつ→SSR
となると、ISRは?
毎回ってほどじゃないど、時々最新化しないといけないもの→ISR
・・・そんなのあるか?
ECの購入者数とか、他の人のお気に入り数とか、わりと最新情報でなくてもよいものとかかな、、、
バリデーションが大変そう
6.5.5 テキストエリア TextArea でバリデーションを行っているのですが、最小行数の定義に8行使っていました。
他のチェックも必要なので、あっというまにソースコード1画面を超えてしまいそう。
Spring Bootだったら、、、
@NotBlank
@Length(max=32)
private String aame;
でアノテーションでサクッとできるけど、、、
これはこういうものなのか、、、、