Tôi đang làm việc trên ứng dụng DDD "thực" đầu tiên của mình.DDD. Cài đặt cấu hình người dùng thuộc về ai?
Hiện tại, khách hàng của tôi không có quyền truy cập vào lớp miền của tôi và yêu cầu thay đổi tên miền bằng cách đưa ra các lệnh.
Sau đó tôi có một mô hình đọc riêng biệt (được làm phẳng) để hiển thị thông tin (như CQRS đơn giản).
Tôi hiện đang làm việc về cấu hình hoặc cụ thể là các cài đặt mà người dùng định cấu hình. Sử dụng ứng dụng blog làm ví dụ, cài đặt có thể là tiêu đề hoặc biểu tượng blog.
Tôi đã phát triển một trình tạo cấu hình chung để xây dựng một đối tượng cấu hình được nhập mạnh mẽ (ví dụ: BlogSettings) dựa trên bộ sưu tập cặp giá trị khóa đơn giản. Tôi bị mắc kẹt về việc liệu các đối tượng cấu hình này có nằm trong miền của tôi hay không. Tôi cần truy cập vào chúng từ máy khách và máy chủ.
Tôi đang xem xét việc tạo thư viện "Được chia sẻ" chứa các đối tượng cấu hình này. Đây có phải là cách tiếp cận chính xác không?
Cuối cùng, nơi nào mã nên lưu các cài đặt cấu hình như vậy? Một giải pháp dễ dàng là đặt mã này vào dự án Domain.Persistence của tôi, nhưng sau đó, nếu chúng không phải là một phần của miền, chúng có thực sự ở đó không?
Cảm ơn,
Bến
Một cách khác để xem xét nó có thể là bạn có ngữ cảnh giới hạn "Cấu hình" hoặc "Cài đặt" riêng biệt. Đó là một sự tách biệt hợp lý, không phải là một sự vật lý. Vì vậy, bạn vẫn có thể theo đuổi việc cung cấp quyền truy cập vào ngữ cảnh bằng cách sử dụng các công nghệ khác nhau (máy khách vs máy chủ). Tất cả các mã để làm như vậy tuy nhiên, thuộc về bối cảnh. –
@YvesReynhout đây là tuyến đường chúng tôi đã kết thúc, có ngữ cảnh cấu hình mà chúng tôi tương tác. Tuy nhiên chúng tôi đã làm cho các đối tượng cấu hình được chia sẻ - trong trường hợp này, sự tách biệt sẽ đơn giản là gây ra sự sao chép mã không cần thiết. –
Ồ, nhưng tách hợp lý không dẫn đến sao chép mã. Nó chỉ có nghĩa là bối cảnh bị ràng buộc chịu trách nhiệm về mã. Mã của bối cảnh giới hạn được triển khai hoàn toàn trực giao với thực tế đó như thế nào (nó có thể được lưu trữ hoàn toàn bên trong một tiến trình cùng với mã của các ngữ cảnh bị ràng buộc khác). –