2008-10-07 22 views

Trả lời

10

Thiết bị điều khiển tên miền (DDD) là một cách suy nghĩ và giao tiếp về các vấn đề và giải pháp của nó.

Ngôn ngữ cụ thể tên miền (DSL) là cách viết mã.

Chúng giống nhau vì cả hai đều bắt đầu bằng từ "tên miền". Đó là nó, tôi đoán vậy. :-)

+7

Mặc dù buồn cười, tôi nghĩ rằng câu trả lời này là hơi không chính xác. một DSL sẽ sử dụng cùng một ngôn ngữ phổ biến như bạn nhận được khi thực hành DDD cho cùng một tên miền, chúng không hoàn toàn không liên quan .. –

2

Tôi cho rằng chúng bằng cách nào đó có liên quan và không chỉ bằng từ "tên miền". Một khi bạn có một thiết kế tốt (tên miền), nó chắc chắn sẽ giúp đỡ trong việc tạo ra một DSL vững chắc.

"DDD không yêu cầu cụ thể việc sử dụng DSL, mặc dù nó có thể được sử dụng để giúp xác định DSL." - Wikipedia

0

Wikipedia có một định nghĩa khá rõ ràng cho DSL:

Thuật ngữ ngôn ngữ miền cụ (DSL) đã trở nên phổ biến trong những năm gần đây trong việc phát triển phần mềm để chỉ ra một ngôn ngữ lập trình hoặc đặc điểm kỹ thuật ngôn ngữ dành riêng cho một miền có vấn đề cụ thể là , sự cố cụ thể về kỹ thuật và/hoặc kỹ thuật giải pháp cụ thể.

Điều này có thể được thực hiện như một tập hợp các lớp theo một số mẫu nhất quán, một số mẫu C++ ưa thích hoặc trình biên dịch/phân tích cú pháp để nhập văn bản tự do để thực hiện những gì bạn muốn.

0

Tôi nghĩ rằng chúng bằng cách nào đó liên quan (như Christophe đặt nó), nhưng hai khía cạnh hoàn toàn khác nhau. Tôi thậm chí sẽ không bác bỏ tuyên bố của jop.

Để có thông tin bằng văn bản rất tốt về DSL tham khảo Martin Fowler's set of pages on DSLs (đang tiến hành), bạn có thể bắt đầu với example hoặc definition. Một đọc tốt là QandA của mình.

DDD dựa trên mô hình miền và thường có ít nhất một mức trừu tượng cao hơn DSL. Cả hai đều có thể tồn tại mà không có người khác, và như Christophe đã nói, cả hai đều có thể được sử dụng trong cùng một dự án.

6

Thiết kế theo hướng miền nhấn mạnh vai trò của miền vấn đề khi bạn tạo từ vựng cơ bản, khái niệm và mô hình đối tượng cho hệ thống đang được thiết kế.

Ngôn ngữ cụ thể theo miền là ký hiệu để chỉ định hoặc triển khai các phần cụ thể của hệ thống, được định hướng theo nhu cầu của người hành nghề trong miền đó (tức là giảm thiểu khía cạnh "lập trình viên" của hầu hết các ngôn ngữ lập trình hoặc đặc tả).

0

Sự khác biệt, một là một cách tiếp cận để xây dựng hệ thống sử dụng ngôn ngữ ngôn ngữ cụ thể (DSL) thay vì ngôn ngữ mục đích chung và phương pháp tiếp cận kiến ​​trúc (DDD) để thiết kế và xây dựng hệ thống.

Sự giống nhau là cả hai đều tập trung vào tên miền cụ thể.

1

Một phần tử của DDD có thể được xem là khả năng phát triển ngôn ngữ phổ biến để nói chuyện với các bên liên quan về miền. Đối với các tập hợp con của những UL đó là cả hai rõ ràng và có khả năng thực thi, bạn có thể chọn để thực hiện chúng bằng cách sử dụng một DSL nội bộ hoặc bên ngoài.

Dưới đây là một đoạn video của tôi thảo luận này trên trang web DomainDriven:

http://domaindrivendesign.org/library/bell_gitlevich_2009

Best Wishes, Peter

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