RUST ile Programlama Dr. Aydın Erden  - Kitap

RUST ile Programlama

1. Baskı, 
Mart 2024
Kitabın Detayları
Dili:
Türkçe
Ebat:
16x24
Sayfa:
338
Barkod:
9786253710347
Kapak Türü:
Karton Kapaklı
Fiyatı:
190,00
Temin süresi 2-3 gündür.
Kitabın Açıklaması
2010 yılında geliştirilmesine başlanan, herhangi bir özel şirketin mülkiyetinde olmayan, açık kaynak kodlu Rust programlama dilinin pazar payı hızla artmaktadır. Stack Overflow'un her yıl yinelediği yazılım geliştirici anketlerinde 2016 yılından beridir en sevilen dil seçilmektedir. Bu nedenlerle geliştiricileri için uzun vadede birçok fırsat sunacağı öngörülmektedir. Hafıza yönetimi konusunda sahiplik ve ödünç alma mekanizmaları ile getirdiği benzersiz yaklaşım, son derece detaylı kontrollere ve geribildirime sahip derleyicisi ve ayrıca geliştirilen programların sistem kaynaklarını asgari düzeyde tüketmesi bu ilgi ve sevginin temel sebeplerini oluşturmaktadır. Günümüzde işletim sistemi, komut satırı uygulamaları, web uygulamaları, ağ uygulamaları ve gömülü sistemler gibi geniş bir yelpazede kullanılmaktadır.
Rust programlama dilini öğrenmek isteyenler için kapsamlı bir kaynak olan bu kitapta; söz dizimi, veri türleri, sahiplik modeli, bellek yönetimi, eş zamanlı işlem yapma, hata işleme, modüller, koleksiyonlar, enumlar, traitler ve makrolar gibi dile ait tüm konular örneklerle ele alınmaktadır. Kitapta temel kavramlardan başlayıp karmaşık olanlara doğru sıralı bir yapı izlenmiştir.
Yorumlar
Kitabın İçindekileri
Yazar Hakkında 
iii
Terimler Sözlüğü 
v
1. Giriş 
1
Kitap ile İlgili Genel Notlar 
3
2. Geliştirme Ortamının Hazırlanması 
5
3. İlk Uygulama 
9
Genel Hatları ile Programın Yapısı 
11
Programın Derlenmesi ve Çalıştırılması 
12
Cargo Paket Yöneticisi 
13
Cargo ile Projenin Derlenmesi ve Çalıştırılması 
16
4. Genel Kavramlar 
19
Değişkenler 
19
Sabitler 
22
Derleme Zamanı – Çalışma Zamanı 
23
Değişkenlerde Gölgeleme (Shadowing) 
24
Kapsam (Scope) 
27
Blok Kapsamı (Block Scope) 
27
Fonksiyon Kapsamı (Function Scope) 
28
Döngü Kapsamı (Loop Scope) 
29
Kod Satırlarına Yorum Ekleme 
29
Tek Satır Yorumlar 
29
Çok Satırlı Yorumlar 
30
5. Veri Türleri 
31
Skaler Türler 
31
Integer (Tamsayı) 
31
Negatif ve Pozitif Sayılar Hafızada Nasıl Saklanıyor? 
33
Tamsayı Taşması (Integer Overflow) 
35
Float (Ondalık Sayılar) 
37
Aritmetik İşlemler 
37
Boolean (Mantıksal Tür) 
38
(Karakter) Türü 
39
Birleşik (Compound) Türler 
39
Tuple Türü 
39
Array Türü 
41
6. Fonksiyonlar 
45
İfade (Expression) ve İşlem (Statement) Farkı 
48
Fonksiyonlarda Dönüş Türünün Belirtilmesi 
49
7. Akış Kontrolü 
51
Kıyaslama Operatörleri 
51
Mantıksal Operatörler 
52
&& (VE) Operatörü 
53
¦¦ (VEYA) Operatörü 
53
! (DEĞİL) Operatörü 
54
If Kontrol Yapısı 
55
Döngüler 
58
Loop Döngüsü 
59
Döngülerden Değer Döndürme 
61
Döngü Etiketi Kullanımı 
62
While Döngüsü 
63
For Döngüsü 
64
8. Sahiplik (Ownership) 
67
Sahiplik Nedir? 
67
Stack ve Heap Hafıza Bölümleri 
67
Sahiplik Kuralları 
69
Değişkenlerin Kapsamı 
69
String Türü 
70
Bellek Tahsisi 
71
Değişkenler ve Sahiplik Hakkının Aktarımı 
72
Stack Bellekte Saklanan Verilerin Kopyalanması 
76
Sahiplik ve Kopyalama Özelliklerinin Fonksiyonlarda Kullanımı 
77
Fonksiyonlardan Değer Döndürülmesi Esnasında Sahiplik Devri ve Kopyalama 
78
Referanslar ve Ödünç Alma 
79
Değiştirilebilir (Mutable) Referanslar 
80
Slice Türü 
84
&str Değişken Türü ve Slice İlişkisi 
86
Arraylerde Slice Türü Kullanımı 
86
9. Struct Veri Yapısı 
87
Struct Veri Yapısının Tanımlanması ve Kullanımı 
87
Diğer Struct Değişkenlerini Kullanarak Değişken Oluşturmak 
90
Tuple Struct 
91
Veri İçermeyen Unit Benzeri Structlar 
91
Metot 
92
Metot Tanımlama 
92
Birden Fazla Sayıda Argüman Kabul Eden Bağlı Metot Örneği 
94
İlişkili Fonksiyonlar 
96
Birden Fazla Sayıda impl Bloğu Tanımlanması 
97
10. Enum Veri Yapısı 
99
Enum Tanımlama 
99
Option Enumı 
103
Match Kontrol Yapısı 
104
Option<T> Enumı ile Match Yapısının Kullanımı 
111
Match Bloğunda Kapsanmayan Değerler ve _ Yer Tutucusu 
112
if let Yapısı 
114
11. Paket, Crate ve Modüller Yardımı ile Yazılım Projesinin Organize Edilmesi 
117
Paketler ve Crates 
117
Kapsam ve Erişilebilirlik Kontrolü için Modül Tanımlama 
118
Modül Oluşturma 
119
Alt Modül Oluşturma 
123
Mutlak ve Göreceli Path 
126
pub use İle Modül Arayüzünü Değiştirme 
127
Pathleri Grup Hâlinde Kapsama Ekleme 
129
Modül İçerisinde Yer Alan Struct ve Enumların Erişilebilirlik Ayarları 
129
12. Standart Kütüphanede Tanımlanmış Veri Yapıları 
131
Vector Veri Yapısı 
131
For Döngüsü Kullanımı 
135
Enum Kullanarak Bir Vectorde Farklı Türlerde Veri Saklamak 
136
String Veri Yapısı 
136
push_str ve push Metodları ile Veri Ekleme 
137
+ Operatörü ve format! Makrosu ile String Birleştirme 
138
Stringlerde Karakterlere Erişim 
139
HashMap Veri Yapısı 
140
HashMapte Veri Güncelleme 
143
13. Hata Yakalama 
147
Kurtarılamaz Hatalar ve panic! Makrosu 
147
Kurtarılabilir Hatalar ve Result Enumı 
149
Unwrap ve Expect Yardımcı Metotları 
152
? Operatörü 
154
14. Generic Tür Parametresi 
157
Fonksiyonlarda Generic Tür Parametresi Kullanımı 
157
Structlarda Generic Tür Parametresi Kullanımı 
160
Enumlarda Generic Tür Parametresi Kullanımı 
161
Metotlarda Generic Tür Parametresi Kullanımı 
162
15. Trait Tanımlama ve Kullanımı 
167
Traitlerde Varsayılan Metot Gövdesi Tanımlanması 
169
Traitlerin Parametre Olarak Kullanımı 
170
Where Anahtar Kelimesi Kullanımı 
173
Fonksiyondan Dönüş Değeri Olarak Trait Kullanımı 
174
Metotları Koşullu Olarak Uygulamak 
176
16. Lifetime 
179
Struct Tanımlamada Lifetime Etiketi Kullanımı 
185
Derleyici Tarafından Tanımlanan Lifetime Etiketleri 
185
Metotlarda Lifetime Etiketi Kullanımı 
186
Static Lifetime Tanımlanması 
187
Tüm Generic Türlerin Bir Arada Kullanımı 
187
17. Closure 
189
Closureların Verilere Erişimi 
194
Closurelardan Veri Aktarımı ve Uygulanan Fn Traitler 
196
18. Iterator 
203
Iterator Traiti ve next Metodu 
204
Iterator Kullanan Metotlar 
207
Yeni Iteratorler Oluşturan Metotlar 
207
19. Cargo ve Crates.io Kullanımı 
211
Kod Derlemesini Özelleştirme 
211
Crates.io’dan Paket İndirme ve Projede Kullanma 
212
Projenin Kütüphane Dosyasına Ayrılması ve Crates Workspaces 
213
20. Akıllı İşaretçiler (Smart Pointers) 
221
Box<T> Akıllı İşaretçisi 
222
Box<T> ile Heap Bellekte Veri Saklamak 
222
Deref Traiti 
223
Akıllı İşaretçi Oluşturma 
225
Deref Traiti Yardımı ile Otomatik Tür Dönüşümleri 
228
Değişebilir Değişkenlerde Deref Trait Kullanımı 
229
Trait 
230
Rc<T> Akıllı İşaretçisi 
232
RefCell<T> Akıllı İşaretçisi 
234
Değişemez Bir Değerin Değişebilir Şekilde Ödünç Alınması 
236
Rc<T> ve RefCell<T> Bir Arada Kullanarak Birden Fazla Sayıda Değiştirilebilir
Referans Elde Etmek 
239
Döngüsel Referansların Önlenmesi 
239
Weak<T> Kullanımı ile Döngüsel Referansları Önlemek 
241
21. Eşzamanlı ve Paralel Programlama 
245
Spawn Fonksiyonu ile Yeni Bir İş Parçacığı Oluşturma 
245
Yan İş Parçacıklarının Sonlanmasını Bekleme 
247
İş Parçacıklarında Move Closure Kullanımı 
250
Mesajlaşma Yolu ile İş Parçacıkları Arasında Veri Aktarımı 
251
Birden Fazla Sayıda İş Parçacığı ile Kanala Veri Aktarımı 
254
Veri Sahipliği Paylaşımı ile İş Parçacıkları Arasında Veri Aktarımı 
256
Mutex<T> 
256
Arc<T> ile Birden Fazla İş Parçacığından Mutex<T>’ye Erişim 
258
22. Trait Nesneleri Kullanımı 
261
Dinamik Bağlam 
262
23. Örüntü Eşleştirme 
269
Match İfadeleri 
269
if let Koşullu İfadeleri 
270
While Let Koşullu Döngüleri 
271
For Döngüleri 
272
Let İşlemi 
272
Fonksiyon Parametreleri 
273
Örüntünün Eşleşmesi veya Eşleşmemesi Durumu 
273
Farklı Örüntü Biçimleri ve Kullanımları 
274
Örüntülerde Değişken Kullanımı 
275
Birden Fazla Sayıda Örüntünün Bir Arada Kullanımı 
276
Bir Aralıktaki Değerlerin Eşleştirilmesi 
278
Struct, Enum ve Tuple Türlerini Taşıdıkları Ögelere Ayırmak 
279
Struct Türünü Ögelerine Ayırmak 
279
Enum Türünü Ögelerine Ayırmak 
281
Örüntüdeki Bazı Değerlerin Göz Ardı Edilmesi 
284
Kalan Değerleri ile Göz Ardı Etme 
285
@ Karakteri ile Yakalanan Değeri Değişkene Bağlama 
286
24. Güvenlik Kontrollerinin Devre Dışı Bırakılması 
287
Ham İşaretçi Kullanımı ve İşaret Ettiği Veriye Erişim 
288
Hafıza Güvenliği Kontrollerine Tabi Olmayan Metot ve Fonksiyonları Çağırma 
289
Unsafe Kodların Dış Erişime Kapatılması 
290
Extern Anahtar Kelimesi ile Harici Kodları Çağırma 
294
Değişebilir Bir Static Değişkene Erişmek ve Değerini Değiştirmek 
295
Trait Uygulamaları 
297
Union Türünün Ögelerine Erişim 
297
25. İleri Seviye Traitler 
299
Traitlerde İlişkili Tür Kullanımı 
299
Generic Tür Parametrelerinde Varsayılan Tür Tanımlanması 
300
İki Farklı Traitte Aynı Metot İsminin Kullanımı ve Çağırılması 
304
Bağımlı Trait Tanımlanması 
308
26. İleri Seviye Türler 
309
Takma Ad Kullanımı 
309
Boş Tür 
310
27. İleri Seviye Fonksiyon ve Closurelar 
313
Fonksiyon İşaretçileri 
313
Bir Fonksiyondan Closure Döndürmek 
314
28. Makrolar 
315
Bildirimsel Makrolar 
315
Prosedürel Makrolar 
318
Türev Makro Tanımlama 
318
Özellik Benzeri Makrolar 
323
Fonksiyon Benzeri Makrolar 
324
Kaynakça 
325