Skip to content

Commit 2d2a38f

Browse files
author
Mehmet Kose
committed
convert a block in 02.1 and fix typos in other papers
1 parent 3425074 commit 2d2a38f

File tree

5 files changed

+42
-16
lines changed

5 files changed

+42
-16
lines changed

tr/01.2.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Go komutları, önemli bir ortam değişkeni olan $GOPATH üzerinden çalışır. Bu değişkeni Go'nun kurulu olduğu dizini veren $GOROOT ile karıştırmayın. Bu değişken bilgisayarınızdaki Go çalışma ortamının hangi dizinde olduğunu gösterir (Aşağıdaki dizin yapısı örnek olarak verilmiştir, siz kendinize göre dizin yolunu değiştirebilirsiniz).
66

7-
Unix türevi işletim sistemlerinde, aşağıdaji komutla değişkeni ayarlayabilirsiniz:
7+
Unix türevi işletim sistemlerinde, aşağıdaki komutla değişkeni ayarlayabilirsiniz:
88

99
export GOPATH=/home/apple/mygo
1010

@@ -144,7 +144,7 @@ Yukarıdaki yapından açık şekilde görüldüğü gibi; `bin` çalıştırıl
144144

145145
(Windows'daki ortam değişkenlerinin formatı `%GOPATH%` şeklinde olmalıdır, bu kitap unix türevi sistemler üzerinden anlatılmaktadır, bu sebeble Windows kullanıcıları kendi sistemlerine uygun formatı kullanmalıdır .)
146146

147-
## Linler
147+
## Linkler
148148

149149
- [İçeriik](preface.md)
150150
- Önceki bölüm: [Kurulum](01.1.md)

tr/01.3.md

+10-7
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ Go dili kapsamlı bir araç seti ile beraber geliyor. Terminalinizden `go` komut
88

99
Şekil 1.3 Go komutlarnın detaylı gösterimi
1010

11-
Hepsi çok kullanışlı araçlar. Şimdi onları nasıl kullanabileceğimize bakalım.
11+
Bizim için hepsi çok kullanışlı araçlar. Şimdi onları nasıl kullanabileceğimize bakalım.
1212

1313
## go build
1414

15-
Go paketlerini derlemek için kullanılan komuttur. Eğer gerektiği durumlarda bağımlı olan paketleri de otomatik derler.
15+
Go paketlerini derlemek için kullanılan komuttur. Eğer gerekli ise bağımlı olan paketleri de otomatik derler.
1616

1717
- Eğer paket `main` değilde, bölüm 1.2 deki gibi `mymath` ise, `go build` çalıştığında hiç birşey oluşturulmayacak. Eğer `$GOPATH/pkg` içinde `.a` uzantılı derlemiş haline istiyorsanız, `go install` komutunu kullanabilirsiniz.
18-
- Eğer paket `main` ise, aynı dizin içinde çalıştırılabilir haline oluşturacaktır. Eğer oluşacak dosyanın `$GOPATH/bin` içinde olmasını istiyorsanız, `go install` ya da `go build -o ${DİZİN_YOLU}/a.exe` olarak çalıştırın.
18+
- Eğer paket `main` ise, aynı dizin içinde çalıştırılabilir hali oluşturacaktır. Eğer oluşacak dosyanın `$GOPATH/bin` içinde olmasını istiyorsanız, `go install` ya da `go build -o ${DİZİN_YOLU}/a.exe` olarak çalıştırın.
1919
- Dizinde birden fazla go dosyası varsa, ve sadece birini derlemek istiyorsanız, `go build` komutuna dosya ismini argüman olarak vermelisiniz. Örneğin, `go build a.go`. `go build` argüman almaz ise dizindeki bütüm dosyaları derleyecektir.
2020
- Oluşacak dosyanın ismini de önceden belirleyebilirsiniz. Örneğin, `mathapp` projesinde (bölüm 1.2'deki), `go build -o astaxie.exe` komutu `mathapp.exe` yerine `astaxie.exe` adında bir dosya oluşturacaktır. Öntanımlı isimlendirme ya dizin ismi ya da ilk kaynak kodu içeren dosya ismi olarak seçilmiştir.
2121

@@ -47,20 +47,23 @@ Projelerimi Github'a göndermeden önce genellikle bu komutu çalıştırırım.
4747

4848
## go fmt
4949

50-
Öncede C/C++ ile çalışmış olanlar, hangi kodlama stilinin daha iyi olduğu konusundaki tartışmları biliyordur: K&R-stili ya da ANSI-stili. Go da ise, herkesin kullanmak zorunda olduğu sadece bir kod stili vardır. Örneğin, açma parantezleri satır sonlarını yazılmalıdır, yeni bir satırda yazılamazlar, eğer bu kurala uymazsanız derleme hatası alacaksınız! Neyse ki, bu kuralları ezberlemek zorunda değilsiniz. `go fmt` bu işi sizin yerinize yapacaktır. Terminalinizde `go fmt <dosya_ismi>.go` komutunu çalıştırmanız yetecektir. Bir çok IDE siz dosyayı kaydettiğinizde otomatik olarak bu komutu çalıştıracaktır. IDE'ler hakkında bir sonraki bölümde daha ayrıntılı bilgi vereceğim.
50+
Öncede C/C++ ile çalışmış olanlar, hangi kodlama stilinin daha iyi olduğu konusundaki tartışmları biliyordur: K&R-stili ya da ANSI-stili. Go da ise, herkesin kullanmak zorunda olduğu sadece bir kod stili vardır. Örneğin, açma parantezleri sadece satır sonlarına yazılmalıdır, kendi satırlarına yazılamazlar, eğer bu kurala uymazsanız derleme hatası alacaksınız! Neyse ki, bu kuralları ezberlemek zorunda değilsiniz. `go fmt` bu işi sizin yerinize yapacaktır. Terminalinizde `go fmt <dosya_ismi>.go` komutunu çalıştırmanız yetecektir. Bir çok IDE siz dosyayı kaydettiğinizde otomatik olarak bu komutu çalıştıracaktır. IDE'ler hakkında bir sonraki bölümde daha ayrıntılı bilgi vereceğim.
51+
52+
53+
`go fmt` sadece bir takma addır ve 'gofmt -l -w' komutu ile, **klasör yolları** olarak adlandırılan paketlerin üzerinde çalışır.
5154

5255
`gofmt` şeklind değilde `go fmt -w` şeklinde kullanmanız daha iyi olcaktır. `-w` parametresi formatladıktan sonra değişiklikleri kaydetcektir. `gofmt -w src` ise src altındaki butun dosyaları formatlar.
5356

5457
## go get
5558

56-
Bu komut üçüncü parti paketleri almanızı sağlar. Şuanda; BitBucket, Github, Google Code ve Launchpad desteği sunuyor. Bu komutu çalıştırdığımızda iki şey yapılıyor. Birincisi Go kaynak kodunu indiriyor, ikinci olarakta `go install` komutunu çalıştırıyor. Bu komutu çalıştırmadan önce, gerekli araçları kurudğunuzdan emin olun.
59+
Bu komut üçüncü parti paketleri almanızı sağlar. Şuanda; BitBucket, Github, Google Code ve Launchpad desteği sunuyor. Bu komutu çalıştırdığımızda iki şey yapılıyor. Birincisi Go kaynak kodunu indiriyor, ikinci olarakta `go install` komutunu çalıştırıyor. Bu komutu çalıştırmadan önce, gerekli araçları kurduğunuzdan emin olun.
5760

5861
BitBucket (Mercurial Git)
5962
Github (git)
6063
Google Code (Git, Mercurial, Subversion)
6164
Launchpad (Bazaar)
6265

63-
Bu komutu kullanmak için, yukarıdaki araçları kurmuş olmanız lazım. `$PATH` değişkenini ayarlamayıda unutmayın. Bu arada, özel alan adlarınıda destekliyor. `go help remote` komutu ile daha ayrıntılı bilgi edinebilrsiniz.
66+
Bu komutu kullanmak için, yukarıdaki araçları kurmuş olmanız lazım. `$PATH` değişkenini ayarlamayı da unutmayın. Bu arada, özel alan adlarını da destekliyor. `go help remote` komutu ile daha ayrıntılı bilgi edinebilrsiniz.
6467

6568
## go install
6669

@@ -79,7 +82,7 @@ Bu komut `*_test.go` ile biten dosyaları derleyip çalıştırır, gerekli bil
7982

8083
## go doc
8184

82-
Bir çok insan Go için üçüncü parti bir dökümantasyona aracına gerek olamdığını düşünüyor (aslına bakarsanız ben bir tane yazdım bile [CHM](https://github.com/astaxie/godoc)). Go dökümanları yönetmek için çok güçlü bir araca sahip.
85+
Bir çok insan Go için üçüncü parti bir dökümantasyona aracına gerek olmadığını düşünüyor (aslına bakarsanız ben bir tane yazdım bile [CHM](https://github.com/astaxie/godoc)). Go dökümanları yönetmek için çok güçlü bir araca sahip.
8386

8487
Peki bir paketin dökümantasyonuna nasıl bakabiliriz? Örneğin, Eğer bir `builtin` paket hakkında daha fazla bilgi istiyorsanız, `go doc builtin` komutunu işinizi görecektir. Benzer şekilde, `go doc net/http` komutu ile `http` paketi hakkında bilgi elde edebilirsiniz. Fonksiyonlar hakkında daha ayrıntılı bilgi istiyorsanız, `godoc fmt Printf` ve `godoc -src fmt Printf` komutları işinizi görecektir(`-src` fonksiyonun kodlarını göstercektir).
8588

tr/01.4.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Sıradaki IDE'miz Sublime Text 2 (kısaca Sublime'de diyebilirsiniz) + GoSublime
114114

115115
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
116116
117-
Kurulum tamamlandıktans sonra Sublime yeniden başlatın. "Preferences" menüsünde "Package Control" sekmesine tıklayın.
117+
Kurulum tamamlandıktan sonra Sublime yeniden başlatın. "Preferences" menüsünde "Package Control" sekmesine tıklayın.
118118

119119
![](images/1.4.sublime3.png?raw=true)
120120

@@ -130,7 +130,7 @@ Sıradaki IDE'miz Sublime Text 2 (kısaca Sublime'de diyebilirsiniz) + GoSublime
130130

131131
Herşey tamamsa, kurulum başarıyla tamamlanmıştır demektir.
132132

133-
Eğer değilde terminali açıp `gocode` komutunu çalıştıramıyorsanız $PATH değişkeniniz doğru ayarlanmamış demektir.
133+
Eğer terminali açıp `gocode` komutunu çalıştıramıyorsanız $PATH değişkeniniz doğru ayarlanmamış demektir.
134134

135135
## Vim
136136

tr/02.0.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Go, C ailesine ait derlenen bir sistem programala dilidir. Fakat, derlenme hız
88
const fallthrough if range type
99
continue for import return var
1010

11-
Bu bölümde size temel Go bilgisi öğreteceğim. Go dilinin özünü ve tasarımının ne kadar güzel olduğunu göreceksiniz. Go ile programlama çok eğilenceli olabilir. Bu unitenin sonunda, yukarıdaki kelimelere aşina olacaksınız.
11+
Bu bölümde size temel Go bilgisi öğreteceğim. Go dilinin özünü ve tasarımının ne kadar güzel olduğunu göreceksiniz. Go ile programlama çok eğlenceli olabilir. Bu ünitenin sonunda, yukarıdaki kelimelere aşina olacaksınız.
1212

1313
## Linkler
1414

tr/02.1.md

+27-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,33 @@
1+
## Go'yu diğer dillerden farklı kılan nedir?
2+
3+
Go programlama dili tek bir amaçla oluşturuldu; büyük bir ziyaretçi kitlesi için, büyük bir ekip içinde ölçeklenebilir web uygulamaları geliştirmek. Dilin mümkün olduğunda standartlaştırılmış olmasının nedeni budur, dolayısıyla `gofmt` aracı ve sık kullanım yönergeleri geliştirici tabanında gruplaşmalarının bulunmaması içindir. Diğer programlama dillerinde 'parantezin nerede açılacağı' hususunda dini savaşlar verilmektedir.
4+
5+
public static void main() {
6+
7+
}
8+
9+
veya
10+
public static void main()
11+
{
12+
13+
}
14+
veya python için, 4 boşluk, 6 boşluk, bir tab veya iki tab veya diğer kullanıcı ayarlarını mı kullanmalıyız?
15+
16+
Bu biraz sığ bir problem gibi görünse de, kod tabanı büyüdükçe ve daha fazla insan aynı projede çalışırken kodu 'güzel' tutmak zordur. Eğer python biliyorsanız zarif kodu nasıl yazacağınız hakkında bir dizi kural olan PEP8'in farkında olmalısınız. Robotların araba kullanabildiği bir dünyada yaşıyoruz, sadece kod yazmamalıyız, kodu zarif yazmamız gerekiyor.
17+
18+
Diğer dillerde iş kod yazmaya gelince bir çok değişken var, her programlama dili bu kullanım olarak iyidir fakat Go bu konuda biraz özel çünkü internet ile eşanlamlı bir şirkette tasarlandı. Tipik olarak kod yazım akışı Python'dan Java'ya, Java'dan C++'a optimizasyon amacıyla gider. Problem ise şu anda yaygın olan dillerin tamamı onlarca yıl önce 1GB depolama alanının şimdiye oranla çok yüksek bir fiyata sahip olduğu yıllardan geldi. Bilgisayarlar işlemcilerinin çekirdek sayılarını katlarken "eski diller" bunların üzerinde eşzamanlı olarak koşamıyor. Fakat bu diller kötü oldukları için değil, basitce bu diller gelişirken kullanım bu şekilde değildi.
19+
20+
Böylece, Google şu an kullandığı araçlarıyla karşılaştığı tüm sorunları hafifletmek için, şu an GO adını verdikleri sistem dilini yazdılar. Golang kullanmanın bir çok avantajı var fakat bazen paranın iki tarafı da dezavantajlı olabilir. Ancak bazı kısımlarda iyileştirmeler yapıldı, kod iyileştirme gibi. Dili kod biçimlendirme konusunda savaşlar olmayacak şekilde tasarladılar. Yazılan go kodu ('gofmt' kullandıklarını var sayarsak) dünyanın her yerinde tam olarak aynı şekilde görünüyor. Bu bir ekip içinde çalışmaya başlayıncaya kadar önemsiz görünebilir. Kod standart bir formata ve yazım kurallarına sahip değilse, şirketin otomatik kod incelemesi veya başka bir fantazi teknik kullanması durumunda sıçabilir, fakat Go'da bu olmaz.
21+
22+
Go **concurrency** (eşzamanlılık) göz önüne alınarak geliştirildi, lütfen şunu not edin; paralelizm != eşzamanlılık. Şurada bulabileceğiniz, konu konu hakkında Rob Pike tarafından yazılmış şahana bir yazı var; **blog.golang.org**, okuduğunuza değecek.
23+
124
# 2.1 Hello, Go
225

326
Go ile uygulamalar geliştirmeden önce, nasıl basit programlar yazabiliriz onu öğrenelim. Temeli atmadan koca bir bina inşa edemezsiniz. Bu yüzden, bu bölümde basit bir program yazarak söz dizimini öğreneceğiz.
427

528
## Program
629

7-
Uluslararası gelenekler göre, bir programala dilini öğrenmeye başlarken genelde "Merhaba dünya" ile kodlanmaya başlanır.
30+
Uluslararası geleneklere göre, bir programlama dilini öğrenmeye başlarken genelde "Merhaba dünya" ile kodlanmaya başlanır.
831

932
Hazır mısınız? Öyleyse başlayalım!
1033

@@ -16,15 +39,15 @@ Hazır mısınız? Öyleyse başlayalım!
1639
fmt.Printf("Merhaba, dünya ya da 你好,世界 ya da καλημ ́ρα κóσμ ya da こんにちは世界\n")
1740
}
1841

19-
Aşağıdaki cümleyi ekrana basavaktır.
42+
Aşağıdaki cümleyi ekrana basacaktır.
2043

2144
Merhaba, dünya ya da 你好,世界 ya da καλημ ́ρα κóσμ ya da こんにちは世界
2245

2346
## Açıklama
2447

25-
Bilmeniz gereken ilk şey Go programları `package`(paket)'lerden meydana gelir.
48+
Bilmeniz gereken ilk şey Go programları `package` (paket)'lerden meydana gelir.
2649

27-
`package<paketİsmi>` (Bu örnekte `package main`) satırı bize bu programın `main` paketine ait olduğunu, ve `main` kelimesi ise bu programın uzantısı `.a` olan bir kütüphane olarak değil bir yazılım olarak derleneceğini söylüyor.
50+
`package <paketİsmi>` (Bu örnekte `package main`) satırı bize bu programın `main` paketine ait olduğunu, ve `main` kelimesi ise bu programın uzantısı `.a` olan bir kütüphane olarak değil bir yazılım olarak derleneceğini söylüyor.
2851

2952
Her çalıştırılabilir program sadece bir `main` paketi içerebilir, ve `main` adında argüman almayan ve bir değer dönemeyen fonksiyona sahip olamalıdır.
3053

0 commit comments

Comments
 (0)