- 投稿日:2019-03-10T20:27:23+09:00
そのカタカナ語、なんて意味?
はじめに
書:実践ドメイン駆動設計 を手に入れたが、読んでみてもカタカナ語が多くて全然内容が理解できない。DDDを理解する以前に曖昧になっている概念たち(ここで言うカタカナ語)をちゃんと理解しておかないといけない。と思ったのでまとめました。
マサカリじゃんじゃんください。
簡単なもの
イベント
ある処理があったとして、その処理を発火する(呼びだす)もの。関数呼び出しであったりコマンドだったり。例外もそれに当てはまる。
イベントドブリン(EDA)
外部(一般的にユーザー)からのイベントを受け取り、
それに対応する形で処理を記述する設計方法。コンテキスト
ユーザーの意図や状況、環境などの外部条件を意味する。同じ処理や記述でも状況に応じて動作などが異なる場合に、その選択基準となる判断材料や条件などを指す場合が多い。
パブリッシャー/サブスクライバ
とてもわかりやすいので引用:https://www.ibm.com/support/knowledgecenter/ja/SSFKSJ_7.5.0/com.ibm.mq.explorer.doc/p_pubsubers.htm
情報の提供者をパブリッシャーといいます。 パブリッシャーはある件名についての情報を提供しますが、情報を求めるアプリケーションについては何も認識する必要がありません。
情報の利用者をサブスクライバーといいます。 サブスクライバーはどんな情報が必要かを決定し、その情報が受信されるのを待ちます。 サブスクライバーは、多種多様なパブリッシャーから情報を受信し、その情報を他のサブスクライバーに送信できます。エンティティ
実体のあるもの(情報)。またそれを表現するもの
オブジェクトとかクラスとか、DBのテーブルとか。ドメイン
ドメインとはプロジェクト、プロダクトがやるべきこと。解決する問題のこと。人間にとってのドメインは仕事、恋愛、趣味娯楽。
ドメインエキスパート
チームのメンバーをシステム側と、上に述べているドメイン側で分けた時、ドメイン側となるメンバーのこと。企画と言っていい気がする。
ユビキタス言語
プロダクトに関わる構成員(チーム)には、ドメインエキスパート、開発者、ビジネスアナリストといった専門とする領域の異なるメンバーがいる。その領域が異なるメンバー間では業務で使う用語やフレーズ(このページのカタカナ語がまさにそれ)が異なってくる。でもそれだとチームでのコミュニケーションが円滑に取れない。そこで、チームで決めたビジネス側もエンジニア側も理解できるチームの固有言語のこと。
チームの、チームによる、チームのための言語
である。(どうしてもいいたかったんですすいません)
インスタンス
Userというエンティティを例にする。
Userエンティティを抽象的に表現したものがUserクラスなのに対して、1つの特定
のユーザーを表すオブジェクトをインスタンスという。そしてUserのインスタンス
は一般的にUserクラスによって初期化(宣言)される。リポジトリ
データを保管する場所。から転じてデータの要求先。データへのアクセスをカプセル化し、データアクセスに意味を持たせる役割がある。
ストア
そのまんまの意味で、データを蓄積する場所。だいたいDBの抽象的な言い回しだと捉えてる。
難しいのでこちらを参照
スクラム