2016-01-19 18 views
8

Người ta thường nói rằng DDD (Domain-driven Design) phù hợp hơn với các tên miền phức tạp thay vì các tên miền đơn giản hơn.DDD - Tên miền phức tạp là gì?

Điều gì mô tả một miền phức tạp? (vui lòng cụ thể hơn "nó có các quy tắc kinh doanh phức tạp");

Ví dụ về tên miền phức tạp là gì?

Làm cách nào để phân loại tên miền phức tạp (ví dụ: phù hợp với DDD) hay không?

+1

Tôi có thể nói rằng không chỉ cho * các tên miền phức tạp * mà còn cho các dự án tham vọng * có mục đích có tuổi thọ lâu dài *. Câu lệnh thứ hai bỏ qua sự phức tạp. – fabriciorissetto

Trả lời

5

Từ kinh nghiệm 3 điều quan trọng nhất của tôi mà làm cho phức tạp miền của bạn:

Kích

lĩnh Big xu hướng gia tăng phức tạp. Xử lý và phối hợp rất nhiều thứ luôn khó khăn.

Quy định và bất biến

tên miền (thậm chí lĩnh vực chỉ với một vài bối cảnh bị chặn) có thể có rất nhiều quy tắc miền và bất biến và/hoặc rất nhiều sắc thái trong các trường hợp sử dụng và quá trình. Điều này làm tăng sự phức tạp. Quy tắc spam nhiều thay đổi trong sự kiện tổ chức hoặc tên miền liên miền thường là các quy tắc kinh doanh phức tạp .

Context

Bối cảnh phức tạp là khó để giải thích wihtout một ví dụ. Hãy đặt trong bảng một ngữ cảnh phức tạp liên quan đến một thực thể có tên là Product.

Tùy thuộc vào ngữ cảnh; một thực thể có thể có nghĩa là những thứ khác nhau trong miền của bạn. Thực thể Product không có nghĩa là giống nhau đối với ngữ cảnh của Nhà máy, ngữ cảnh Tiếp thị, bối cảnh Bán hàng, ngữ cảnh hỗ trợ PostSales, v.v.

Nếu dữ liệu, trường hợp người dùng, quy trình, hành vi, v.v. liên quan đến Product thực thể, trong mọi ngữ cảnh, là rất khác nhau phức tạp tăng rất nhiều ngay cả khi bạn chỉ có một số ít các bối cảnh và các thực thể. Điều này thường có nghĩa là bạn có nhiều thực thể Product (một trong mọi ngữ cảnh) ngay cả khi tất cả chúng được hỗ trợ bởi cùng một lưu trữ bền vững (trong trường hợp cửa hàng ER, cùng một bảng/s).

1

Không có định nghĩa phức tạp duy nhất, nhưng có một mô tả hữu ích trong cuốn sách Vaughn Vernon (Implementing Domain Driven Design): Bảng 1.1 Thẻ điểm DDD.

Ông mô tả dự án với các tiêu chí khác nhau, ví dụ: dự án phức tạp sẽ thay đổi thường xuyên (các tính năng mới và khó có thể đoán trước được), bạn không hiểu đầy đủ về miền (hoặc có rất nhiều sự mơ hồ mà bạn cần phải thảo luận với chuyên gia kinh doanh), kích thước như @jlvaquero đã nói (số tính năng/quy tắc/sự phong phú của ngôn ngữ ...).

Các vấn đề liên quan