Saya cuba menulis semula aplikasi monolitik pada aplikasi monolitik modular menggunakan DDD dan seni bina heksagon. Mula-mula cuba ekstrak tiga modul (agregasi): "Dikongsi", "Pengguna" dan "Artikel".
Setakat yang saya faham dengan betul, tiada pergantungan harus dibuat antara "pengguna" dan "siaran". Walau bagaimanapun, mereka semua boleh menggunakan kandungan daripada modul Dikongsi.
Jadi inilah perkaranya…
Modul "Artikel" mempunyai Article
实体,该实体与 User
实体相关。从 DDD 的角度来看,它是特定文章的创建者。将会有更多类似的模块与 User
entiti yang dikaitkan dengannya sebagai pengarang atau pemilik sumber.
Bagaimana ia harus dilaksanakan? Patutkah ia dialihkan ke Shared? Malangnya, tiada sumber khusus dapat ditemui. Github terutamanya mengandungi projek dengan satu pengagregatan dan tidak ada entiti User
.
Saya sentiasa mencari cara yang berbeza untuk menyelesaikan masalah seperti ini. Anda boleh membuat agregat kongsi dan tiada siapa boleh mengatakan ia salah. Walau bagaimanapun, saya fikir penyelesaian terbaik ialah anda mencipta agregat Orang (atau Orang) di mana anda boleh mempunyai PersonEntity (atau AuthorEntity) yang berkaitan dengan ArticleEntity, tidak ada masalah dengan hubungan antara agregat, tetapi saya cadangkan anda cuba hanya Mencipta akar hubungan antara agregat.
Ini adalah contoh Buku Biru Eric Evans
Sila ambil perhatian bahawa Voyage ialah AggregateRoot dalam Aggregate Voyage, yang mempunyai hubungan dengan Lokasi AggregateRoot agregat Lokasi.