domain-driven-design

    0熱度

    2回答

    爲了將我們的邏輯從數據庫遷移到微服務,我在幾個月前修改了可用性引擎。當時,業務邏輯是相當簡單: 資源(會議室,桌子,空蕩蕩的辦公室,設備)僅當它是不是已經預訂給定的時間框架(即:無其他使用相同的資源) 當資源是不可用的,最接近的可用時間框架必須被計算 爲了滿足這些要求訂票,我建立了小片的下面的代碼: public class Schedule : IAggregateRoot { pu

    0熱度

    1回答

    構建REST web.api時,我應該從域模型中分離資源模型(作爲控制器中參數提交的模型)。或者這些應該被認爲是同一件事? 我想我應該把它們分開。資源模型對我來說應該是一個簡單的dto。然後將這些映射到域模型中,該模型具有關於資源如何與其他資源相關的所有豐富信息,以及用於協調業務規則的一個地方。最後,域模型通過實體模型保存數據。 看來我得到了模型重載資源模型,領域模型和實體模型。他們都看起來非常相

    2熱度

    3回答

    我有一個設計或至少應該根據衆所周知的DDD原則的項目。 後退 - DDD + CQRS +事件存儲 UI - NGRX /存儲 我有很多問題想請教一下,但現在我會堅持這些兩個: 單個命令/操作執行後應如何更新UI存儲? 一)訂閱response.ok 二)聽取域事件 C)觸發通用事件持創建/更新/刪除對象? 在每個命令/事件中將整個聚合根dto與其所有實體進行轉換是否是一個好主意,或者最好是有更多

    0熱度

    2回答

    我有一個項目,其中api正在從經典CRUD重構爲域驅動器設計(DDD)。其中一個挑戰是端點必須使用相同的動詞和有效載荷保持不變。 我有以下的情況 例如GET /命令/ 1048的回報 { "id":1048, "order_total":100.11, "is_paid":true, "order_status":"active", "items"

    0熱度

    1回答

    我正在構建一個系統,其中Meeting可以有零個或多個Attachment s。 爲避免每次加載Meeting時加載整個附件二進制文件,我有一個AttachmentRef(size, mimetype, reference, name, hash)。通過一個工廠,猜mimetype創建 此引用,計算hash和size和esnure一切都擱置保存的二進制內容:AttachmentsFactory.c

    1熱度

    2回答

    根據DDD原則,所有使用與特定聚合根對象有關的實體的CRUD操作應由聚合根進行。 但是,我們如何只從一個實體的aggr根改變一個屬性?我們是否應該在實體中使用setter方法,以及這些方法應具有哪些訪問器? 或者可能所有的實體都應該有自己的引用來指向它們的聚合根? 或者我們從不改變只有一個屬性,而是用全新的實體替換當前實體狀態的實體?

    1熱度

    3回答

    我知道這是一個常見問題,但我還沒有找到另一個解決我的疑惑。 通常,如果項目很小,我會在表示域對象的同一個對象中使用持久性註釋。這允許從數據庫加載實體並使所有設置器保持私密,確保任何實例始終處於有效狀態。就像: @Entity class SomeEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO)

    0熱度

    2回答

    在我的DDD項目中,我試圖用java枚舉實現狀態模式。 我在驗證具有取決於狀態的行爲的實體方法時遇到問題。 驗證我使用通知模式。 我遵循「始終有效的實體」的方法,以便在每次操作中我首先調用「isValidForOperation」驗證方法。 下面的代碼,只需將相關的簡單: 實體: public class Task extends AggregateRoot<TaskId> { ...

    1熱度

    2回答

    假設我們有一個總計User,其中UserPortraitImage和Contract作爲PDF文件。我想將文件存儲在專用的基於文檔的存儲中,並在事件中保存與進程相關的數據(通過指向BLOB數據的鏈接)。 但是,當我必須存儲文件並存儲新事件時,如何避免兩階段提交? 起初,我會存儲文件,然後事件;如果第一個事務失敗則無關緊要,該命令失敗。如果第二個事務失敗,即使我們在存儲中生成了一些死文件,也沒有關係

    0熱度

    1回答

    我想開發一個Emailer微服務,它提供SendEmail命令。該微服務裏面我心目中的總代表與下列事件的整個電子郵件的過程: 總結Email: (EmailCreated) EmailDeliveryStarted EmailDeliveryFailed EmailRecipientDelivered當一個的收件人收到郵件 EmailRecipientDeliveryFailed when其中一個