Rust
RustRust یک معامله پیشنهاد میدهد: کامپایلر سختگیری میکند، و در عوض کل دستهای از باگها — نشتی حافظه، اشارهٔ آویزان، مسابقهٔ داده — در زمان اجرا اصلاً ممکن نمیشوند. سه هفتهٔ اول با کامپایلر میجنگی. بعد از آن، متوجه میشوی داشت درست میگفت.
پیشرفت تو
درصد هر فصل از دو چیز میآید: چقدر از بخشهایش را خواندهای (۵۵٪) و چند تمرینش را تیک زدهای (۴۵٪). همهچیز داخل مرورگر خودت میماند.
فصل
فصلها به هم وابستهاند و ترتیبشان معنا دارد. هر مسیر با پروژههای نهایی تمام میشود: ساده، متوسط، پیچیده.
چرا Rust
مسئلهٔ ایمنی حافظه بدون زبالهروب.
در نوبت نوشتنمالکیت
تک قاعدهای که همهچیز از آن میآید.
در نوبت نوشتنقرضگیری و طول عمر
مرجع مشترک و انحصاری، و اینکه lifetime چه میگوید.
در نوبت نوشتننوعها: struct و enum
enum در Rust بسیار قویتر از چیزی است که فکر میکنی.
در نوبت نوشتنpattern matching
تطبیق جامع، و کامپایلری که حالت فراموششده را میگیرد.
در نوبت نوشتنخطا: Result و Option
بدون exception، بدون null.
در نوبت نوشتنtrait و generic
چندریختی بدون وراثت.
در نوبت نوشتنمجموعهها و iterator
Vec، HashMap و زنجیرهٔ iterator بدون هزینه.
در نوبت نوشتنماژول و Cargo
ساختار پروژه، crate، feature و workspace.
در نوبت نوشتنهمروندی بیترس
چرا مسابقهٔ داده در Rust کامپایل نمیشود.
در نوبت نوشتنasync و Tokio
future، runtime و تفاوتش با نخ.
در نوبت نوشتنunsafe و FFI
کِی لازم است و چطور مهارش کنیم.
در نوبت نوشتنتست و benchmark
تست داخلی، تست یکپارچه و اندازهگیری.
در نوبت نوشتنوب با Axum
مسیریابی، حالت مشترک، پایگاهداده و JSON.
در نوبت نوشتنبیلد و استقرار
کامپایل بهینه، باینری کوچک و داکر.
در نوبت نوشتنپروژهٔ ۱ — ابزار خط فرمان
پردازش فایل با مدیریت خطای درست.
در نوبت نوشتنپروژهٔ سادهپروژهٔ ۲ — سرویس وب
API با پایگاهداده، اعتبارسنجی و تست.
در نوبت نوشتنپروژهٔ متوسطپروژهٔ ۳ — سرویس همروند پرکار
async، اشتراک حالت، backpressure و اندازهگیری.
در نوبت نوشتنپروژهٔ پیچیده