2015-04-19 17 views
6

Giả sử Chúng tôi có một vài libs. Sự khác nhau giữa lõi và thư viện chung là gì. Làm thế nào để được công nhận và tổ chức các trách nhiệm của cả hai.Phổ biến vs Lõi - khác biệt

+Common 
    -Class1 
+Core 
    -Class2 
+Lib1 has : Common 
+Lib2 has : Core, Common 

nên Common được trurerly chung (tất cả các libs sử dụng nó)? Hay chỉ phổ biến cho những ai cần nó?

Thực tiễn tốt khi tái cấu trúc/tạo dự án là gì?

Tôi không thực sự cảm thấy sự khác biệt giữa Core và Common.

+2

Thực hành tốt: làm những điều có ý nghĩa, không vi phạm [nguyên lý ít ngạc nhiên nhất] (http://en.wikipedia.org/wiki/Principle_of_least_astonishment) mà không có lý do thực sự tốt. Bạn không cảm thấy sự khác biệt bởi vì nó là một quyết định tùy ý. – Jon

Trả lời

7

Tôi nghĩ điều này phụ thuộc rất nhiều vào ứng dụng cụ thể của bạn. Trong một ứng dụng tập trung duy nhất, tôi nghĩ có thể có một chút trùng lặp giữa các thư mục CoreCommon. Nhưng điều quan trọng nhất là nó có ý nghĩa đối với ứng dụng của bạn. Đừng cảm thấy rằng bạn cần phải có các thư mục đó chỉ vì bạn đã thấy các thư mục này trong các ứng dụng khác ...

Đối với tôi, có một thư mục CoreCommon có ý nghĩa trong một số trường hợp - ví dụ: một ứng dụng web có API và ứng dụng khách. Bạn có thể có thư mục Core ở phía API, nơi thực thi lõi (logic nghiệp vụ) diễn ra và sau đó có thư mục Common với một số thứ bạn cần trong cả hai API và phía máy khách - ví dụ: yêu cầu xác thực Http hoặc bộ chuyển đổi Json.

Dù sao, bạn có thể có một số Core và một thư mục Common trong các loại ứng dụng khác.
Ví dụ: thư mục Core sẽ chứa các lớp đó là trung tâm cho ứng dụng của bạn - phần lớn các lớp mô hình kinh doanh sẽ ở đó.
Trong thư mục Common, mặt khác, bạn có thể có một số lớp khác được chia sẻ, nhưng không trung tâm - ví dụ, một Logger hoặc một MessageSender có thể có mặt ở đó ...

Đối với dự thảo ít bạn cấu trúc mã, tôi nghĩ rằng gói Core của bạn là gói cần sửa đổi - tại sao Lib1 không sử dụng Core? Nếu một cái gì đó là lõi, thường là vì mọi thứ khác cần nó để chạy. Nếu bạn không có mã theo khái niệm chính giữa, có thể bạn có thể xóa gói Core và chỉ giữ Common?

Đối với câu hỏi khác của bạn - Tôi không nghĩ rằng những thứ Common phải được chia sẻ bởi tất cả gói khác, nhưng chỉ với 2 hoặc nhiều hơn các gói chia sẻ điều gì đó, có thể được coi chung.

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