ฉันกำลังมองหาแหล่งข้อมูลที่ดีสำหรับการเรียนรู้เกี่ยวกับการออกแบบ API ที่ดีสำหรับไลบรารี C ++, การดูออบเจกต์ร่วม / dll เป็นต้นมีทรัพยากรมากมายในการเขียน API ที่ดี, คลาสที่ดี, เทมเพลตและอื่น ๆ ในระดับซอร์ส วางสิ่งต่าง ๆ เข้าด้วยกันใน libs และ executables ที่ใช้ร่วมกัน หนังสือเช่นการออกแบบซอฟต์แวร์ C ++ ขนาดใหญ่โดย John Lakos มีความน่าสนใจ แต่ล้าสมัยอย่างมาก
สิ่งที่ฉันกำลังมองหาคือคำแนะนำเช่นในการจัดการแม่แบบ ด้วยเทมเพลตใน API ของฉันฉันมักจะจบลงด้วยรหัสห้องสมุดในแฟ้มที่ปฏิบัติการได้ของฉัน (หรือไลบรารีอื่น ๆ ) ดังนั้นถ้าฉันแก้ไขข้อบกพร่องที่นั่นฉันไม่สามารถเปิดไลบรารีใหม่ได้ แต่ต้องคอมไพล์ใหม่และแจกจ่ายลูกค้าทั้งหมดของรหัสนั้น (และใช่ฉันรู้วิธีแก้ปัญหาบางอย่างเช่นพยายามสร้างอินสแตนซ์ที่พบบ่อยที่สุดในห้องสมุดเป็นต้น)
ฉันกำลังมองหาคำเตือนและข้อควรระวังอื่น ๆ เพื่อรักษาความเข้ากันได้ของไบนารีในขณะที่ทำงานกับไลบรารี C ++
มีเว็บไซต์หรือหนังสือที่ดีในเรื่องดังกล่าวหรือไม่?
std::unique_ptr
เป็นสิ่งใหม่ที่สวย คุณคิดว่าอะไรที่เหมาะสมกับ API ที่คุณเสนอมากขึ้น วิธีที่คุณต้องจัดการทรัพยากรทั้งหมดด้วยตนเองรับประกันการรั่วไหลและการลบซ้ำซ้อนอย่างแท้จริงหรือไม่? หรือวิธีการที่หลายประเภทของคุณมีชื่อหนึ่งหรือสองตัวอักษรทำให้วัตถุประสงค์ของพวกเขาเป็นไปไม่ได้?
unique_ptr
มันจะไม่สามารถเขียนโค้ดแบบนั้นได้