こちらの質問回答への続きです

2024年10月10日

質問者さん

ご回答ありがとうございます Twitterの方でも他の方が被せてくださった説明も合わせて拝見しました 「Cookieは技術的関心ごとだからインフラ層に閉じ込める」という考えに固執しすぎていたこと、またリポジトリに対する理解も深まり、具体的な実装イメージも付き非常に助かりました 追加の質問ではないですがこの場を借りてお礼を申し上げます

2024年10月10日

松岡@ログラス/DDD,アジャイル

松岡@ログラス/DDD,アジャイルさん

よかったです!

松岡@ログラス/DDD,アジャイルさんに 質問してみましょう!

松岡@ログラス/DDD,アジャイル

松岡@ログラス/DDD,アジャイル

DDDや設計にお困りの方はDMにてご相談ください。講義、モブモデリングやコーディングなどご要望に合わせた進め方でサポートします(オンライン)。 YouTube: https://www.youtube.com/channel/UCbHtbIUxtfGjrDy1WcqxExw

関連する質問

2024年10月10日

続き質問

はい、おっしゃる通りでリクエストヘッダーにCookieを載せた状態でのリクエストが求められる状況です もう少しシステム間の連携部分を詳細に説明すると、 システムA: 開発対象 システムB: 依存している外部サービス システムAに認証Cookieをリクエストヘッダーに付与してリクエスト その後システムAがリポジトリを使って集約を取得 この時リポジトリの実装では、システムAのコントローラーが受け取った認証CookieをそのままシステムBのリクエストヘッダーに付与してリクエスト(この部分が制約) となります システムAもBも /me エンドポイントに認証 Cookie を付与した状態で get リクエストを投げる必要があるイメージです

2024年10月08日

続き質問

ご回答ありがとうございます 通常であればご回答のようにCookieからUserIdに詰め替えてリポジトリを呼び出すことについては理解しているのですが、本件の質問内容としては、リポジトリで呼び出される外部システムのAPIの制約として、「UserIdを使わずにCookieをリクエストに乗せること」が制約条件にある場合、どのような手段が取れるか、といった趣旨となります

松岡@ログラス/DDD,アジャイルさんが

最近答えた質問

01月19日

クエリサービスのあり方について質問です。 現在とあるゲームを開発しており以下のようなディレクトリ構成を取っています。 User ├── Domain ├── Application ├── Infrastructure └── Presentation Score ├── Domain ├── Application ├── Infrastructure └── Presentation スコア一覧画面の構成としては 1. ユーザー名(部分一致)でユーザーを検索する 2. 条件に合致したユーザーが一覧で表示され、その中から一人を選択する 3. そのユーザーのスコア一覧が表示される というものになっています。 上記の1の処理においてユーザーを検索する際に 「年齢が18歳以上、検索表示を許可、ステータスが有効」 という条件が暗黙的に設定されます。 これはスコア一覧画面固有の条件です。 また、検索表示許可はオプションのようなものでありユーザー集約に含まれていません。 この場合 案A Score配下のクエリサービス内にユーザーを絞り込む処理を記載する。  →Score内のクエリサービスなのにスコアに関係ないクエリが含まれてしまってよいのか 案B User配下のクエリサービス内にユーザーを絞り込む処理を記載する。  →そのクエリサービスのインターフェースはすでにUser/Applicationにある。スコア用の固有の条件を持つのにここに配置してよいのか。 のどちらがよいのでしょうか。 (あるいはどちらも間違いでしょうか)

01月16日

書籍購入しました。説明がわかりやすくとてもありがたいです。 QueryServiceの責務について質問があります。 QueryService内にSQL実行以外のデータの持ち方の変換処理を書いていいのでしょうか。 例えばUserというテーブルにログインidカラムと住所カラムがあったとします。 ここで「ログインidがloginから始まり、住所が東京のどこかであるユーザー」を絞り込みたいが、パフォーマンス的に厳しいとします。 そこで - SQLではログインidでのみ絞り込みを行う。 - その結果をもとにSQL外で住所で絞り込みを行う。 という構成にしようと思いました。 この後者の絞り込みはQueryService内で行ってもよいのでしょうか。それともQueryServiceはSQLの実行のみに役割を絞り、住所での絞り込みは呼び出し側(UseCaseなど)で行うべきでしょうか

12月21日

データ量がかなり膨大、かつ正規化され過ぎているため、様々なテーブルとJOINし、様々なwhere句を使っているリポジトリのメソッドがあります。 このリポジトリのメソッドは以下の課題を持っています。 1.集約に関係しないリポジトリからもインターフェイスを介さず、直接呼ばれている 2.クエリが複雑過ぎて保守出来ない(改修した時の影響が見切れない) 性能要件に抵触したため、リファクタリングすることになりました。 まずは単体テストを書いて、想定できるケースは網羅しました。 この後どのようにリファクタリングを進めるべきでしょうか? また、どの程度までリファクタリングするのがコスパが良いでしょうか?