کتاب صوتی Rust Metaprogramming: Macros and Code Generation
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره Rust Metaprogramming: Macros and Code Generation
موضوع کلی: برنامه نویسی
موضوع میانی: راست (Rust)
📋 سرفصلهای دوره
- 1. آشنایی با متاپروگرمینگ در زبان Rust
- 2. مقدمهای بر ماکروها در Rust
- 3. انواع ماکروها: ماکروهای اعلامی
- 4. انواع ماکروها: ماکروهای تابعی
- 5. انواع ماکروها: ماکروهای نمایشی
- 6. نحو ماکروها: declarative macros
- 7. نحو ماکروها: procedural macros
- 8. استفاده از `macro_rules!` برای تعریف ماکروهای ساده
- 9. نوشتن اولین ماکروی اعلامی
- 10. قوانین تطابق الگو در `macro_rules!`
- 11. متغیرهای الگو در `macro_rules!`
- 12. استفاده از `tt` (token tree) در `macro_rules!`
- 13. مدیریت خطا در ماکروهای اعلامی
- 14. مثالهای عملی ماکروهای اعلامی
- 15. ماکروهای نمایشی (Derive Macros)
- 16. ساختار ماکروهای نمایشی
- 17. تعریف ماکروهای نمایشی سفارشی
- 18. پیادهسازی traitهای استاندارد با ماکروهای نمایشی
- 19. مثال: پیادهسازی `Debug` با ماکروی نمایشی
- 20. مثال: پیادهسازی `Clone` با ماکروی نمایشی
- 21. مثال: پیادهسازی `Default` با ماکروی نمایشی
- 22. محدودیتهای ماکروهای نمایشی
- 23. ماکروهای تابعی (Function-like Macros)
- 24. ساختار ماکروهای تابعی
- 25. نوشتن اولین ماکروی تابعی
- 26. پردازش ورودی در ماکروهای تابعی
- 27. تولید کد با ماکروهای تابعی
- 28. مثال: ماکروی `println!`
- 29. مثال: ماکروی `format!`
- 30. مثال: ماکروی `vec!`
- 31. مدیریت خطا در ماکروهای تابعی
- 32. مقایسه ماکروهای اعلامی و تابعی
- 33. استفاده از crateهای کمکی برای نوشتن ماکروها
- 34. `syn` برای تجزیه کد Rust
- 35. `quote` برای تولید کد Rust
- 36. `proc-macro2` برای توابع کمکی `proc-macro`
- 37. نصب و استفاده از `syn` و `quote`
- 38. مثال: ساخت یک ماکروی نمایشی با `syn` و `quote`
- 39. مثال: ساخت یک ماکروی تابعی با `syn` و `quote`
- 40. تست کردن ماکروها
- 41. استفاده از `#[test]` برای تست ماکروها
- 42. تستهای واحد برای ماکروهای اعلامی
- 43. تستهای واحد برای ماکروهای نمایشی
- 44. تستهای واحد برای ماکروهای تابعی
- 45. تکنیکهای پیشرفته در ماکروها
- 46. ایجاد Domain Specific Languages (DSLs) با ماکروها
- 47. DSLs برای ساختارهای داده
- 48. DSLs برای تعریف state machines
- 49. DSLs برای تعریف grammarها
- 50. بهینهسازی عملکرد ماکروها
- 51. زمان کامپایل و زمان اجرا
- 52. تاثیر ماکروها بر زمان کامپایل
- 53. کاهش پیچیدگی کد با ماکروها
- 54. مدیریت وابستگیها در ماکروها
- 55. نوشتن ماکروهای قابل استفاده مجدد
- 56. انتشار ماکروها به عنوان crate
- 57. ملاحظات امنیتی در استفاده از ماکروها
- 58. جلوگیری از تولید کدهای ناامن
- 59. بررسی ورودی ماکروها
- 60. ماکروها و metaprogramming در زبانهای دیگر
- 61. مقایسه با templateهای C++
- 62. مقایسه با macros در Lisp
- 63. مقایسه با decorators در Python
- 64. کاربرد عملی ماکروها در پروژههای Rust
- 65. کتابخانههای محبوب Rust که از ماکروها استفاده میکنند
- 66. `serde` برای سریالایز و دیسریالایز
- 67. `log` برای لاگینگ
- 68. `thiserror` و `anyhow` برای مدیریت خطا
- 69. `clap` برای پردازش آرگومانهای خط فرمان
- 70. ساخت یک Domain Specific Language برای پیکربندی
- 71. ساخت یک DSL برای عملیات پایگاه داده
- 72. ساخت یک DSL برای تعریف APIها
- 73. ملاحظات طراحی ماکروهای خوب
- 74. خوانایی کد تولید شده
- 75. قابلیت دیباگ کردن کد تولید شده
- 76. مستندسازی ماکروها
- 77. مثالهای پیشرفته: ماکروی `lazy_static`
- 78. مثالهای پیشرفته: ماکروی `println!` عمیقتر
- 79. مثالهای پیشرفته: ماکروی `cfg!`
- 80. مثالهای پیشرفته: ماکروی `asm!`
- 81. پردازش کد در زمان کامپایل
- 82. تکنیکهای code generation
- 83. استفاده از AST (Abstract Syntax Tree)
- 84. تولید کد از دادهها
- 85. استفاده از ماکروها برای انتزاع پیچیدگی
- 86. انتزاع در سطح type
- 87. انتزاع در سطح value
- 88. تولید کد تکراری (boilerplate code)
- 89. اهمیت Rust's macro system
- 90. قدرت و انعطافپذیری ماکروها
- 91. کاربرد در توسعه بازی
- 92. کاربرد در سیستمهای توزیع شده
- 93. کاربرد در ابزارهای خط فرمان
- 94. کاربرد در فریمورکهای وب
- 95. محدودیتهای متاپروگرمینگ در Rust
- 96. محدودیتهای زمان کامپایل
- 97. محدودیتهای پیچیدگی
- 98. آینده متاپروگرمینگ در Rust
- 99. پیشرفتهای آینده در سیستم ماکرو
- 100. ابزارهای جدید برای توسعه ماکرو
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
sp.express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.