Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ดีไซน์แพตเทิร์นสำหรับ FFI (FFI Patterns)

การเขียนโค้ดติดต่อกับภาษาภายนอก (FFI) ถือเป็นศาสตร์ที่มีเนื้อหากว้างขวางและลึกซึ้งในตัวเอง อย่างไรก็ดี ในหัวข้อนี้มีแบบแผนการออกแบบที่ช่วยทำหน้าที่เป็นเข็มทิศนำทาง และช่วยหลีกเลี่ยงกับดักอันตรายสำหรับผู้ที่ยังไม่คุ้นเคยกับการเขียน unsafe Rust

ส่วนนี้รวบรวมดีไซน์แพตเทิร์นที่มีประโยชน์อย่างยิ่งเมื่อต้องทำ FFI:

  1. API แบบอิงออบเจกต์ (Object-Based API) — การออกแบบ API ที่มีคุณสมบัติด้านความปลอดภัยของหน่วยความจำที่ดีเยี่ยม และมีเส้นแบ่งที่ชัดเจนระหว่างส่วนที่ปลอดภัย (safe) กับส่วนที่ไม่ปลอดภัย (unsafe)

  2. การรวมชนิดข้อมูลเข้าสู่ตัวห่อหุ้ม (Type Consolidation into Wrappers) — การจัดกลุ่มชนิดข้อมูล Rust หลายตัวเข้าด้วยกันให้อยู่ในรูปของ “ออบเจกต์” ที่ซ่อนรายละเอียดภายใน (opaque object)