「実践Firestore」という本を読んだ。
結論からいうと、神本だった。
書評
思ったこと箇条書き。
どんな本か
- Firestoreを中心に、Firebaseをざっくり学べる本
読者想定
- たぶん「WEBエンジニア経験1年以上あります。RDSを使ったWEB開発はしたことあるけどNoSQLは全然知りません」みたいな人向け。
- 初心者とかエンジニアなりたての人にはキツそう
読むのにかかった時間
- 8時間くらいかも
よかった点
- Firebaseを使った開発の流れを学べた
- 読む前は「NoSQL?よくわからんけどJSONを直接突っ込めるんでしょ?」くらいの認識しかなかったけど、以下などを学ぶことができた
- NoSQLとは何なのか
- どういう風にデータモデリングすればいいのか
- セキュリティルールの書き方
- Cloud FunctionやAuthticationとの連携方法
- トランザクション
- オフラインの場合はどのように動作するのか
- 読む前は「NoSQL?よくわからんけどJSONを直接突っ込めるんでしょ?」くらいの認識しかなかったけど、以下などを学ぶことができた
- ソースコードがすべてTypeScriptで書かれていた
思った点
- Firestoreの本だけど、ほかのNoSQLを使った開発(たとえばLambda+DynamoDB)でも活かせる知識な気がした
- データモデリングの考え方が一番参考になった感ある
- たとえばRDSだと「ユーザーテーブルにis_deletedカラムを作って、このカラムがtrueだと退会済みユーザーだとする」みたいな感じで運用することがあると思うけど、NoSQLの場合はそのようなことはせずに、ドキュメント自体を「退会済みユーザ」と「通常ユーザー」に分ける。
- 要するにフィールド(RDSでいうところのカラム)はなるべく追加すべきではないという考え方。
- あと「どういうときに非正規化して、どういう場合に正規化するのか」みたいなのもかなり参考になった
- ちゃんとしたものを作ろうとすると、Cloud Functionはほぼ必須みたいな感じなのだなって思った。
- 「リストとかマップのセキュリティルールは厳密に書けない」らしいので、その場合はCloud Functionを使う必要があるらしい。ほかにも分かりやすさを重視するためにクライアント側から更新せずに、クライアントの更新をフックにしてCloud Functionを起動する・・・みたいなのもやるといいらしい。
- でも、Cloud Functionを使うと有料プランにしないといけないし、有料プランにすると無料枠の配分が月割じゃなくて日割になるっぽいのもかなり微妙。あと単純に有料プランにすると課金の恐怖が常にあるのがイヤかも。
- セキュリティルールを書くの面倒くさいなって思った
- でも試しにChatGPTに投げたら一気にいい感じのルールをバババーーーって作ってくれたので、そこまで大変じゃないかも。
悪かった点
強いていうなら以下。
- サンプルコードがすべて古いバージョンの書き方(version8)で書かれていた
おわり
コメント