Tôi đang tìm kiếm một tài nguyên tốt để tìm hiểu về thiết kế API tốt cho các thư viện C ++, xem các đối tượng / dll được chia sẻ, v.v. Có rất nhiều tài nguyên về cách viết API đẹp, các lớp đẹp, các mẫu, v.v. đặt mọi thứ lại với nhau trong libs chia sẻ và thực thi. Những cuốn sách như Thiết kế phần mềm C ++ quy mô lớn của John Lakos rất thú vị nhưng đã lỗi thời.
Những gì tôi đang tìm kiếm là lời khuyên tức là về việc xử lý các mẫu. Với các mẫu trong API của tôi, tôi thường kết thúc với mã thư viện trong tệp thực thi của mình (hoặc thư viện khác) vì vậy nếu tôi sửa một lỗi trong đó, tôi không thể đơn giản tung ra thư viện mới mà phải biên dịch lại và phân phối lại tất cả các máy khách của mã đó. (và vâng, tôi biết một số giải pháp như cố gắng khởi tạo ít nhất các phiên bản phổ biến nhất trong thư viện, v.v.)
Tôi cũng đang tìm kiếm sự cẩn thận khác và những điều cần lưu ý để giữ khả năng tương thích nhị phân trong khi làm việc trên các thư viện C ++.
Có một trang web hay cuốn sách về những điều như vậy?
std::unique_ptr
là thứ khá mới. Chính xác thì bạn nghĩ gì phù hợp hơn về API đề xuất của bạn? Cách mà bạn phải quản lý thủ công tất cả các tài nguyên, hầu như đảm bảo rò rỉ và xóa hai lần, chẳng hạn? Hoặc cách mà nhiều loại của bạn có một hoặc hai tên chữ cái, khiến cho mục đích của chúng không thể thực hiện được?
unique_ptr
nó sẽ không thể viết mã như vậy.