تسلط به زبان برنامه نویسی Rust - مبتدی تا پیشرفته
✅ سرفصل و جزئیات آموزش
در این دوره (آخرین نسخه) برنامه نویسی Rust را گام به گام با تمرینات عملی، از مبانی تا سطوح پیشرفته می آموزید.
آنچه یاد خواهید گرفت
- مفاهیم اساسی زبان برنامه نویسی Rust
- قوانین مالکیت و borrowing
- مرجع ها
- رشته و اسلایس رشته
- package manager و سیستم بیلد (Cargo) در Rust
- ساختارها و Enums
- تست واحد در Rust
- Lifetimes
- مدیریت خطا
- تطبیق الگو
- حلقه ها و تصمیم گیری
- موارد بیشتری هنوز در راه است (جنریک ها، traits، آبجکت های traits، اشاره گرهای هوشمند، closures ،iterators و موارد دیگر)
پیش نیازهای دوره
- هیچ دانش قبلی برنامه نویسی مورد نیاز نیست.
- ویژوال استودیو کد مایکروسافت نصب شود.
توضیحات دوره
آیا می خواهید یک زبان برنامه نویسی جدید یاد بگیرید؟
زبان برنامه نویسی Rust چطور؟
Rust به دلیل ایمنی و عملکرد حافظه آن به طور فزاینده ای در برنامه نویسی در سطح سیستم محبوب می شود. Rust یک رقیب قوی برای ++C است و برای کسانی که به دنبال ارتقای مهارت های برنامه نویسی در سطح سیستم خود هستند عالی است. چه مبتدی یا برنامه نویس باتجربه باشید، Rust مجموعه ابزار مدرن و قدرتمندی را برای نیازهای توسعه شما ارائه می دهد.
یادگیری Rust درهایی را به روی برنامه نویسی با عملکرد بالا، ایمن و قابل اعتماد در سطح سیستم باز می کند.
یافته های نظرسنجی توسعه دهندگان Stack Overflow 2023 نشان می دهد که Rust تحسین برانگیزترین زبان است، بیش از 80 درصد از توسعه دهندگانی که از آن استفاده می کنند می خواهند سال آینده دوباره از آن استفاده کنند.
پاسخ دهندگان بیشتری نسبت به رقبای برتر مایل به ادامه استفاده از Cargo (package manager رسمی Rust) در سال آینده هستند.
چرا باید به یادگیری Rust فکر کنید؟
پاسخ های زیادی وجود دارد، اما در اینجا به موارد مهم اشاره شده است:
- ایمنی حافظه بدون garbage collection
- همزمانی بهتر بدون رقابت داده
- کد ایمن و ناایمن
- انتزاعات سازگار با عملکرد
- Rust به سرعت C و ++C طراحی شده است.
- ابزارها و اکوسیستم عالی (Cargo (package manager و سیستم بیلد)، rustfmt (فرمت بندی کد)، clippy (linting) و یک کتابخانه استاندارد جامع
- پشتیبانی از تست داخلی
- پشتیبانی از اصول کلیدی برنامه نویسی شی گرا
مباحث مهمی که در این دوره پوشش داده شده است:
- متغیرها و تایپ های داده primitive
- مالکیت و Borrow
- کپی و انتقال سمانتیک ها
- تاپل ها و تطبیق الگو
- تصمیم گیری و حلقه ها
- Structs و تطبیق الگو
- Enums و تطبیق الگو
- متدهای Struct و Enum و توابع انجمنی
- اسلایس ها
- رشته، اسلایس رشته و رمزگذاری UTF
- Lifetimes
- Traits
- جنریک ها
- Closures
- مباحث بیشتر در آینده (Iterators ،multi-thread، اشاره گرهای هوشمند و غیره) - ما دائماً این دوره را بروز می کنیم تا مطمئن شویم که شما آخرین دانش و مهارت ها را در اختیار دارید.
این دوره برای چه کسانی مناسب است؟
- کسی که علاقه مند به یادگیری یک زبان برنامه نویسی جدید در سطح سیستم است.
- دانشجویان و متخصصان که به دنبال افزایش مهارت های خود هستند.
تسلط به زبان برنامه نویسی Rust - مبتدی تا پیشرفته
-
مقدمه 03:23
-
Rust چه تفاوتی با سایر زبان های برنامه نویسی دارد؟ تغییر ناپذیری؟ 05:02
-
Barrowing 08:09
-
Rust به طور خودکار حافظه heap را deallocate می کند 02:42
-
ویژگی های مربوط به type inference، مالکیت، مدیریت خطا و اشاره گر معلق 10:25
-
ایجاد، ساخت و اجرای برنامه Rust 12:15
-
چاپ ماکروهای مرتبط در Rust 07:29
-
()!format و جایبان های نامگذاری شده 08:15
-
Exercise-diy-1 01:45
-
ابزارهای مفید cargo 16:03
-
چاپ در فرمت های هگز و باینری 02:28
-
r و #r - تگ گذاری رشته ها 07:28
-
توضیح متغیرها، تغییرپذیری و تایپ های داده 32:27
-
کلیدواژه 'as' و ذخیره مقادیر ASCII 08:20
-
تایپ داده char 07:49
-
آرایه و تکرار آرایه 13:55
-
عملگرهای حساب و حاشیه نویسی های shorthand 08:02
-
نوشتن یک تابع در Rust 16:17
-
تست واحد 08:25
-
نوشتن موارد تست 16:45
-
کتابخانه استاندارد ماکروها را assert می کند 16:46
-
نوشتن موارد تست - ادامه 15:04
-
منابع 08:34
-
Borrow ،Borrower و Referent 14:06
-
تایپ داده اسلایس 22:47
-
توابع کتابخانه از تایپ داده اسلایس 10:14
-
استفاده از if..else به عنوان دستورات و عبارات 11:56
-
دستور "match" 18:17
-
استفاده از if..else if..else و if let..else if let...else 07:18
-
عملگرهای منطقی و مقایسه 10:18
-
عملگرهای بیتی 16:01
-
رشته ها در Rust 21:15
-
رشته ها و فرمت UTF-8 04:40
-
اسلایس یک رشته 10:28
-
تبدیل رشته به اسلایس و بالعکس 04:45
-
الحاق رشته 08:01
-
ایندکس گذاری رشته 17:36
-
Exercise-diy-7 - بخش 1 14:38
-
Exercise-diy-7 - بخش 2 12:40
-
Exercise-diy-7 - بخش 3 06:56
-
مالکیت، Move و Copy semantics 17:13
-
فراخوانی بر اساس مقدار و فراخوانی بر اساس مرجع 06:43
-
دستورات حلقه در Rust 13:43
-
روش های مختلف Iteration با استفاده از حلقه for..in 09:13
-
راه حل 01:26
-
حلقه های while و while let 09:09
-
تایپ داده تاپل 11:06
-
تطبیق الگو با تاپل ها 20:35
-
تطبیق تاپل و Move 04:28
-
کلیدواژه Ref 05:05
-
ایجاد و مقداردهی اولیه یک Struct 08:39
-
آیا Struct یک move است یا copy؟ 17:12
-
trait پیش فرض و Struct 06:13
-
Tuple struct و Unit struct 08:39
-
نوشتن متدهای Struct 13:02
-
تابع مرتبط به عنوان Constructor یک Struct 10:00
-
تطبیق الگو با Struct 10:58
-
کاربرد ref و @ در تطبیق الگو با Struct 02:02
-
تعریف Enum در Rust 21:59
-
متدها و توابع انجمنی Enum 10:38
-
تطبیق الگو با استفاده از Enums 07:19
-
تایپ <Option<T 15:40
-
کاربرد <Option<T 11:21
-
آشنایی با بردارها 09:26
-
under the hood بردارها 07:17
-
ایندکس گذاری برداری 11:00
-
اسلایس یک بردار 04:40
-
متدهای برداری - ()push و ()pop و ()shrink_to_fit 06:51
-
Exercise-diy-11 08:43
-
متدهای برداری - ()drain و ()extract_if 10:13
-
متدهای برداری - ()retain و ()retain_mut 07:35
-
متدهای برداری - ()split و friends 09:28
-
متدهای برداری - ()splice و ()append و ()extend 07:51
-
متدهای برداری - prepend با استفاده از ()index و ()splice 05:12
-
VecDeque 11:00
-
HashMap و متدهای آن - بخش 1 14:50
-
HashMap و متدهای آن - بخش 2 11:39
-
<Enum Result<T, E 01:46
-
مدیریت خطا با استفاده از Result<T, E> enum 10:49
-
تمرین در <Result<T, E 03:56
-
عملگر پس انتشار خطا (؟) 05:56
-
تبدیل <Option<T به تایپ <Result<T, E 05:12
-
متدهای ()unwrap و ()expect 03:31
-
()unwrap_err 05:23
-
تایپ های خطای کتابخانه 04:20
-
مدیریت std::io::Error 16:22
-
خطاهای عددی - تمرین 02:21
-
خطاهای عددی - ادامه تمرین 08:02
-
تمرین درباره تبدیل خطا 02:04
-
تمرین درباره تبدیل خطا - ادامه 13:29
-
استفاده از ()map_err 05:30
-
تبدیل خودکار خطاها 02:31
-
سینتکس جنریک ها و نوشتن توابع جنریک 17:26
-
تابع با پارامترهای چندگانه تایپ جنریک 01:59
-
structs و Enums جنریک 12:35
-
Lifetime و اسکوپ 12:57
-
مثال حاشیه نویسی های Lifetime 24:25
-
قوانین Lifetime elision 12:21
-
حاشیه نویسی های Lifetime با structs 03:21
-
حاشیه نویسی های Lifetime با structs - ادامه 06:18
-
حاشیه نویسی های Lifetime با متدهای struct 22:05
-
.Const و متغیرهای استاتیک 07:39
-
آشنایی با Trait و متدهای Trait 15:20
-
تایپ های انجمنی یک Trait 11:52
-
تمرین - پیاده سازی trait نمایش برای ساختار تعریف شده توسط کاربر - بخش 1 07:08
-
تمرین - پیاده سازی trait نمایش برای ساختار تعریف شده توسط کاربر - بخش 2 10:06
-
تمرین - پیاده سازی trait نمایش برای ساختار تعریف شده توسط کاربر - بخش 3 05:08
-
مرزهای Trait 11:14
-
آبجکت های Trait و جداول مجازی 13:56
-
باکس کردن DST 09:49
-
طرح بندی حافظه <Box<dyn Trait 02:22
-
آشنایی با Closures و سینتکس 08:10
-
محیط ضبط Closure 13:14
-
Traits انجمنی با closures 06:05
-
رفتار متغیرهای closure 04:47
-
ارسال closure به عنوان آرگومان به یک تابع - بخش 1 07:17
-
ارسال closure به عنوان آرگومان به یک تابع - بخش 2 14:37
-
Closures به عنوان فیلدهای عضو Struct [استفاده از آبجکت Trait] 10:30
-
طرح بندی حافظه برنامه 03:12
-
تایپ های Closures 05:58
-
تمرین درباره Closure 05:15
-
Closures به عنوان فیلدهای عضو Struct [با استفاده از جنریک ها] 10:03
-
Closures و مدیریت رویداد 13:29
-
آشنایی با Iterators 08:53
-
درباره ''Trait ''Iterator 02:19
-
ایجاد iterator سفارشی 14:08
-
Iterating روی iterator سفارشی بر اساس مقدار، borrow تغییر پذیر و تغییرناپذیر 11:54
-
ایجاد iterator سفارشی - ریفکتور کردن متد "next" 20:26
-
''Trait ''Iterator در مقابل ''Trait ''IntoIterator 10:00
-
تمرین - پیاده سازی iterator سفارشی 06:08
-
راه حل - پیاده سازی iterator سفارشی 21:12
-
پیاده سازی ''Trait ''IntoIterator برای یک تایپ سفارشی - بخش 1 09:26
-
پیاده سازی ''Trait ''IntoIterator برای یک تایپ سفارشی - بخش 2 04:23
-
پیاده سازی ''Trait ''IntoIterator برای یک تایپ سفارشی - بخش 3 11:48
-
پیاده سازی ''Trait ''IntoIterator برای یک تایپ سفارشی - بخش 4 - راه حل 11:34
-
متدهای Iterator 09:28
-
()or_each به عنوان جایگزینی برای حلقه for 03:16
-
توضیح ()iter و ()iter_mut و ()into_iter 09:06
-
آداپتورهای iterator پرکاربرد 04:09
-
توضیح متد ()map با مثال ها 08:46
-
()collect 05:03
مشخصات آموزش
تسلط به زبان برنامه نویسی Rust - مبتدی تا پیشرفته
- تاریخ به روز رسانی: 1404/06/14
- سطح دوره:مقدماتی
- تعداد درس:141
- مدت زمان :23:18:09
- حجم :9.63GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy