کتاب صوتی Rust and FFI: Interoperating with C, C++, and Other Languages
دوره آموزشی Rust و FFI: تعامل با C، C++ و زبانهای دیگر Rust و FFI: قفل قابلیت همکاری را باز کنید و دنیای کد را گسترش دهید معرفی دوره: فراتر از مرزهای زبانی آیا شما یک توسعهدهنده مشتاق هستید که به دن...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره 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: کاهش سربار و بهبود سرعت تعامل بین زبانها**
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
C#
FFI
Foreign Function Interface
Interop
Programming
Rust
Rust and FFI
Rust programming
Rust و C
برنامه نویسی
زبان C++
زبان های دیگر
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.