【メモ】【Firebase】自分宛のFirebaseについてのメモ

はじめに

Firebaseを触っているが、Firebaseとアプリケーション、Google Cloudとの関係がいまいち理解できていなかったので、公式のドキュメントを読みながらメモを残していく。

firebase.google.com

Firebase プロジェクト、アプリ、プロダクトの関係

以下、公式ドキュメントのFirebaseプロジェクトの説明。

Firebase プロジェクトは Firebase の最上位のエンティティです。プロジェクトでは、Apple アプリ、Android アプリ、ウェブアプリを登録できます。Firebase にアプリを登録すると、アナリティクス、Cloud Firestore、Performance Monitoring、Remote Config などの Firebase プロダクト用の Firebase SDK をいくつでも追加できます。

もう少し読み進めると、Firebaseのプロジェクト階層は以下のように定義されていると書かれている。 - Firebaseプロジェクトには1つ以上のアプリを登録できる。 - Firebaseプロジェクトは、すべてのアプリと、そのプロジェクトようにプロビジョニングされたリソースとサービスを格納したコンテナのようなものとなっている。 - 同じFirebaseプロジェクトに登録されているすべてのFirebaseアプリ同士はFirebaseプロジェクトのリソースを共有する。

FirebaseプロジェクトとGoogle Cloudの関係について

Firebaseプロジェクトは、Firebase固有の構成とサービスが有効になっている Google Cloudプロジェクトとなっている。

実際にFirebaseプロジェクトを作成した後、対応するGoogle Cloudコンソールのプロジェクトのラベルページに飛んでみると以下のように「firebase」という名前のラベルの値がenabledになっていることが分かる(=Firebase固有の構成とサービスが有効になっている )。

【メモ】【読書】Clean Architecture 達人に学ぶソフトウェアの構造と設計 第Ⅳ部 第14章(続き)

はじめに

前回の続き

huji-mori.hatenablog.com

第Ⅳ部

第14章 コンポーネントの結合

安定依存の原則(SDP)

→安定度の高い方向に依存すること

→変更を想定したコンポーネントは、変更しづらいコンポーネントから依存されてはいけない

眠いのでここまで。

以上。

【メモ】【読書】Clean Architecture 達人に学ぶソフトウェアの構造と設計 第Ⅳ部 第14章

はじめに

前回の続き

huji-mori.hatenablog.com

第Ⅳ部

第14章 コンポーネントの結合

非循環依存関係の原則(ADP)

コンポーネントの依存グラフに循環依存があってはいけない

→循環依存は依存関係逆転の原則(DIP)をコンポーネントに適用すれば解消できる

コンポーネントの依存構造をクラス設計の前の段階で決めるのは困難

→依存構造はシステムの論理設計に合わせて変更していくべき

14章は他の章より少し長いので、続きは明日に。

以上。

【メモ】【読書】Clean Architecture 達人に学ぶソフトウェアの構造と設計 第Ⅳ部 第13章

はじめに

前回の続き

huji-mori.hatenablog.com

第Ⅳ部

第13章 コンポーネントの凝集性

コンポーネント凝集性には以下の原則がある。

  • 再利用・リリース等価の原則(REP)

→再利用の単位とリリースの単位は等価になる

→一つのコンポーネントを形成するクラスやモジュールは同じタイミングでまとめてリリース可能でなければならない

  • 閉鎖性共通の原則(CCP)

→同じタイミング、同じ理由で変更されるものはひとまとめにする

→そうでなければ、別々のものに分ける

→この原則は単一責任の原則(SRP)の定義をクラスからコンポーネント用に置き換えたもの

  • 全再利用の原則(CRP

→不要なものには依存しないこと

→この原則はインターフェース分離(ISP)の原則を一般化したもの

REP、CCP、CRPはプロジェクトの状況によってどこに比重を置くか都度検討する必要がある。

以上。

【メモ】【読書】Clean Architecture 達人に学ぶソフトウェアの構造と設計 第Ⅳ部 第12章

はじめに

前回の続き

【メモ】【読書】Clean Architecture 達人に学ぶソフトウェアの構造と設計 第Ⅲ部 第11章 - ふじもりの忘備録

第Ⅳ部

第12章 コンポーネント

コンポーネント →デプロイの単位を指す

12章はコンポーネント登場の歴史についての解説だった。 取り立ててこの章でメモしておくことはあまりないかな...

以上。

【メモ】【読書】Clean Architecture 達人に学ぶソフトウェアの構造と設計 第Ⅲ部 第11章

はじめに

前回の続き

huji-mori.hatenablog.com

第Ⅲ部

第11章 DIP:依存関係逆転の原則(DIPDependency Inversion Principle)

依存関係逆転の原則 →ソースコードは具象ではなく抽象だけに依存すべき →ソースコードから具象を完全に排除するのは現実的ではない →なので、変化しやすいものに対しては依存しないよう気を付ける

Javaのstringパッケージのように変化が少ないものがソースコードに具象として残る分には良い。 問題なのは変化しやすいモジュールに対して依存してしまうことで、そのモジュールの実装が変更した時に依存している側にも変更の影響が波及してしまうこと。

以上。

【メモ】【読書】Clean Architecture 達人に学ぶソフトウェアの構造と設計 第Ⅲ部 第10章

はじめに

前回の続き

huji-mori.hatenablog.com

第Ⅲ部

第10章 ISP:インターフェース分離の原則(ISP:Interface Segregation Principle)

インターフェース分離の原則 →ソフトウェアを設計する際には、使っていないものへの依存を回避すべきだという原則 →必要としないお荷物を抱えたものに依存しているとトラブルの元になる

以上。