2012-08-06 36 views
7

Một phản ứng phổ biến mà tôi thấy cho rất nhiều câu hỏi được yêu cầu ở đây và các diễn đàn khác giống như "Bạn không cần phải làm DDD cho điều đó. Một ứng dụng CRUD đơn giản của nó, DDD là một kỹ thuật quá".DDD có phù hợp với mọi loại ứng dụng không?

Tôi mới làm quen với DDD và tôi cảm thấy có rất nhiều yếu tố trong DDD có sức hấp dẫn toàn cầu và có thể được sử dụng trên bảng, bất kể thực tế liệu ứng dụng của bạn có phức tạp để ủy nhiệm DDD hay không. Ví dụ, phân lớp của ứng dụng, các hiện vật khác nhau mà DDD nhận ra vv Có thể bắt đầu với những điều cơ bản và các mô hình thiếu máu đáng tin cậy và sau đó làm việc/refactor hướng tới độ tinh khiết nhiều như người ta có thể nhận được.

Cách tiếp cận này có tốt không? Hoặc bạn có thể nói rằng có một sự lựa chọn cơ bản trong thiết kế của mọi ứng dụng về việc có nên đi theo cách DDD hay không, loại sự lựa chọn "tất cả hay không"?

CẬP NHẬT(để cung cấp bối cảnh nhiều hơn, để đáp ứng với Hugh của bình luận dưới đây)
  Tôi đang xây dựng một webapp xung quanh một loại hiện RuleEngine của ứng dụng, về cơ bản CRUD và một số hợp lệ, bất biến và sau đó là một quá trình triển khai. Việc kiểm tra quy tắc-authoring và ngữ nghĩa được thực hiện bởi một đoạn mã độc lập mà tôi gọi là một phần của CRUD và không có logic cụ thể ngữ nghĩa nào có trong mã của tôi. Tôi đang cố gắng sử dụng DDD cho ứng dụng này, nhưng tôi thấy nó có thể không đủ phức tạp để phù hợp với mô hình DDD. Không có ngôn ngữ phổ biến nào được xác định cho tên miền, tức là ngôn ngữ không đủ chuyên môn ngoài việc đặt tên cho các thực thể có liên quan. Tôi nghe chuyên gia tên miền của mình nói về việc tạo, chỉnh sửa, xóa đối tượng.

+2

Câu hỏi của bạn dường như không gợi ra nhiều câu trả lời vì bạn không thực sự phải đối mặt với một thử thách cụ thể nhiều như cố gắng bắt đầu một cuộc thảo luận tổng quát về sự phù hợp của phương pháp đã cho, câu trả lời thường là "Tùy thuộc". –

+1

cảm ơn hugh! cho các bình luận và downvote chỉ, plz thấy cập nhật ở trên, đã cố gắng để thêm một số bối cảnh, hy vọng điều này sẽ giúp nó vượt qua "nó phụ thuộc" điểm :). – redzedi

+0

Tôi không phải là downvoter trong trường hợp này. 1 để cung cấp thêm chi tiết. –

Trả lời

5

DDD không phải là tất cả hoặc không có gì. Ngoài ra, nhiều mẫu được mô tả trong DDD không phải là mới và có thể được tìm thấy khắp nơi. Eric Evans (tác giả của cuốn sách DDD) chỉ lắp ráp chúng, chính thức hóa chúng khi cần thiết và đặt chúng liên quan đến nhau. Bạn được tự do sử dụng những gì phù hợp với không gian vấn đề của bạn.

Điều thường bị bỏ qua: DDD mô tả các mẫu triển khai cũng như các mẫu phân tích. Các mô hình phân tích có thể được overkill trong nhiều (nếu không muốn nói hầu hết) các ứng dụng, nhưng các mô hình thực hiện (ví dụ: Entities, Thông số kỹ thuật, Dịch vụ) có thể được sử dụng rất lớn trong các kịch bản ít phức tạp hơn là tốt.

2

Nói tóm lại,

Nếu nó chỉ CRUD, tôi sẽ không bận tâm.

Mặt khác,

Nếu nó có hành vi, nơi tình trạng tiếp theo của một cái gì đó dựa trên trạng thái trước đó, sau đó DDD là một cái gì đó bạn có thể muốn xem xét.

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