C++ vẫn là ngôn ngữ phát triển và các tính năng mới đang được thêm vào trong nhiều năm. Một trong những tính năng mà tôi bỏ lỡ trong C++ là một khái niệm mô-đun thích hợp: cách tiếp cận hiện tại bằng cách sử dụng các tệp tiêu đề (nơi bạn sử dụng điều kiện #define để đảm bảo rằng tiêu đề không được bao gồm hai lần) dường như chắc chắn không thỏa mãn với tôi. Ví dụ, trong dự án của tôi, chúng tôi có vấn đề rằng chúng tôi có quá nhiều "#include" trong nhiều tệp nguồn, làm cho thời gian biên dịch không cần thiết lâu: mất 45 phút để xây dựng sản phẩm của chúng tôi, sử dụng Incredibuild, tức là sử dụng ít nhất 10 lõi song song. Do đó, chúng tôi phải dành rất nhiều thời gian để dọn dẹp các tệp theo cách thủ công, tức là việc xóa bao gồm để kiểm tra xem chúng có thực sự cần thiết hay không.Mô-đun khái niệm cho C++
Tôi nghĩ rằng nó sẽ rất hữu ích để có một khái niệm mô-đun mà làm cho nó có thể để
- tách rõ giao diện từ việc thực hiện một mô-đun;
- biên dịch giao diện và phần thân của mô-đun riêng biệt (hiện tại các tệp .h được biên dịch lặp đi lặp lại mỗi khi chúng được bao gồm trong các tệp khác): một công cụ có thể đọc giao diện đã biên dịch và cho biết loại, chức năng, lớp nào xuất khẩu;
- viết các công cụ để tự động sắp xếp lại hàng nhập dễ dàng hơn (ví dụ: với Java/Eclipse, có thể sắp xếp lại tất cả các tệp nhập tự động).
Bạn có nghĩ rằng có thể xác định khái niệm mô-đun như vậy và tích hợp nó vào C++ hoặc quá phức tạp không? Bạn có biết bất kỳ nỗ lực nào theo hướng này không?
EDIT
Cảm ơn đã gợi ý về tiêu đề biên dịch sẵn. Tôi sẽ thử nó nếu có thể (Chúng tôi sử dụng Visual Studio 2008). Có thể chúng tôi đang sử dụng các tệp tiêu đề theo cách sai (?) Chúng tôi sử dụng một tệp tiêu đề cho mỗi lớp. Sau đó, chúng tôi có một tập tin cpp với việc thực hiện lớp. Thường thì chúng tôi kết thúc với các tệp cpp bao gồm 30, 40 tệp tiêu đề. Khi chúng ta thay đổi tệp cpp, một số bao gồm không cần nữa, nhưng rất khó để tìm ra cái nào. Điều này một phần liên quan đến thực tế là các tệp tiêu đề bao gồm các tệp tiêu đề khác.
Chúng tôi dành quá nhiều thời gian sắp xếp lại hàng nhập và có vẻ như không tồn tại một công cụ có thể thực hiện điều này tự động. Nó sẽ giúp chúng ta tiết kiệm rất nhiều thời gian.
Tôi muốn thấy công cụ tìm kiếm bao gồm cây bao gồm không chứa bất kỳ biểu tượng được sử dụng nào. Nó thực sự là khó khăn để giữ bao gồm sạch sẽ khi thay đổi trong các nguồn được thực hiện. – Salw
Tôi không chắc câu đầu tiên của bạn là sự thật. Tiêu chuẩn C++ 11 đã được hoàn thành một thời gian dài trước đây, được chấp nhận một thời gian ngắn trước đây và được xuất bản tuần trước; Tôi nghi ngờ bất cứ ai là thêm các tính năng cho nó vào thời điểm này. –
@Kerrek SB: Tôi đã thay đổi văn bản xóa tham chiếu đến C++ 0x. Cám ơn vì sự gợi ý. – Giorgio