Khi tách một giải pháp thành các lớp hợp lý, khi nào tốt nhất nên sử dụng một dự án riêng biệt chỉ cần nhóm theo một thư mục?Thư mục hoặc dự án trong một giải pháp Visual Studio?
Trả lời
Theo mặc định, luôn chỉ cần tạo thư mục mới trong cùng một dự án
- Bạn sẽ nhận được lắp ráp duy nhất (không cần thông qua thể dục ILMerge)
- Dễ xáo trộn (bởi vì bạn sẽ có các loại ít công cộng và phương pháp, lý tưởng không có gì cả)
Tách mã nguồn của bạn thành nhiều dự án làm cho chỉ có ý nghĩa nếu bạn ...
- Có một số phần của mã nguồn là một phần của dự án nhưng không thể triển khai theo mặc định hoặc ở tất cả (kiểm tra đơn vị, bổ sung thêm, vv)
- Nhiều nhà phát triển tham gia và bạn muốn đối xử với công việc của họ như tiêu hao đen cái hộp. (không được đề xuất)
- Nếu bạn có thể tách riêng dự án của mình thành các lớp/mô-đun riêng biệt và bạn muốn đảm bảo rằng chúng không thể tiêu thụ chéo nội bộ thành viên.(cũng không được khuyến nghị vì bạn sẽ cần phải quyết định khía cạnh nào là quan trọng nhất)
Nếu bạn nghĩ rằng một số phần của mã nguồn có thể được sử dụng lại, vẫn không tạo nó làm dự án mới. Chỉ cần chờ đợi cho đến khi bạn thực sự muốn sử dụng lại nó trong một giải pháp khác và cô lập nó ra khỏi dự án ban đầu khi cần thiết. Lập trình không phải là một lego, việc tái sử dụng thường rất khó và thường sẽ không xảy ra theo kế hoạch.
Tôi thường làm một dự án cho GUI một dự án cho logic nghiệp vụ là dự án truy cập dữ liệu và dự án cho các bài kiểm tra đơn vị.
Nhưng đôi khi nó là khôn ngoan để có tách dựa trên dịch vụ (nếu bạn đang sử dụng một kiến trúc hướng dịch vụ) Chẳng hạn như xác thực, Bán hàng, vv
Tôi đoán sự cai trị của ngón tay cái mà tôi làm việc tắt của là nếu bạn có thể thấy nó như một thành phần có sự phân tách rõ ràng các mối quan tâm thì một dự án khác có thể thận trọng. Nhưng tôi nghĩ rằng các thư mục so với các dự án chỉ có thể là một sở thích hay triết lý.
Cá nhân tôi cảm thấy rằng nếu mã có thể tái sử dụng được chia thành các dự án thì việc sử dụng các địa điểm khác sẽ đơn giản hơn nếu nó chỉ nằm trong các thư mục.
denny đã viết:
Cá nhân tôi cảm thấy rằng nếu sử dụng lại mã được chia thành các dự án đó là đơn giản để sử dụng những nơi khác hơn nếu nó chỉ là trong các thư mục.
Tôi thực sự đồng ý với điều này - nếu bạn có thể sử dụng lại, nó phải nằm trong một dự án riêng biệt. Với những gì đã nói, nó cũng rất khó khăn để tái sử dụng một cách hiệu quả :)
Tại SO, chúng tôi đã cố gắng để thể rất đơn giản với ba dự án:
- dự án Web MVC (mà làm một công việc tốt đẹp của tách lớp của bạn vào các thư mục mặc định) dự án
- Cơ sở dữ liệu để kiểm soát nguồn gốc của DB của chúng tôi
- Unit tests chống lại mô hình MVC/controllers
tôi không thể nói cho mọi người, nhưng tôi hạnh phúc w ith đơn giản như thế nào chúng tôi đã giữ nó - thực sự tốc độ xây dựng cùng!
Tách mã nguồn của bạn vào nhiều dự án làm cho chỉ có ý nghĩa nếu bạn ... ... Nhiều nhà phát triển tham gia và bạn muốn đối xử với công việc của họ như hộp đen tiêu hao. (không phải rất được đề xuất) ...
Tại sao điều này không được khuyến nghị? Tôi đã tìm thấy nó một cách rất hữu ích để quản lý một ứng dụng với một số dev làm việc trên các phần khác nhau. Làm cho việc đăng ký dễ dàng hơn nhiều, chủ yếu bằng cách loại bỏ hầu hết các hợp nhất. Rất hiếm khi hai nhà phát triển phải làm việc trên cùng một dự án cùng một lúc.
Chỉ được đề xuất cho mã đủ ổn định để cho phép xác định rõ ràng trách nhiệm và giao diện cho các dự án được xác định. – reinierpost
Tính năng tách thành các dự án thường là tối ưu hóa kiến trúc YAGNI. Bạn có thường xuyên sử dụng lại những dự án riêng biệt đó không? Nếu nó không phải là một sự xuất hiện thường xuyên, bạn đang làm phức tạp sự phát triển, xây dựng, triển khai và bảo trì của bạn để tái sử dụng lý thuyết.
Tôi thích chia tách các thư mục (sử dụng các không gian tên thích hợp) và tái cấu trúc để tách các dự án khi bạn có trường hợp sử dụng lại trong đời thực.
Khi tôi thay thế 'tái sử dụng lý thuyết' bằng 'thử nghiệm', kết luận của bạn vẫn giữ nguyên? – reinierpost
Nếu bạn thực hiện một số dự án, hãy đảm bảo rằng mọi người thêm mã vào giải pháp đều hoàn toàn nhận thức được ý định của chúng và làm mọi thứ bạn có thể để hiểu được sự phụ thuộc giữa các dự án. Nếu bạn đã từng cố gắng sắp xếp các mớ hỗn độn khi có ai đó đã đi và thêm tài liệu tham khảo mà không nên có và đã đi với nó trong nhiều tuần bạn sẽ hiểu được điểm này
Tôi thực sự nghĩ tốt hơn là chia dự án là tốt, nhưng tất cả phụ thuộc vào quy mô của dự án và số người làm việc trên đó.
Đối với dự án lớn hơn, tôi có một dự án cho
- truy cập dữ liệu (mô hình)
- dịch vụ
- kết thúc trước
- kiểm tra
tôi có các mô hình từ Rob Connery và ứng dụng mặt tiền cửa hàng của anh ấy ... dường như hoạt động thực sự tốt.
- 1. Dự án Visual Studio Tham khảo giải pháp bên trong
- 2. Cài đặt Visual Studio cho mỗi giải pháp/dự án
- 3. Visual Studio: Lập trình tạo các mục dự án trong thư mục dự án
- 4. Dự án Visual Studio với nhiều thư mục
- 5. Visual Studio Project DLL không cập nhật trong dự án trang web (cùng một giải pháp)
- 6. Visual Studio Giải pháp lớn
- 7. Một số dự án trong một giải pháp với cmake và visual studio
- 8. Thêm một thư mục để một bội số dự án Visual Studio 2010 Template
- 9. GUIDs dự án trong một tệp giải pháp Visual Studio được sử dụng cho là gì?
- 10. Làm cách nào để gỡ lỗi dự án từ một giải pháp khác trong Visual Studio?
- 11. Nhắm mục tiêu cả 32bit và 64bit với Visual Studio trong cùng một giải pháp/dự án
- 12. Chọn dự án nào trong một giải pháp để gỡ lỗi hoặc chạy trong Visual Studio 2010
- 13. Làm thế nào để tạo một dự án Visual Studio mới trong một dự án Visual Studio lập trình?
- 14. Giải pháp Visual Studio trong Qt Creator
- 15. Visual Studio 2008 chuyển đổi dự án hoạt động trong các giải pháp
- 16. TypeScript: Nhiều dự án trong giải pháp
- 17. Mở một thư mục trong Visual Studio 2012
- 18. Dự án Cài đặt Visual Studio: Nhận Thư mục Mục tiêu
- 19. Dự án Visual Studio 2010 cho Visual Studio 2012
- 20. Tạo mẫu giải pháp studio trực quan - nhiều dự án
- 21. Số lượng dự án tối ưu trong giải pháp Visual Studio 2008 là bao nhiêu?
- 22. Visual Studio tạo thư mục ảo IIS khi giải pháp mở
- 23. Mẫu giải pháp Visual Studio - Dự án kiểm soát nguồn liên kết
- 24. Thư mục giải pháp phòng thu trực quan ở cấp độ dự án
- 25. Thư mục giải pháp trong studio trực quan
- 26. Cách tốt nhất để tham khảo thư viện bên ngoài trong nhiều dự án trong giải pháp Visual Studio
- 27. Tệp giải pháp so với tệp Dự án trong Visual Studio
- 28. Chạy hai dự án cùng một lúc trong Visual Studio
- 29. Visual Studio di chuyển dự án sang một thư mục khác
- 30. Có thể đổi tên thư mục "Dự án của tôi" trong dự án Visual Studio 2010 không?
Tôi thích cảm giác thực tế của lubos. – ybakos