Câu hỏi rất hay và câu trả lời không đơn giản. Một số điều cần xem xét. Dưới đây là một vài ý kiến từ kinh nghiệm của tôi cho đến nay.
tắc chung vs Project-Local Sao chép
Một quyết định quan trọng là liệu sử dụng "chung" mã thư viện được cập nhật tự động từ một vị trí trung tâm (của công ty bạn "thư viện tái sử dụng"), hoặc cho dù để giữ bản sao dự án địa phương.
Điều này được thảo luận chi tiết trong this SO question.
Lợi ích của thư viện trung tâm là công việc được thực hiện một lần có thể mang lại lợi ích cho nhiều dự án. Khó khăn với bản sao dự án cục bộ là mọi sửa lỗi và cải tiến không được đóng góp lại vào thư viện trung tâm và mọi sửa lỗi trong thư viện trung tâm có thể không được đưa vào dự án của bạn. Tuy nhiên, một khó khăn tiềm năng khi sử dụng thư viện trung tâm là nếu mọi người sửa đổi nó theo cách không kiểm soát được để phù hợp với dự án của họ, và vô tình phá vỡ các dự án khác. Tôi đã thấy cá nhân đó, trong mã "phổ biến" đã trở thành đầy đủ #ifdef và thường xuyên phá vỡ các dự án khác.
Để có được giá trị tốt ra khỏi mã chung aka trung tâm thư viện tái sử dụng:
Thư viện:
- phải có những yêu cầu rõ ràng, API, và kiểm tra đơn vị
- phải tránh dự án cụ thể mã; cần có mục đích chung là
- cần có cơ chế để đặt rõ ràng các cài đặt cụ thể cho dự án (điều này có thể được xem là một phần của API một cách hiệu quả)
- phải có quy trình phát hành chính thức, với số phiên bản và bản sửa lỗi, sự cố phải được theo dõi.
dự án cá nhân:
- không nên tự động và một cách mù quáng "mới nhất", nhưng sẽ có thể để có được một "phiên bản" đặc biệt với một số phiên bản nhất định. Sau đó, các dự án nên có quyền kiểm soát nếu/khi họ cập nhật lên phiên bản mới hơn. Dự án sẽ có thể theo dõi rõ ràng, "chúng tôi đang sử dụng phiên bản 1.2.3 của thư viện xyz".
- nên tránh "cấm" mã thư viện nếu có thể. Ví dụ. tránh thêm "tính năng" cụ thể của dự án vào mã thư viện.
- nên theo dõi bất kỳ sửa đổi cục bộ nào đối với mã thư viện
- nên coi lỗi là lỗi thư viện, được sửa trong thư viện trung tâm nếu có thể. Công ty cần có các quy trình để sửa chúng trong thư viện trung tâm, kiểm tra thư viện với bộ thử nghiệm đơn vị riêng của nó (có thể cải thiện các bài kiểm tra đơn vị để bắt lỗi trong tương lai). Sau đó phát hành một phiên bản mới của thư viện trung tâm khi cần thiết và triển khai các dự án khác nếu/khi các dự án đó thấy phù hợp.
Nếu một công ty không có quy trình như vậy, thì dự án chỉ cần sao chép cục bộ một đoạn mã (sao chép từ dự án trước) và sau đó chịu trách nhiệm toàn bộ dự án từ đó trở đi. Bạn vẫn nhận được một số lợi ích từ việc tái sử dụng trong tình huống đó, bởi vì bạn không viết lại nó từ đầu.
Dự án Cụ thể cấu hình
Nếu mã cần cấu hình dự án cụ thể, tốt nhất nên được giữ ở càng nhỏ một phần của mã càng tốt - không phân tán thông qua một loạt các tập tin nguồn. Lý tưởng nhất là một tệp tiêu đề duy nhất. Nhưng cũng có thể là một tệp .C (nói, nếu bạn cần xác định một số bảng tra cứu). Thư viện sẽ cung cấp một mẫu, với các tùy chọn được nhận xét tốt.
Để có ví dụ điển hình về cách thực hiện việc này, hãy xem µC/OS-II RTOS (book) của Jean Labrosse, từ Micrium.
Nguồn
2009-11-26 23:50:34