Chà, trước hết, tôi không nghĩ rằng bài viết Wikipedia mà bạn đề cập là rất hay, chủ yếu là vì nó tham khảo một loạt những thứ chỉ phụ trợ cho Thiết kế hướng miền và không làm sáng tỏ bất cứ ai về thực tiễn.
Nhưng, với tư cách là người đã thiết kế Domain Driven Design (thường đi theo DDD, thay vì 3D, vì giá trị của nó), tôi luôn cảm thấy các nguyên tắc cơ bản của DDD là rõ ràng, nếu bạn đọc nhiều như chương đầu tiên của Eric Cuốn sách của Evans. Nhưng nó là một tập hợp các mô hình và thực tiễn, vì vậy không dễ để đưa ra một bản tóm tắt 3 câu về nó là gì và những lợi thế là gì mà không đi sâu vào chi tiết. Những chi tiết cộng hưởng với bất kỳ một người nào cũng có thể rất khác nhau; Có thể là 10 năm trước tôi đã không nhìn thấy điểm nào cả.
DDD không phải là viên đạn bạc. Khi được thực hiện một cách hợp lý, đó là về cách tiếp cận giống như thợ thủ công để xây dựng phần mềm và nhận ra sự cần thiết phải giảm ma sát nhận thức giữa các nhóm phát triển và các doanh nghiệp mà họ đang xây dựng phần mềm. Một trong những thực tiễn quan trọng nhất là có một lớp trong đó từ vựng miền được sử dụng bởi nhóm phần mềm và nhóm kinh doanh khớp với nhau càng chặt chẽ càng tốt. Bạn xây dựng lớp này lặp đi lặp lại khi bạn hiểu được vấn đề kinh doanh mà bạn đang cố gắng giải quyết. Khi logic nghiệp vụ được mã hóa hợp lý trong lớp này, tách biệt khỏi tất cả các phụ thuộc phức tạp mà các ứng dụng doanh nghiệp thường có bằng cách bao gồm các tương tác với các hệ thống đó với các giao diện, ngôn ngữ được sử dụng trong lớp miền thực tế cuối cùng trở nên khá ngắn gọn, rõ ràng và dễ đọc.
Xét về hình dạng mà tôi đã thấy hầu hết các phần mềm doanh nghiệp, trên thực tế, DDD có thể nghe giống như một viên đạn bạc, bởi vì hầu hết các phần mềm doanh nghiệp có sự phân tách đáng lo ngại đến mức gần như không thể kiểm chứng được và nhóm phần mềm sống trong nỗi sợ hãi thay đổi lớn vì họ không biết tác dụng phụ của những thay đổi mã tầm thường thậm chí có thể là gì, trong khi đó, một lớp miền được bao thanh đúng sẽ có thể kiểm tra độc lập và có thể kiểm chứng được. Nhưng thực tế, DDD thừa nhận rằng các hệ thống hiếm khi tồn tại trong sự cô lập. DDD bao gồm các mẫu đối phó cho các hệ thống cũ (lớp Chống tham nhũng, bối cảnh bị ràng buộc, để đặt tên cho một cặp vợ chồng).
Nếu bạn thực hành thiết kế hướng đối tượng, bao gồm kỷ luật khớp nối lỏng lẻo và bạn thực hành thử nghiệm đơn vị một cách khá tôn giáo, và bạn mã hóa lại một cách không thương tiếc, và bạn làm việc với các chuyên gia tên miền trong khi xây dựng hệ thống của mình, về cơ bản bạn sẽ kết quả với kết quả đó về cơ bản những gì những người ủng hộ thiết kế định hướng tên miền đang nói về.
Có một vài mô hình cụ thể được mô tả trong cuốn sách của Evans áp dụng chủ yếu cho phát triển phần mềm doanh nghiệp và một số nguyên tắc khá phổ biến, nhưng về cơ bản, DDD là một cách tiếp cận thực tế để phát triển phần mềm, theo thời gian, có thể giảm sự tích tụ của nợ kỹ thuật, và làm cho khách hàng của bạn hạnh phúc hơn vì bạn có thể nói cùng một ngôn ngữ với nhau và đưa ra các giải pháp làm việc tốt hơn vì những lợi thế của việc hiểu nhau hơn.