Tôi thấy hữu ích khi tổ chức không gian tên thành phân cấp và làm cho tên lắp ráp khớp với tên phụ họ đóng góp. Ví dụ, một dự án có tên Womble sẽ có một không gian tên top-level Womble, và sau đó có thể có hội gọi là:
Womble.ClientLibrary.dll
Womble.Controls.dll
Womble.Util.dll
Womble.Interop.dll
Ở đây, không gian tên Womble ngoài kéo dài nhiều hội, nhưng mỗi lắp ráp có subnamespace độc đáo mà chỉ có nó có thể đóng góp, mà bạn tìm thấy bằng cách loại bỏ .dll từ cuối. Nó làm cho nó dễ dàng hơn nhiều để nhớ những gì bạn cần để tham khảo và tìm thấy mọi thứ.
Đối với số lượng rất lớn các hội đồng, cuối cùng bạn không cần phải giữ tất cả chúng trong một giải pháp. Trong việc phát triển quy mô lớn, nó giúp chia nhỏ một sản phẩm lớn thành các hệ thống con, có thể bao gồm nhiều hội đồng, và mỗi hệ thống con có thể được duy trì bởi các nhóm riêng biệt và có thể có các tệp giải pháp riêng của chúng. Các nhóm khác nhau "phát hành" phiên bản mới cho nhau thông qua kiểm soát nguồn, coi nhau là thư viện của bên thứ ba.
Tôi không nghĩ rằng có một cách khó khăn và nhanh chóng để quyết định cách chia nhỏ phần mềm thành dạng vô trùng. Có một nguyên tắc chung ở đây: những thứ thay đổi vì những lý do khác nhau nên được tách ra.
Các dự án rất lớn có thể đạt được từ thực tế là bằng cách đặt mọi thứ vào các hội đồng riêng biệt, bạn có thể vá chúng riêng biệt. Bạn có thể tạo hotfix cho một vấn đề trong Womble.Interop.dll, và sau đó sản xuất riêng hotfix cho một vấn đề trong Womble.Controls.dll, và đưa cả hai cho cùng một khách hàng, do đó trong lý thuyết, hai assembly đó có thể hoàn toàn được duy trì và hỗ trợ bởi các nhóm riêng biệt, mà không cần phải phối hợp hoạt động của họ trực tiếp.
Các hội đồng riêng biệt cũng tạo sự rõ ràng trong các phụ thuộc giữa mã. Bạn có thể thấy ở mức rất cao (chỉ cần nhìn vào danh sách tham khảo) cách một đoạn mã phụ thuộc vào mã khác và cách nó có thể được sử dụng lại. Nếu bạn đặt tất cả mọi thứ trong một hội đồng, nó có thể là một mớ hỗn độn rối rắm lớn không có mô hình hợp lý với nó.
Nguồn
2009-03-14 10:38:29
Đây cũng là cách hiện tại của tôi làm việc. Thường thì tôi thấy các nhà phát triển chia nhỏ ứng dụng trong 3 hội đồng vì hầu hết họ nghĩ rằng một lớp 3 trong 3 hội đồng là một điều tốt để làm; nhưng điều này cũng có thể đạt được bằng cách phân vùng không gian tên và giữ toàn bộ trong 1 assembly. Chỉ khi bảo mật và hiệu suất là những người chơi chính, thì hãy bắt đầu điều tra cách phân chia thể chất cho ứng dụng của bạn. –