هيكل الدورة

هذه الصفحة مخصصة لمدرب الدورة.

أساسيات Rust

الأيام الأربعة الأولى تشكل أساسيات Rust. الأيام سريعة الوتيرة ونغطي الكثير من المواضيع!

Course schedule:

  • اليوم الأول صباحاً (ساعتان و5 دقائق، بما في ذلك فترات الاستراحة)
SegmentDuration
مرحبًا5 minutes
مرحبًا، أيها العالم15 minutes
الأنواع والقيم40 minutes
أساسيات التحكم في التدفق40 minutes
  • اليوم الأول بعد الظهر (ساعتان و35 دقيقة، بما في ذلك فترات الاستراحة)
SegmentDuration
الأنواع والقيم35 minutes
استنباط النوع55 minutes
أنواع معرفة من قبل المستخدم50 minutes
  • اليوم الثاني صباحاً (ساعتان و10 دقائق، بما في ذلك فترات الاستراحة)
SegmentDuration
مرحبًا3 minutes
مطابقة الأنماط1 hour
Methods and Traits50 minutes
  • اليوم الثاني بعد الظهر (3 ساعات و15 دقيقة، بما في ذلك فترات الاستراحة)
SegmentDuration
التعميم45 minutes
أنواع المكتبة القياسية1 hour
سمات المكتبة القياسية1 hour and 10 minutes
  • اليوم الثالث صباحاً (ساعتان و20 دقيقة، بما في ذلك فترات الاستراحة)
SegmentDuration
مرحبًا3 minutes
إدارة الذاكرة1 hour
المؤشرات الذكية55 minutes
  • اليوم الثالث بعد الظهر (ساعة و55 دقيقة، بما في ذلك فترات الاستراحة)
SegmentDuration
الاستعارة (Borrowing)55 minutes
فترات الحياة (Lifetimes)50 minutes
  • اليوم الرابع صباحاً (ساعتان و40 دقيقة، بما في ذلك فترات الاستراحة)
SegmentDuration
مرحبًا3 minutes
المكررات (Iterators)45 minutes
الوحدات (Modules)40 minutes
الاختبار (Testing)45 minutes
  • اليوم الرابع بعد الظهر (ساعتان و15 دقيقة، بما في ذلك فترات الاستراحة)
SegmentDuration
معالجة الأخطاء (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)
SegmentDuration
الخيوط البرمجية (Threads)30 minutes
القنوات (Channels)20 minutes
Send و Sync15 minutes
الحالة المشتركة (Shared State)30 minutes
التمارين1 hour and 10 minutes
  • Afternoon (3 hours and 20 minutes, including breaks)
SegmentDuration
أساسيات البرمجة غير المتزامنة (Async Basics)30 minutes
القنوات وتدفق التحكم (Channels and Control Flow)20 minutes
المزالق (Pitfalls)55 minutes
التمارين1 hour and 10 minutes

التنسيق (Format)

تم تصميم الدورة لتكون تفاعلية للغاية ونوصي بترك الأسئلة توجه لاستكشاف Rust!