Oh my Buddha!!

主にWeb界隈のえんじにありんぐ的なことについて

表参道.rb で、技術書典5で出す本の宣伝と Firebase について話してきました!

speakerdeck.com

発表した資料です。

どんなイベントだった?

表参道.rb というイベントで、今回は技術書典がテーマだったのですが、Ruby じゃなくても、全然OKな雰囲気の会でした!

omotesandorb.connpass.com

ちなみに、今回の会場が、僕の前職の会社でして、しかも参加者の中には、僕を含めて、他にも元社員の人が3人いました。

(そのうち一人は、僕が、新卒1年目に同じチームで働いていた1つ上の新卒2年目の先輩で、懐かしみが深かったです。久しぶりに会えてとても楽しかった)

ちょっとしたOB会です😅

LTで話し足りなかったこと

LTでは、Firebase を使ってみた感想をざっくり話したのですが、その中で、

Firestore は、NoSQLデータベースであるため、JOINは使えず、RDBと同じようなDB設計ができない

と言っていたので、この点について、このブログ記事でもう少し補足してみようかと思います。

Firestore におけるDB設計

DB設計について考える場合、そもそもFirestoreのようなドキュメント指向のNoSQLデータベースではどんなDB設計をするべきなのか、いろいろと情報を漁ってみました。

以下は、いろいろ調べた中で、個人的に参考になった記事です。

NoSQLデータモデリング技法

NoSQLデータモデリング技法 · GitHub

参考になった点

  • Firestore に限定されず、NoSQLデータベースとしてのプラクティスが網羅されている
  • いきなり具体例ではなく、概念から解説してから、具体的な技法について解説している
  • RDBでは、基本的には、正規化を徹底するが、NoSQLデータベースでは、非正規化を許容する、むしろ活かす

Firestore Database Design

speakerdeck.com

参考になった点

  • Firestore にフォーカスしている
  • Firestore の基本的なデータモデルの概念であるコレクションとドキュメント・サブコレクションについて、図だけで十分伝わる
  • Firestore を使った場合の開発の特徴(Client Side Join) についての言及している
  • リレーションを Firestore ではどのように表現するか具体的なクエリ共に解説されている
  • セキュリティルールについて取り上げている
  • データの冗長化について取り上げている

Cloud Firestoreの勘所 パート2 — データ設計

medium.com

参考になった点

  • ブログサービスというかなり具体的な例を用いて、設計について解説しているのが超絶わかりやすかった
  • 上2つの記事を読んで、事前情報を知った上で、再度読むとより理解が深まった

Get to know Cloud Firestore

www.youtube.com

最後にFirebase公式のYouTubeチャンネルです。

参考になった点

  • 安定安心の公式の情報源というだけでなく、RDBと比較して、Firestore の解説をしている
  • 全て英語ですが、字幕もあり、動画内で説明用に出る図もわかりやすい

※ 全然話が関係ないのですが、動画で話している人が、ドラマMr. Robot の主人公の親父役の俳優にそっくりだと思うのは僕だけでしょうか?

https://cdn-ak.f.st-hatena.com/images/fotolife/A/Annice/20170722/20170722081449.jpg

おまけ

同サークルのメンバーが、イケてるおしながきを作ってくれたので、ちょっと宣伝✨

Firebase や Flutter に興味がある人はぜひ立ち寄ってみて下さ〜い☺️

https://techbookfest.org/event/tbf05/circle/47080001

f:id:wakuwakuozisan:20181005014238p:plain