Rust temelleri
Bellek güvenliğini derleme anında sağlayan Rust'ı sıfırdan öğrenir; cargo ile proje kurar, derleyicinin hata mesajlarını okuyarak küçük, sağlam programlar yazarsın.
Seviye 101 · 18 ders · 15 pratik lab
Dersler
Başlarken
- Rust neden var? Bellek güvenliği ve hız
- cargo ile ilk proje: new, build, run
- Değişkenler, değişmezlik ve gölgeleme
- Sayısal türler, taşma ve tür dönüşümü
- String ve &str: iki metin türü
- Kısa görev: sıcaklık dönüştürücü
Akış ve veri
- if, loop, while ve for
- Fonksiyonlar, ifadeler ve deyimler
- Yapılar ve yöntemler
- enum ve match: tüm durumları ele almak
- Vec ve HashMap
- Kısa görev: dosyadaki sözcük sıklığı
Hata ve modüller
- Option ve Result: null ve istisna olmadan
- ? işleci ile hata yaymak
- Modüller, crate'ler ve görünürlük
- cargo test, clippy ve rustfmt
- Kısa görev: anahtar=değer yapılandırma okuyucu
Bitirme
- Bitirme görevi: günlük dosyasını özetleyen Rust aracı
Pratik lablar
- Sensör ölçümlerini tamsayıdan ondalığa çevirmek: Onda bir derece olarak gelen i32 ölçümleri f64 dereceye çevir ve rastgele değerlerle çalışan testleri geçir.
- Stok sayacında taşmayı önlemek: Kestane Market'in u32 stok sayacını checked_add ve checked_sub ile taşma ve eksiye düşmeye karşı koru.
- as yerine TryFrom ile güvenli dönüşüm: Sessizce kırpılan as dönüşümlerini TryFrom ile değiştir ve sınır değerlerinde hatayı doğru raporlayan testleri geçir.
- Ad soyaddan baş harf üretmek: &str olarak gelen ad soyaddan baş harfleri String olarak döndür; Türkçe harfli adlar da doğru çalışsın.
- Başlıktan URL kısaltması üretmek: Bir haber başlığını küçük harfli, tireli bir kısaltmaya çeviren fonksiyonu yaz; boşluk ve noktalama testleri geçsin.
- Metni karakter sınırında güvenle kısaltmak: Bayt dilimlemesi yüzünden çöken kısaltma fonksiyonunu char_indices ile düzelt ve çok baytlı karakterli testleri geçir.
- Koli boyutunu enum ile sınıflandırmak: Sarıkız Kargo için ağırlığa göre Small, Medium, Large döndüren bir enum ve match yaz.
- Trafik ışığı durumlarını modellemek: Veri taşıyan enum ve impl blokları ile bir trafik ışığının sonraki durumunu ve bekleme süresini hesapla.
- Metin komutlarını enum'a ayrıştırmak: "ekle 3", "sil 2" gibi komutları guard ve iç içe desenli match ile bir Command enum'una çevir; geçersiz girdiler hata dönsün.
- En yüksek üç puanı bulmak: Bir Vec<u32> içinden en yüksek üç puanı sıralı döndür; üçten az eleman olan listeleri de destekle.
- Kütüphane ziyaretlerini şubeye göre saymak: Çınaraltı Kütüphanesi giriş kayıtlarından HashMap ve entry API ile şube başına ziyaret sayısını çıkar.
- Personeli departmana göre gruplamak: Personel listesini departmana göre gruplayıp her grubu ada göre sırala ve çıktıyı belirli bir sırada döndür.
- Kullanıcıyı Option ile aramak: Kimliğe göre kullanıcı arayan fonksiyonu null yerine Option döndürecek şekilde yaz ve bulunamama durumunu test et.
- Hata zincirini ? işleciyle sadeleştirmek: İç içe match'lerle dolu bir dosya okuma fonksiyonunu ? işleciyle yeniden yaz; davranış ve testler aynı kalsın.
- Tek dosyalık aracı modüllere bölmek: Tek main.rs içindeki aracı parse ve report modüllerine ayır, görünürlüğü düzelt ve cargo clippy uyarısız geçsin.
Kurs hakkında
Bellek güvenliğini derleme anında sağlayan Rust'ı sıfırdan öğrenir; cargo ile proje kurar, derleyicinin hata mesajlarını okuyarak küçük, sağlam programlar yazarsın.
Ne öğreneceksin
- Başlarken
- Akış ve veri
- Hata ve modüller
- Bitirme
Ön koşullar
Ön bilgi gerekmez; kurs sıfırdan başlar.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs başlangıç düzeyindedir; her terim ilk geçtiği yerde açıklanır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.