Tôi sắp tải lên một dự án tôi đang làm việc trên Sourceforge theo GPL và hy vọng sẽ nhận được một số lời khuyên về cách tổ chức mã theo cách dễ hiểu và dễ sử dụng bởi bất kỳ nhà phát triển nào có thể nhìn vào nó, hoạt động tốt với git, và cách Sourceforge trình bày mọi thứ.Tôi sắp mở một dự án C++ trên Sourceforge. Tôi có thể nhận một số mẹo về tổ chức mã không?
dự án của tôi là một ứng dụng C++ cross-platform, và bao gồm các nội dung sau:
- Một phần thư viện, mà hiện các công việc thực tế
- Một phần GUI riêng biệt, trong đó sử dụng các phần thư viện
- Thư viện nguồn mở, có chứa đường dẫn cần thiết để biên dịch thư viện
- Thư viện nguồn mở đã sửa đổi, và đã được thay đổi, và do đó có nghĩa là một phần trực tiếp của dự án này là
- Kết quả biên dịch của tất cả các thư viện
Cách tốt nhất để tổ chức này là gì?
Trong khi làm việc trên đó bản thân mình, từ gốc dự án Tôi có nó như thế này:
/LibPortion
/GuiPortion
/libs/thư viện nguồn mở
thư viện /libs/sửa đổi mã nguồn mở
/libs/biên dịch/để giữ các thư viện đã biên dịch, bao gồm khi biên dịch cho Windows một số thư viện không phải từ thư viện nguồn mở, chẳng hạn như các tệp thư viện Cygwin
Đây có phải là cách hợp lý để tổ chức mọi thứ không? Điều đó có phù hợp với quy ước và kỳ vọng không?
Khi kiểm tra trong dự án của tôi, bạn có nên kiểm tra trong thư viện nguồn mở cũng như một phần của dự án không? Tôi thấy rằng nó làm cho tinh thần để làm như vậy, bởi vì điều đó giảm thiểu ma sát với việc thiết lập dự án và chạy cho một dev mới. Chắc chắn tôi nên ít nhất là kiểm tra trong thư viện mã nguồn mở đã sửa đổi.
Ngoài ra, có ý nghĩa gì khi đưa vào kho lưu trữ trong thư viện được biên dịch? Tôi nghĩ rằng tốt nhất nên nói với git bỏ qua thư mục đó và để trống nó, vì nội dung của nó sẽ khác nhau trên mọi mục tiêu xây dựng, vì dự án của tôi là nền tảng chéo. Tuy nhiên, nó cũng có vẻ thực sự tốt cho những người không muốn gặp rắc rối với việc xây dựng và/hoặc tải xuống tất cả các thư viện để cung cấp các thư viện được biên dịch trước cho các nền tảng chính. Cách thông minh nhất để chia sẻ chúng là gì? Tôi đang nhìn vào Sourceforge, và nó không dễ dàng cho tôi biết cách tôi nên chia sẻ những thứ đó nếu không phải là một phần của kho lưu trữ git của tôi.
@nantucket Chừng nào không phải là điều thực sự khủng khiếp gì quan trọng nhất được ghi lại tất cả - từ cách nguồn được cấu trúc một cách xây dựng một thực thi và thực hiện một phiên bản có thể triển khai. Tôi thường kiểm tra thư viện mã nguồn khi thực hiện các dự án Windows và dựa vào các thư viện và các gói đã cài đặt khi bạn sử dụng Linux. Nếu tôi cần phải làm cả hai, tôi cũng kiểm tra trong thư viện. Nhưng từ khóa là: * tài liệu * tất cả. –