Her Yönüyle Go Programlamaya Giriş Prof. Dr. Ecir Uğur Küçüksille, Nazan Kemaloğlu  - Kitap

Her Yönüyle Go Programlamaya Giriş

1. Baskı, 
Şubat 2019
Kitabın Detayları
Dili:
Türkçe
Ebat:
16x24
Sayfa:
304
Barkod:
9789750253171
Kapak Türü:
Karton Kapaklı
Fiyatı:
340,00
24 saat içerisinde temin edilir.
Kitabın Açıklaması
Kitap; 2007 yılında geliştirilmeye başlanan ve kullanımı artarak devam eden Go programlama dili, diğer bir deyişle Golang hakkında temel seviyede bilgiler içermektedir. Golang programlama dilinin çıkış amacı diğer dillerle uyumlu bir şekilde çalışarak daha başarılı ve güçlü sistemler ortaya çıkarmaktır.
Bugün Go programlama dilini farklı ihtiyaçları için kullanan şirketler arasında Koding, Google, Apple, Twitter, Amazon, Github, Ubuntu, Dropbox ve Facebook gibi şirketlerin var olması Golang programlama dilinin ne kadar kabul görmüş olduğunu göstermektedir.
Kitap içerisinde Go programlama dilinin genel yapısı ve özellikleri anlatılmıştır. Her bölümde konuların pekiştirilmesi için örnek uygulamalar yapılmıştır.
Kitap, temel seviyede programlama bilen veya programlama ile ilgilenen herkesin anlayabileceği şekilde hazırlanmıştır. Go programlama dilini öğrenmek isteyenler için rehber niteliğinde olan bu kitap; özellikle Türkçe kaynak sıkıntısı çekilen Go Programlama Dili için temel kaynak niteliğindedir.
Kitabın Konu Başlıkları
.
Değişkenler ve Operatörler
.
Kontrol Yapıları ve Döngüler
.
Tests
.
Marshal & Unmarshal
.
Metotlar ve Nesneye Yönelik Programlama
.
Pointer (İşaretçiler)
.
Struct
.
Eşzamanlılık (Concurrency)
.
Reflection
.
Modüller(Giriş)
Yorumlar
Kitabın İçindekileri
Önsöz 
5
1. GİRİS
1.1. Go Dokümantasyonu 
18
1.2. Statik Kod Analizi 
18
1.3. Yerleşik Test ve Profil Çerçevesi 
18
1.4. Eşzamanlılık 
18
1.5. Nesne Tabanlı Programlama 
19
1.6. Garbage Collector 
19
2. GELİŞTİRME ORTAMININ KURULMASI
2.1. Go Programlama Dilinin Kurulumu 
23
2.1.1. Linux İşletim Sistemi Üzerine Kurulum 
23
2.1.2. Windows İşletim Sistemi Üzerine Kurulum 
26
2.1.3. macOS İşletim Sistemi Üzerine Kurulum 
28
2.2. Visual Studio Code IDE’nin Kurulumu 
31
2.3. Windows İşletim Sistemi Üzerinde Bash Kullanımı 
33
2.4. Web Üzerinde Go Kullanma 
36
2.5. Go Komutları 
37
2.6. İlk Go Programı 
39
2.7. Yazılan Programın GitHub’a Yüklenmesi 
41
2.8. SHA256 Checksum 
44
3. DEĞİŞKENLER VE OPERATÖRLER
3.1. Değişken Tanımlama Şekilleri 
49
3.1.1. Veri Tipini Belirterek Değişken Tanımlama 
49
3.1.2. İlk Değer Atayarak Değişken Tanımlama 
50
3.1.3. Veri Tipi Belirtmeden Değişken Tanımlama 
50
3.1.4. Sadece Değişken Adı ile Tanımlama 
51
3.1.5. Blok Halinde Değişken Tanımlama 
51
3.2. Boş Değişken (Blank Identifier) 
51
3.3. Sayısal Veri Tipleri 
53
3.3.1. Tamsayılar (Integers) 
53
3.3.1.1. İşaretli Tamsayılar 
53
3.3.1.2. İşaretsiz Tamsayılar 
53
3.3.2. Kayan Noktalı Sayılar ( Floating Point Numbers ) 
54
3.3.3. Complex Veri Tipi 
55
3.4. Boolean Veri Tipi 
55
3.5. String Veri Tipi 
55
3.6. Custom Tip Tanımlama 
56
3.7. Default Değerler 
57
3.8. Sabitler 
58
3.8.1. Veri Tipini Belirterek Sabit Tanımlama 
58
3.8.2. Veri Tipini Belirtmeden Sabit Tanımlama 
59
3.8.3. Blok Halinde Sabit Tanımlama 
59
3.8.4. iota 
59
3.9. Tür Dönüşümleri 
61
3.10. Operatörler 
62
3.10.1. Aritmetik Operatörler 
62
3.10.2. Atama Operatörleri 
63
3.10.3. Karşılaştırma Operatörleri 
63
3.10.4. Mantıksal Operatörler 
63
3.10.5. Bit Düzeyinde (Bitwise) Operatörler 
64
3.10.6. Operatör Önceliği 
64
4. KONTROL YAPILARI VE DÖNGÜLER
4.1. if Kontrol Yapısı 
67
4.1.1. Tek Başına if Kullanımı 
67
4.1.2. if–else Kullanımı 
68
4.1.3. Zincir Halinde if–else Kullanımı 
69
4.1.4. Özel if Koşul İfadesi Tanımlamaları 
69
4.2. switch Kontrol Yapısı 
71
4.2.1. İfadenin Değerine Göre Switch–Case 
71
4.2.2. İfade Kontrolü Yapmadan Switch–Case Kullanımı 
72
4.2.3. İfadeye İlk Değer Atayarak Switch–Case Kullanımı 
73
4.2.4. fallthrough 
73
4.3. for Döngü Yapısı 
75
4.3.1. Sayaç Kontrollü for Yapısı 
75
4.3.2. Şart Kontrollü for Yapısı 
76
4.3.3. Sonsuz Döngü 
77
4.3.4. range for Yapısı 
78
4.4. break Komutu 
78
4.5. continue Komutu 
79
4.6. Etiket (label) Kullanımı ve goto Komutu 
80
5. COMPOSİTE TİPLER
5.1. Diziler 
85
5.1.1. Genel dizi tanımlaması 
85
5.1.2. İlk Değer Atama ile Tanımlama 
86
5.1.3. len() Fonksiyonu 
87
5.1.4. Dizi elemanlarına iteratif erişim 
87
5.1.4. Çok Boyutlu Diziler 
90
5.1.5. Fonksiyon Parametresi Olarak Diziler 
92
5.2. Slice (Kesit) 
94
5.2.1. Diziden Slice Tanımlama 
95
5.2.2. Bir Slice’tan Başka Bir Slice Tanımlama 
96
5.2.3. make() Fonksiyonu ile Slice Oluşturma 
97
5.2.4. copy() Fonksiyonu 
98
5.2.5. append() 
99
5.2.6. Slice Üzerinde İteratif İşlemler 
100
5.2.7. Çok Boyutlu Slice 
101
5.2.8. Fonksiyona Parametre Olarak Slice Gönderme 
102
5.3. Map 
102
5.3.1. make() Fonksiyonu ile map Tanımlama 
104
5.3.2.map İçerisinden Eleman Silme 
105
5.3.3. Fonksiyonlara parametre olarak map gönderme 
106
6. STRİNGLER
6.1. String İçerisine Erişim 
109
6.2. rune – string 
110
6.3. string – byte–rune dönüşümü 
111
6.4. String fonksiyonları 
112
6.4.1. Önekler ve Sonekler ( Prefixes ve suffixes) 
112
6.4.2. Contains() 
113
6.4.3. Index() 
113
6.4.4. () 
114
6.4.5. Count() 
115
6.4.6. Repeat() 
115
6.4.7. ToUpper() , ToLower() 
116
6.4.8. Trim() 
116
6.4.6. Split() 
117
6.4.7.Join() 
117
6.5. strconv paketi 
118
6.5.1. Atoi() 
118
6.5.2. Itoa() 
118
6.5.3. Parse() 
119
6.5.3. Format() 
120
7. KONSOL İŞLEMLERİ
7.1. Print Fonksiyonu 
125
7.2. Printf Fonksiyonu 
127
7.3. Println Fonksiyonu 
130
7.4. Scan fonksiyonu 
130
7.5. Scanf fonksiyonu 
133
7.6. Scanln fonksiyonu 
135
8. FONKSİYONLAR
8.1. Variadic Parametreler 
142
8.2. Anonymous (Anonim) Fonksiyonlar 
143
8.3. Closures 
144
8.4. Yüksek Mertebeden (Higher–Order) Fonksiyonlar 
145
8.5. Recursive (Özyinelemeli) Fonksiyonlar 
147
8.6. Defer 
148
8.7. İsimlendirilmiş Sonuç Parametreleri 
149
8.8. Değer ile Çağırma (Call By Value) 
150
8.9. Referans ile Çağırma (Call By Reference) 
150
9. POİNTER (İŞARETÇİLER)
9.1. İşaretçilerin Default (varsayılan) değerleri 
155
9.2. Pointer işaret eden Pointer 
158
9.3. new() ile Pointer Oluşturma 
159
9.4. Pointerların fonksiyonlar ile kullanımı 
159
10. STRUCT
10.1. Anonymous (Anonim) Struct 
165
10.2. Anonymous (Anonim) Alanlar 
165
10.3. Struct’ların Default (Varsayılan) Değerleri 
166
10.4. İç İçe Struct Kullanımı 
166
10.5. Promoted alanlar 
167
10.5. Struct’ların karşılaştırılması 
169
10.6. Structlarda Dışa Aktarım (Exported Struct) 
170
10.7. Pointer ile Struct’lar 
170
10.8. new() 
172
10.9. Structlarda reflection 
172
11. METOTLAR VE NESNEYE YÖNELİK PROGRAMLAMA
11.1. Metotlar 
177
11.2. Pointer Alıcılar 
179
11.3. Metotların Struct Olmayan Veri Tipleri ile Kullanılması 
180
11.4. Class (Sınıf) Yerine Struct (Yapı) 
181
11.5. Kurucu Fonksiyon (Constructor) 
182
11.6. Kalıtım (Inheritance) Yerine Birleştirme (Composition) 
185
11.7. Arayüz (Interface) 
188
11.7.1. Boş Arayüz (Empty Interface) 
190
11.7.2. Type Assertion 
191
11.7.3. Tip Anahtarı (Type Switch) 
192
11.7.4. Çoklu Arayüz İmplementasyonu 
193
11.7.5. Arayüz Gömme (Interface Embedding) 
194
11.8. Reflection (Yansıma) 
196
12. PAKETLER
12.1. Kendi Paketini Geliştirme 
201
12.2. Paket Bazında Değişken ve Fonksiyonların Görünürlüğü 
204
12.3. Paket Tanımlayıcılarına İsim Verme 
206
12.4. Nokta Tanımlayıcısı 
207
12.5. Paketlerde init Fonksiyonu 
207
12.6. Default Olmayan Go Kütüphanelerinin Kullanılması 
208
12.7. flag Paketi 
209
12.8. math Paketi 
211
12.8.1. Sabitler 
211
12.8.2. Fonksiyonlar 
211
12.8.3 math/rand Kütüphanesi 
215
12.8.3.1 rand.Float64() Fonksiyonu 
215
12.8.3.2 rand.Intn() Fonksiyonu 
216
12.8.3.3 Perm() Fonksiyonu 
217
13. EŞZAMANLILIK (CONCURRENCY)
13.1. Go Rutinleri (Go Routines) 
223
13.2. Kanallar (Channels) 
226
13.3. Deadlock 
229
13.4. Kanalların Kapatılması 
229
13.5. Tek Yönlü Kanallar (Unidirectiona Channels) 
231
13.6. Buffered Kanallar 
233
13.7. WaitGroup 
235
13.8. Worker Pool 
236
13.9. Select 
238
13.10. Mutex 
241
14. DOSYA İŞLEMLERİ
14.1. Dosyadan Veri Okuma 
245
14.1.1. io/ioutil paketi ile dosya okuma 
245
14.1.2. bufio paketi ile dosya okuma 
247
14.1.4. Dosyayı küçük parçalar halinde okuma 
247
14.1.6. flag() ile Komut Satırından dosya okuma 
249
14.2. Dosya Yazma İşlemleri 
249
14.2.1. String olarak yazdırma 
250
14.2.2. byte Olarak Yazdırma 
251
14.2.3. Stringleri satır satır dosyaya yazdırma 
252
14.2.4. Var Olan Bir Dosyaya Ekleme Yapmak 
253
14.3. Dosya Bilgilerini Alma 
254
14.4. Dosya Kontrolü 
255
14.5. Dosya Taşıma/ İsim Değiştirme 
256
15. HATA İŞLEME (ERROR HANDLİNG)
15.1. error Veri Tipi 
260
15.2. Özel (Custom) Hata Oluşturulması 
264
15.3. panic 
268
15.4. recover 
271
16. TEST
16.1. Table Tests 
277
16.2. Test ve Dokümantasyon Oluşturma 
278
16.3. Golint 
282
16.4. Benchmark 
282
16.5. Coverage Analizi 
284
17. JSON
17.1. Valid Fonksiyonu 
290
17.2. Marshal 
290
17.3. MarshalIndent 
292
17.4. Unmarshal 
293
17.5. Bir JSON Dosyası Oluşturulması 
296
17.6. Bir JSON Dosyasından Okuma Yapılması 
296
18. MODÜLLER 
299