دوره Rust and FFI: Interoperating with C, C++, and Other Languages همراه با فلشکارت آموزشی — ارائه روی فلش مموری
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره Rust and FFI: Interoperating with C, C++, and Other Languages
موضوع کلی: برنامه نویسی
موضوع میانی: راست (Rust)
📋 سرفصلهای دوره
- 1. مقدمهای بر Rust و FFI
- 2. چرا از Rust برای تعامل با زبانهای دیگر استفاده کنیم؟
- 3. نصب و راهاندازی محیط توسعه Rust
- 4. مبانی Cargo: مدیریت پروژهها و وابستگیها
- 5. متغیرها، تغییرپذیری و سایهزنی (Shadowing) در Rust
- 6. انواع دادههای اسکالر: اعداد صحیح، ممیز شناور، بولین و کاراکتر
- 7. انواع دادههای ترکیبی: Tuple و Array
- 8. مقدمهای بر مالکیت (Ownership) در Rust
- 9. قرضگرفتن (Borrowing) و ارجاعها (References)
- 10. لایفتایمها (Lifetimes): تضمین اعتبار ارجاعها
- 11. برشها (Slices): نماهایی از دادههای مجموعهای
- 12. ساختارها (Structs): تعریف انواع داده سفارشی
- 13. شمارشها (Enums) و تطبیق الگو (Pattern Matching)
- 14. کنترل جریان: if, else, loop, while, for
- 15. مدیریت خطا با Result و Option
- 16. رشتهها در Rust: String و &str
- 17. مجموعهها: Vector, HashMap, String
- 18. ژنریکها (Generics): کد قابل استفاده مجدد
- 19. تریتها (Traits): تعریف رفتارهای مشترک
- 20. کلوژرها (Closures) و ایتریتورها (Iterators)
- 21. اشارهگرهای هوشمند: Box, Rc, RefCell
- 22. مقدمهای بر کد ناامن (Unsafe Rust) و کاربردهای آن
- 23. مبانی FFI: Foreign Function Interface چیست؟
- 24. فراخوانی توابع C از Rust: بلوک `extern "C"`
- 25. معرفی crate `libc` برای انواع داده C
- 26. نگاشت انواع داده اولیه Rust به C
- 27. کار با اشارهگرهای خام: `*const T` و `*mut T`
- 28. رشتههای C: کار با `*const c_char`
- 29. تبدیل امن بین رشتههای Rust و C با `CString` و `CStr`
- 30. ارسال رشتهها از Rust به C
- 31. دریافت رشتهها از C در Rust
- 32. تعریف ساختارهای سازگار با C: `#[repr(C)]`
- 33. تراز و پدینگ حافظه در ساختارهای FFI
- 34. ارسال ساختارها به توابع C (بر اساس مقدار و ارجاع)
- 35. شمارشهای سازگار با C: `#[repr(u*)]`
- 36. کار با آرایهها و بافرهای با اندازه ثابت در مرز FFI
- 37. ارسال برشهای Rust به C به عنوان اشارهگر و طول
- 38. کار با اشارهگرهای تابع C در Rust
- 39. مدیریت حافظه در FFI: فراخوانی `malloc` و `free`
- 40. الگوهای مدیریت حافظه: چه کسی مالک است؟
- 41. مدیریت خطا در مرز FFI: کدهای بازگشتی و `errno`
- 42. اشارهگرهای مات (Opaque Pointers) برای پنهانسازی جزئیات پیادهسازی
- 43. کار با توابع متغیر (Variadic Functions) در C
- 44. استفاده از `build.rs` برای کامپایل کد C
- 45. معرفی `bindgen` برای تولید خودکار 바인딩های Rust
- 46. استفاده پایهای از `bindgen`
- 47. پیکربندی `bindgen` برای انواع داده پیچیده
- 48. مقدمهای بر نوشتن کتابخانههای Rust برای زبانهای دیگر
- 49. پیکربندی Cargo برای ساخت کتابخانه پویا (cdylib)
- 50. صادر کردن توابع Rust با `#[no_mangle]` و `extern "C"`
- 51. طراحی یک API سازگار با C برای کتابخانه Rust
- 52. الگوی شیءگرایی در FFI: ایجاد، استفاده و تخریب اشیاء با اشارهگرهای مات
- 53. پیادهسازی سازندهها و تخریبکنندهها برای API
- 54. ارائه توابع Rust که رشتهها را به C برمیگردانند
- 55. الگوی بافر متعلق به فراخواننده (Caller-Owned Buffer Pattern)
- 56. الگوی حافظه اختصاصدادهشده توسط کتابخانه (Library-Allocated Memory Pattern)
- 57. طراحی مکانیزم مدیریت خطا برای API مبتنی بر C
- 58. جلوگیری از Panic در مرز FFI با `catch_unwind`
- 59. پذیرش کالبکها (Callbacks) از C در Rust
- 60. ایمنی و لایفتایم در کالبکهای FFI
- 61. معرفی `cbindgen` برای تولید خودکار هدرهای C
- 62. مطالعه موردی: ساخت یک کتابخانه Rust و استفاده از آن در C
- 63. فراخوانی کتابخانه Rust از Python با استفاده از `ctypes`
- 64. فراخوانی کتابخانه Rust از Node.js با استفاده از `node-ffi-napi`
- 65. فراخوانی کتابخانه Rust از Ruby با استفاده از `Fiddle`
- 66. فراخوانی کتابخانه Rust از C# با استفاده از P/Invoke
- 67. فراخوانی کتابخانه Rust از Java با استفاده از JNI/JNA
- 68. چالشهای تعامل با C++: Name Mangling و Exceptions
- 69. روش پایه: ایجاد یک لایه واسط C برای کد C++
- 70. استفاده از `bindgen` برای تعامل با C++
- 71. معرفی crate `cxx` برای تعامل امن با C++
- 72. راهاندازی یک پروژه با `cxx`
- 73. تعریف دادههای مشترک بین Rust و C++ با `cxx`
- 74. فراخوانی متدهای C++ از Rust با `cxx`
- 75. فراخوانی توابع Rust از C++ با `cxx`
- 76. مدیریت اشارهگرهای هوشمند C++ (مانند `UniquePtr`) در Rust
- 77. مدیریت امن Exceptionهای C++ در مرز FFI
- 78. موضوعات پیشرفته در FFI: همزمانی و نخها
- 79. ایمنی نخ در FFI: مفاهیم Send و Sync
- 80. قراردادهای فراخوانی (Calling Conventions): cdecl, stdcall, و غیره
- 81. پیوند استاتیک در مقابل پیوند دینامیک کتابخانهها
- 82. FFI و برنامهنویسی ناهمگام (Async/Await)
- 83. بهینهسازی عملکرد در مرز FFI
- 84. استفاده از دستورالعملهای SIMD در مرز FFI
- 85. اشکالزدایی (Debugging) مسائل مربوط به FFI
- 86. تست واحد و یکپارچهسازی برای کدهای FFI
- 87. یکپارچهسازی پیشرفته سیستم ساخت: Cargo و CMake
- 88. کامپایل متقاطع (Cross-Compilation) کتابخانههای FFI
- 89. بستهبندی و توزیع کتابخانههای Rust برای زبانهای دیگر
- 90. مطالعه موردی پیشرفته: بازنویسی یک بخش حساس به عملکرد از یک برنامه C++ با Rust
- 91. بررسی ابزارهای اکوسیستم FFI در Rust
- 92. ایمنی در FFI: بهترین شیوهها و الگوها
- 93. خلاصه دوره و نگاهی به آینده FFI در Rust
- 94. **FFI پایهای: فراخوانی توابع C از Rust و برعکس**
- 95. **تبدیل داده بین Rust و C: مدیریت حافظه و انواع داده ناسازگار**
- 96. **ایجاد کتابخانههای C سازگار با Rust: Export کردن توابع و ساختارهای داده**
- 97. **تعامل با C++: استفاده از `bindgen` و مدیریت پیچیدگیهای API**
- 98. **رسیدگی به خطاها در FFI: استراتژیهای انتقال و مدیریت خطاهای بین زبانی**
- 99. **تست و دیباگ FFI: روشهای اطمینان از صحت و پایداری تعامل**
- 100. **بهینهسازی عملکرد FFI: کاهش سربار و بهبود سرعت تعامل بین زبانها**
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.