اپلیکیشن اندرویدی فلشکارت آموزشی 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: کاهش سربار و بهبود سرعت تعامل بین زبانها**
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.