Rust Yeni Başlayanlar Kılavuzu: Oyundan Programlamaya, Rust Ekosistemini Hızla Anlayın
Rust Yeni Başlayanlar Kılavuzu: Oyundan Programlamaya, Rust Ekosistemini Hızla Anlayın
Rust hızla gelişiyor ve sadece bir programlama dili değil, aynı zamanda canlı bir ekosistemdir. Hayatta kalma oyunlarından yüksek performanslı sistem programlamaya kadar Rust her yerde. Bu makale, X/Twitter'daki tartışmalardan yola çıkarak, Rust'ın uygulama senaryoları, öğrenme kaynakları ve bazı pratik araçları dahil olmak üzere Rust'a yeni başlayanlar için hızlı bir başlangıç kılavuzu sunmaktadır.
I. Rust Nedir? Neden Öğrenmeye Değer?
Rust, güvenlik, hız ve eşzamanlılığa odaklanan bir sistem programlama dilidir. C ve C++'da yaygın olan bellek güvenliği sorunlarını çözmeyi amaçlarken, bu dillerle karşılaştırılabilir veya daha yüksek performans sunar.
Rust'ın avantajları:
- Bellek güvenliği: Rust'ın sahiplik sistemi ve ödünç alma denetleyicisi, derleme zamanında boş işaretçiler, veri yarışları vb. sorunları önleyebilir.
- Yüksek performans: Rust, verimli makine koduna derlenir ve güçlü sıfır maliyetli soyutlama yeteneğine sahiptir.
- Eşzamanlılık güvenliği: Rust'ın tip sistemi, eşzamanlı kodun güvenliğini sağlayabilir ve veri yarışlarını önleyebilir.
- Çapraz platform: Rust, Windows, Linux, macOS, WebAssembly vb. dahil olmak üzere çeşitli işletim sistemlerini ve mimarileri destekler.
- Aktif topluluk: Rust, zengin kütüphaneler, araçlar ve destek sağlayan canlı bir topluluğa sahiptir.
Rust'ın uygulama senaryoları:
- İşletim sistemleri ve gömülü sistemler: Yüksek performansı ve güvenliği nedeniyle Rust, işletim sistemi çekirdekleri, sürücüler ve gömülü cihaz yazılımları geliştirmek için çok uygundur.
- WebAssembly (Wasm): Rust, Wasm'ye derlenebilir ve böylece tarayıcıda yüksek performanslı kod çalıştırabilir.
- Komut satırı araçları: Rust,
clapvestructoptgibi güçlü komut satırı araç geliştirme çerçeveleri sağlar. - Ağ programlama: Rust'ın
tokiokütüphanesi, yüksek performanslı ağ uygulamaları yazmayı kolaylaştıran eşzamansız bir çalışma zamanı sağlar. - Oyun geliştirme: C++ kadar yaygın olmasa da, Rust oyun geliştirme alanında ortaya çıkıyor, örneğin açık kaynaklı hayatta kalma oyunu
Rust'ın kendisi Unity motoru ve C# ile geliştirilmiş olsa da, sunucu tarafındaki bazı mantıklar performansı optimize etmek için Rust kullanılarak geliştirilebilir.
II. Rust Oyunundan Rust Programlama Diline
X/Twitter'daki tartışma, hayatta kalma oyunu Rust'tan bahsetti ve bunun Rust programlama diliyle yakından ilişkili olduğu belirtildi. Aynı adı kullanmalarına rağmen, farklı şeylerdir. Rust oyunu, çok oyunculu bir çevrimiçi hayatta kalma oyunudur, Rust ise çeşitli yazılımlar oluşturmak için kullanılan bir programlama dilidir.
Rust oyunu:
- Oyuncuların vahşi doğada hayatta kalması, üsler inşa etmesi ve diğer oyuncularla etkileşim kurması gereken çok oyunculu bir çevrimiçi hayatta kalma oyunudur.
- Unity motoru ve C# ile geliştirilmiştir.
- Steam'den satın alınabilir ve sık sık promosyonları vardır.
Rust programlama dili:
- İşletim sistemleri, tarayıcı motorları, ağ sunucuları, oyunlar vb. dahil olmak üzere çeşitli yazılımlar geliştirmek için kullanılır.
- Açık kaynaklı ve çapraz platformdur.
- Güçlü bir tip sistemine ve bellek güvenliği özelliklerine sahiptir.
Eğer bir Rust oyuncusuysanız ve Rust programlama dilini öğrenmek istiyorsanız, aşağıdaki adımları düşünebilirsiniz:
- Rust araç zincirini kurun: Rust'ın sürüm yönetim aracı olan
rustup'ı indirin ve kurun. - Rust temel bilgilerini öğrenin: Rust'ın temel sözdizimini, sahiplik sistemini, ödünç alma denetleyicisini vb. anlamak için resmi öğretici olan "The Rust Programming Language" (genellikle "The Book" olarak bilinir) okuyun.
- Pratik projeler: Basit komut satırı araçları, web sunucuları veya oyunlar yazarak öğrendiklerinizi pekiştirin.
- Topluluğa katılın: Rust topluluğuna katılın, diğer Rust geliştiricileriyle iletişim kurun ve deneyimlerini öğrenin.Rust geliştirme ortamını kurmak çok basittir, sadece
rustup'ı kurmanız yeterlidir.rustup, Rust derleyicisini, standart kütüphaneyi ve diğer gerekli araçları otomatik olarak kuracaktır.
Adımlar:
rustup'ı indirin: adresini ziyaret edin ve işletim sisteminize uygunrustupkurulum programını indirin.- Kurulum programını çalıştırın: Kurulum programının talimatlarını izleyin.
- Ortam değişkenlerini yapılandırın:
rustuportam değişkenlerini otomatik olarak yapılandıracaktır, ancak manuel olarak da yapılandırabilirsiniz. - Kurulumu doğrulayın: Terminali açın ve
rustc --versionvecargo --versionkomutlarını çalıştırın. Sürüm numaraları doğru şekilde görüntüleniyorsa, kurulum başarılı demektir.
Kod Örneği:
rustc --version # Rust derleyici sürümünü görüntüle
cargo --version # Cargo paket yöneticisi sürümünü görüntüle
IV. Rust Temel Sözdizimine Hızlı Giriş
Aşağıda, hızlı bir şekilde başlamanıza yardımcı olabilecek bazı temel Rust sözdizimi bulunmaktadır:
-
Değişken Bildirimi:
let x = 5; // Değişmez değişken let mut y = 10; // Değişebilir değişken const PI: f64 = 3.1415926; // Sabit -
Veri Tipleri:
-
Tamsayı:
i8,i16,i32,i64,i128,u8,u16,u32,u64,u128,isize,usize -
Kayan Noktalı:
f32,f64 -
Boolean:
bool(true,false) -
Karakter:
char(Unicode karakter) -
Dizgi:
String,&str -
Demet:
(i32, f64, char) -
Dizi:
[i32; 5] -
Dilim:
&[i32] -
Yapı:
struct Point { x: i32, y: i32, } -
Numaralandırma:
enum Color { Red, Green, Blue, }
-
-
Fonksiyonlar:
fn add(x: i32, y: i32) -> i32 { x + y } -
Kontrol Akışı:
-
ififadesi:if x > 5 { println!("x 5'ten büyük"); } else if x == 5 { println!("x 5'e eşit"); } else { println!("x 5'ten küçük"); } -
loopdöngüsü:loop { println!("Bu sonsuza kadar dönecek"); break; // Döngüden çık } ```Rust, güvenlik, hız ve eşzamanlılığa odaklanan modern bir sistem programlama dilidir. Bu makale, Rust'ın temel sözdizimini, veri türlerini, kontrol akışını, fonksiyonlarını, veri yapısını, hata işlemeyi ve yaygın araçlarını ve öğrenme kaynaklarını tanıtacaktır.
-
Bir, temel sözdizimi
-
Değişken tanımlama:
let x = 5; // Değişkeni değiştirilemez olarak tanımla let mut y = 10; // Değişkeni değiştirilebilir olarak tanımla const Z: i32 = 15; // Sabiti tanımla -
Veri türleri:
- Tamsayı:
i32(32 bit işaretli tamsayı),u64(64 bit işaretsiz tamsayı), vb. - Kayan nokta:
f64(64 bit kayan nokta sayısı). - Boolean:
bool(trueveyafalse). - Karakter:
char(Unicode karakter). - Dizgi:
String(büyüyebilir dizgi),&str(dizgi dilimi).
- Tamsayı:
-
Yorumlar:
// Tek satırlık yorum /* Çok satırlık yorum */
İki, kontrol akışı
-
ififadesi:let number = 7; if number < 5 { println!("koşul doğruydu"); } else { println!("koşul yanlıştı"); } -
loopdöngüsü:loop { println!("tekrar!"); break; // Döngüden çık } -
whiledöngüsü:let mut i = 0; while i < 5 { println!("i değeri: {}", i); i += 1; } -
fordöngüsü:let a = [10, 20, 30, 40, 50]; for element in a.iter() { println!("değer: {}", element); }
Üç, fonksiyon
-
Fonksiyon tanımlama:
fn add(x: i32, y: i32) -> i32 { x + y // Dönüş değeri, noktalı virgül yok } fn main() { let sum = add(5, 10); println!("Toplam: {}", sum); }
Dört, veri yapısı
-
Yapılar (Structs):
struct User { username: String, email: String, sign_in_count: u64, active: bool, } fn main() { let user1 = User { email: String::from("someone@example.com"), username: String::from("someusername123"), active: true, sign_in_count: 1, }; println!("Kullanıcı adı: {}", user1.username); } -
Numaralandırmalar (Enums):
enum Hareket { Yukarı, Aşağı, Sol, Sağ, } fn main() { let hareket = Hareket::Yukarı; match hareket { Hareket::Yukarı => println!("Yukarı hareket"), Hareket::Aşağı => println!("Aşağı hareket"), Hareket::Sol => println!("Sola hareket"), Hareket::Sağ => println!("Sağa hareket"), } } -
Vektörler (Vectors):
fn main() { let mut v: Vec = Vec::new(); v.push(5); v.push(6); v.push(7); v.push(8); for i in &v { println!("{}", i); } }
Beş, hata işleme
-
Resulttürü:use std::fs::File; use std::io::ErrorKind; fn main() { let f = File::open("hello.txt"); let f = match f { Ok(file) => file, Err(error) => match error.kind() { ErrorKind::NotFound => match File::create("hello.txt") { Ok(fc) => fc, Err(e) => panic!("Dosya oluşturma sorunu: {:?}", e), }, other_error => { panic!("Dosya açma sorunu: {:?}", other_error) } }, }; }
Beş, pratik araçlar ve öğrenme kaynakları
- Cargo: Rust'ın paket yöneticisi ve derleme aracı, bağımlılıkları yönetmek, projeleri derlemek ve testleri çalıştırmak için kullanılır.
- Rust Analyzer: Güçlü bir Rust dil sunucusu, kod tamamlama, sözdizimi denetimi, yeniden düzenleme ve diğer işlevleri sağlar. VS Code'da ilgili eklentinin yüklenmesi önerilir.
- Clippy: Rust kodu statik analiz aracı, kodda potansiyel sorunları kontrol edebilir ve iyileştirme önerileri sunabilir.
- crates.io: Rust'ın paket deposu, npm (JavaScript) veya PyPI'ye (Python) benzer.
- Resmi belgeler: Rust dilinin eksiksiz belgelerini içerir.
- Rust by Example: Çok sayıda Rust kodu örneği sunar.
- The Rust Programming Language (The Book): Rust resmi öğreticisi, okunması şiddetle tavsiye edilir.
- Rustlings: Etkileşimli bir Rust öğrenme aracı, bir dizi alıştırmayı çözerek Rust'ı öğrenir.
- Çevrimiçi kurslar: Udemy, Coursera gibi platformlarda birçok Rust çevrimiçi kursu bulunmaktadır.
Altı, derinlemesine öğrenme yönü
- Asenkron programlama (async/await):
tokioveyaasync-stdkullanarak yüksek performanslı eşzamanlı programlar yazın. - WebAssembly (Wasm): Rust kodunu Wasm'ye derleyin ve tarayıcıda çalıştırın.
- Gömülü geliştirme: Rust kullanarak gömülü sistem yazılımı geliştirin.
- Blok zinciri geliştirme: Rust kullanarak blok zinciri uygulamaları geliştirin, örneğin Solana'nın akıllı sözleşme geliştirme.





