-
09.19
【DDD】クラス間の依存度を下げるには?(DI)
あるクラス内で別クラスをインスタンス変数で設定していた場合、コンストラクタでインスタンス化すると依存性が上がってしまいます。なので、DI(依存性の注入)をすることで依存度を下げることが可能です。 DIとは? あるクラス(アプリケーション…
-
09.19
【DDD】「コマンドオブジェクト」を作る。
コマンドオブジェクトとは? 「アプリケーションサービス」の処理(登録処理や更新処理)を呼ぶ際に、今後の変更でいちいちシグネチャが変わってしまう可能性があります。 「アプリケーションサービス」のメソッドのシグネチャが増えるたびにいちい…
-
アプリケーションサービスとは? ユースケースを実現するためのオブジェクトです。アプリケーションとは利用者の目的に応じたプログラムのことを指しており、ドメインオブジェクト(ドメインサービス)とは概念的には対比される概念です。 例 例えば…
-
09.19
【DDD】「リポジトリ」について
リポジトリとは? データを永続化(保存)して、再構築(復元)するといった処理を抽象的に扱うためのオブジェクト。(メモリ上に展開したデータはプログラム終了したら消えてしまうので永続化が必要) オブジェクトのインスタンスをDBに保存、読…
-
09.18
【DDD】「ドメインサービス」とは?
ドメイン駆動設計では「アプリケーションサービス」と「ドメインサービス」の二つのサービスがあります。ここでは「ドメインサービス」について解説します。 ドメインサービスとは? 「値オブジェクト」や「ドメインオブジェクト」には振る舞い(文字数…
-
ファイルにまつわるオブジェクトやエンコード形式など Blob(バイナリ・ラージ・オブジェクト) HTML5のFile APIで定義されたインターフェイス ブラウザのメモリ上にあるバイナリを表現する。 生のバイナリ…
-
Data URL Schema 「data:」で始まるURL imgタグのsrcに埋め込める。 仕組み Blob URL Schemaと異なり直接バイナリデータをURLに埋め込める。 メリット …
-
対応端末 スマホ iPhone ブラウザ Chrome 対応しています。 Safari まだ対応してくれないです。 ユースケース LINEでメッセージが届いた時 メルカリで出品が売れた時 yahoo天気…
-
09.12
【DDD】「CQRS」の活用
リポジトリにドメイン側の処理を埋め込んでしまうのも問題です。(例えば、商品を発売日順に並び替えるというのは仕様になります。) 対策としては、レポジトリ側に仕様オブジェクトを渡して、レポジトリではfindAllで単純に情報を取得して仕様…
-
09.11
【Redux】「正規化」について
例えば、以下のようなデータがあるとしましょう。 [crayon-688d82dd717f1407978803/] 以下のデータが複数回繰り返し出てきているので正規化されていないデータと言えます。 [crayon-688d82dd717…