هيكل الدورة
هذه الصفحة مخصصة لمدرب الدورة.
أساسيات Rust
الأيام الأربعة الأولى تشكل أساسيات Rust. الأيام سريعة الوتيرة ونغطي الكثير من المواضيع!
Course schedule:
- اليوم الأول صباحاً (ساعتان و5 دقائق، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
مرحبًا | 5 minutes |
مرحبًا، أيها العالم | 15 minutes |
الأنواع والقيم | 40 minutes |
أساسيات التحكم في التدفق | 40 minutes |
- اليوم الأول بعد الظهر (ساعتان و35 دقيقة، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
الأنواع والقيم | 35 minutes |
استنباط النوع | 55 minutes |
أنواع معرفة من قبل المستخدم | 50 minutes |
- اليوم الثاني صباحاً (ساعتان و10 دقائق، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
مرحبًا | 3 minutes |
مطابقة الأنماط | 1 hour |
Methods and Traits | 50 minutes |
- اليوم الثاني بعد الظهر (3 ساعات و15 دقيقة، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
التعميم | 45 minutes |
أنواع المكتبة القياسية | 1 hour |
سمات المكتبة القياسية | 1 hour and 10 minutes |
- اليوم الثالث صباحاً (ساعتان و20 دقيقة، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
مرحبًا | 3 minutes |
إدارة الذاكرة | 1 hour |
المؤشرات الذكية | 55 minutes |
- اليوم الثالث بعد الظهر (ساعة و55 دقيقة، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
الاستعارة (Borrowing) | 55 minutes |
فترات الحياة (Lifetimes) | 50 minutes |
- اليوم الرابع صباحاً (ساعتان و40 دقيقة، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
مرحبًا | 3 minutes |
المكررات (Iterators) | 45 minutes |
الوحدات (Modules) | 40 minutes |
الاختبار (Testing) | 45 minutes |
- اليوم الرابع بعد الظهر (ساعتان و15 دقيقة، بما في ذلك فترات الاستراحة)
Segment | Duration |
---|---|
معالجة الأخطاء (Error Handling) | 1 hour |
Rust غير الآمنة (Unsafe Rust) | 1 hour and 5 minutes |
التعمق في المواضيع
بالإضافة إلى الدورة التي تستمر 4 أيام حول أساسيات Rust، نغطي بعض المواضيع المتخصصة الأخرى:
Rust في Android
التعمق في Rust في Android هو دورة نصف يوم حول استخدام Rust لتطوير منصة Android. يتضمن ذلك التوافق مع C، C++، و Java.
ستحتاج إلى AOSP checkout. قم بعمل checkout لمستودع الدورة على نفس الجهاز وانقل دليل src/android/
إلى جذر AOSP checkout الخاص بك. سيضمن ذلك أن نظام بناء Android يرى ملفات Android.bp
في src/android/
.
تأكد من أن adb sync
يعمل مع المحاكي أو الجهاز الحقيقي وقم ببناء جميع أمثلة Android مسبقًا باستخدام src/android/build_all.sh
. اقرأ السكربت لترى الأوامر التي يقوم بتشغيلها وتأكد من أنها تعمل عند تشغيلها يدويًا.
Rust في Chromium
التعمق في Rust في Chromium هو دورة نصف يوم حول استخدام Rust كجزء من متصفح Chromium. يتضمن استخدام Rust في نظام بناء Chromium gn
، وجلب مكتبات الطرف الثالث ("crates") والتوافق مع C++.
ستحتاج إلى أن تكون قادرًا على بناء Chromium --- يوصى ببناء مكون Debug recommended للسرعة ولكن أي بناء سيعمل. تأكد من أنك تستطيع تشغيل متصفح Chromium الذي قمت ببنائه.
Rust على الأنظمة المدمجة (Bare-Metal)
التعمق في Bare-Metal Rust هو دورة كاملة لمدة يوم حول استخدام Rust لتطوير الأنظمة المدمجة (bare-metal). يتم تغطية كل من المتحكمات الدقيقة (microcontrollers) ومعالجات التطبيقات (application processors).
بالنسبة لجزء المتحكم الدقيق، ستحتاج إلى شراء لوحة التطوير BBC micro:bit v2 مسبقًا. سيحتاج الجميع إلى تثبيت عدد من الـ packages كما هو موضح في صفحة الترحيب.
التزامن (Concurrency) في Rust
التعمق في Concurrency في Rust هو دورة كاملة لمدة يوم حول التزامن الكلاسيكي وكذلك async
/await
.
ستحتاج إلى إعداد حزمة جديدة (crate) وتنزيل التبعيات (dependencies) وجعلها جاهزة. يمكنك بعد ذلك نسخ/لصق الأمثلة في src/main.rs
لتجربتها:
cargo init concurrency
cd concurrency
cargo add tokio --features full
cargo run
Course schedule:
- Morning (3 hours and 20 minutes, including breaks)
Segment | Duration |
---|---|
الخيوط البرمجية (Threads) | 30 minutes |
القنوات (Channels) | 20 minutes |
Send و Sync | 15 minutes |
الحالة المشتركة (Shared State) | 30 minutes |
التمارين | 1 hour and 10 minutes |
- Afternoon (3 hours and 20 minutes, including breaks)
Segment | Duration |
---|---|
أساسيات البرمجة غير المتزامنة (Async Basics) | 30 minutes |
القنوات وتدفق التحكم (Channels and Control Flow) | 20 minutes |
المزالق (Pitfalls) | 55 minutes |
التمارين | 1 hour and 10 minutes |
التنسيق (Format)
تم تصميم الدورة لتكون تفاعلية للغاية ونوصي بترك الأسئلة توجه لاستكشاف Rust!