2009-03-11 23 views
11

Tôi có một mã nguồn đáng kể (OOFILE) mà tôi là cuối cùng là đặt trên Sourceforge. Tôi cần phải quyết định nếu tôi nên đi với một thư mục bao gồm nguyên khối hoặc giữ các tập tin tiêu đề với cây nguồn.Tệp C++ Header - đặt chúng trong một thư mục hoặc được hợp nhất trong cấu trúc cây?

Tôi muốn đưa ra quyết định này trước khi đẩy tới repo svn trên SourceForge. Tôi hy vọng rất nhiều người sử dụng nó sau khi di chuyển sẽ giữ một bản sao làm việc kiểm tra trực tiếp từ SF vì vậy sẽ không muốn thay đổi cấu trúc của họ.

Cây nguồn đầy đủ có khoảng 262 tệp trong 25 thư mục. Có rất nhiều lớp học nhiều hơn là gợi ý là do phù hợp với 8,3 ký tự tên (có nó ngày trở lại Win3.1) nhiều lớp học trong một tập tin. Khi tôi sử dụng để phát triển với ObjectMaster, điều đó không bao giờ làm phiền tôi nhưng tôi sẽ chia nhỏ nó để phù hợp với các xu hướng gần đây hơn để giảm thiểu số lượng lớp học cho mỗi tệp. Từ một skim nhanh chóng của class list, có khoảng 600 lớp học.

OOFILE là sản phẩm đa nền tảng dự kiến ​​sẽ được xây dựng trên nền tảng Mac, Windows và các loại Unix. Khi nó bắt đầu cuộc sống trên Mac, với trình biên dịch trỏ đến bao gồm cây thay vì phẳng bao gồm dirs, tiêu đề được giữ lại với nguồn.

Sau đó, chủ yếu để giữ cho một số người dùng Visual Studio hài lòng, một bản dựng được tổ chức lại với một thư mục bao gồm. Tôi đang cố gắng lựa chọn giữa các mô hình đó.

Toàn bộ sản phẩm OOFILE bao gồm khá nhiều lĩnh vực:

  • cơ sở dữ liệu front-end
  • loạt các backends cơ sở dữ liệu
  • engine đồ họa 2D đơn giản cho
  • báo cáo nhân vật chế độ đơn giản Mac và Windows -người viết cho danh sách văn bản và html tầm thường
  • trình tạo báo cáo dải rất phong phú với Mac và Xem trước và in Windows và tạo các báo cáo văn bản, RTF, HTML và XML đa nền tảng động cơ tích hợp
  • hình thức cho các hình thức CRUD dễ dàng liên kết với các cơ sở dữ liệu, với việc triển khai trên PowerPlant và MFC
  • cross-platform lớp tiện ích
    • file và thao tác thư mục
    • chuỗi
    • mảng
    • XML và tạo thẻ

Nhiều người chỉ muốn sử dụng nó trên một nền tảng duy nhất và một số khu vực mã đó là di sản thuần túy (ví dụ: khung giao diện người dùng PowerPlant trên máy Mac cổ điển). Do đó, có vẻ như mọi người sẽ đánh giá cao không có tiêu đề từ những khu vực không mong muốn được bán phá giá trong thư mục bao gồm nguyên khối của họ.

Tôi bắt đầu nghĩ đến việc có một thư mục bao gồm được chia thành một vài tên miền ở trên và sau đó nhận ra rằng nó có vẻ giống cấu trúc ban đầu hơn.

Nói tóm lại, sự lựa chọn dường như là:

  1. Giữ mô hình ban đầu, tất cả các tiêu đề tiếp giáp với nguồn - sự linh hoạt tối đa với chi phí của một số phức tạp bao gồm các dự án.
  2. một thư mục bao gồm mọi thứ bên trong
  3. chia nhỏ bao gồm theo miền, do đó có thể có khoảng 6 thư mục cho ai đó đang sử dụng lô nhưng người dùng cơ sở dữ liệu thuần túy có thể có một thư mục.

Từ một khía cạnh xây dựng Unix, các recommended structure đã 2. Tình hình của tôi rất phức tạp do cần phải giữ cho Visual Studio và XCode người dùng hài lòng (sniff, CodeWarrior, làm thế nào tôi há bỏ lỡ ngươi!).

Edit - giải pháp lựa chọn:

tôi đã đi với four subdirectories trong bao gồm. Tôi bắt đầu cố gắng chia chúng ra xa hơn bằng nền tảng nhưng nó chỉ rất ồn ào rất nhanh.

Trả lời

6

Cá nhân tôi sẽ đi với 2 hoặc 3 nếu thực sự bị đẩy.

Nhưng bất cứ điều gì bạn chọn, hãy làm cho nó rõ ràng trong hướng dẫn xây dựng cách thiết lập đường dẫn bao gồm. Không có gì làm cho một dự án mã nguồn mở trở nên khó khăn để xây dựng - các nhà phát triển muốn trải nghiệm nhanh hơn và nếu nó liên quan đến nhiều biến môi trường không có giấy tờ (hoặc bất kỳ thứ gì) thì sẽ biến mất.

+0

Phiên bản đầu tiên của Visual C++ không hỗ trợ đường dẫn tương đối vì vậy chúng tôi phải sử dụng ít nhất một biến môi trường nhưng tôi biết ý bạn là gì! –

+0

Được đánh dấu là được chấp nhận chỉ để loại bỏ lưng tôi. Không thực sự ;-) Điểm về đường dẫn bao gồm là lời nhắc thực sự tốt. –

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