second chapter in Turkish

This commit is contained in:
pasali
2014-12-31 20:09:26 +02:00
parent 862abed0f1
commit 2e6e36db0b

151
tr/01.2.md Normal file
View File

@@ -0,0 +1,151 @@
#1.2 $GOPATH ve Çalışma Ortamı
## $GOPATH
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).
Unix türevi işletim sistemlerinde, aşağıdaji komutla değişkeni ayarlayabilirsiniz:
export GOPATH=/home/apple/mygo
Windows'da ise, GOPATH adında bir ortam değişkeni oluşturup, değerini `c:\mygo` ( ***ya da sizin istediğiniz herhangi bir yer*** ) olarak atayabilirsiniz.
$GOPATH içinde birden fazla dizin yolu(çalışma ortamı) olabilir, dizinleri `:` ayırabilirsiniz(Windows'da`;`). Birden fazla çalışma ortamınız var ise `go get` indirdiği içeriği $GOPATH'teki ilk dizine yazacaktır.
$GOPATH içinde aşağıdaki üç dizinden oluşur:
- `src` -> kaynak dosyalar için(.go, .c vb uzantılı)
- `pkg` -> derlenmiş dosyalar için(.a uzantılı)
- `bin` -> çalıştırılabilir dosyalar için
Bu kitapta, `mygo` dizini $GOPATH'in gösterdiği çalışma ortamı olacak.
## Paket dizinleri
Paket ve kaynak dosyaları `$GOPATH/src/mymath/sqrt.go` şeklinde oluşturun (`mymath` paketin ismidir) ( ***`mymath` paket ismi değişebilir, fakat paket ismi ve paketleri oluşturan kaynak kodların bulunduğu dizinin ismi aynı olmalıdır***)
Her paket için `src` altında yeni bir dizin oluşturmalısınız. Dizin isimleri genelde paket ismiyle aynı olur/olmalıdır. Paket oluştururken iç içe dizinler açabilirsiniz. Örneğin, eğer `$GOPATH/src/github.com/astaxie/beedb` dizini oluşturursanız, paket yolu `github.com/astaxie/beedb` olacaktır. Paket ismi ise en son dizinin ismi olacaktır, önceki örnekte `beedb` paket ismi olacaktır.
Terminalinizde aşağıdaki komutları çalıştırın. ( ***Bu kısımda örneklerden bahsedeceğiz*** )
cd $GOPATH/src
mkdir mymath
`sqrt.go` isminde bir dosya oluşturun, aşağıdaki kod bloğunu ekleyin.
//$GOPATH/src/mymath/sqrt.go kaynak kodu
package mymath
func Sqrt(x float64) float64 {
z := 0.0
for i := 0; i < 1000; i++ {
z -= (z*z - x) / (2 * x)
}
return z
}
Yukarıdaki adımların sonunda ilk paketimizi oluşturmuş olduk. Paket isimlerinin bulundukları dizinin adı ile aynı olmasına özen gösterin.
## Paketleri derleme
Yukarıda ilk paketimizi oluşturmuştuk, peki projelerimizde kullanmak için nasıl derleyeceğiz? İki şekilde yapabiliriz:
1. Paket dizinin içindeyken `go install` komutunu çalıştırarak.
2. Herhangi bir dizindeyken `go install mymath` komutunu çalıştırarak.
Derleme işlemi bittikten sonra, aşağıdaki komutları çalıştırırsanız.
cd $GOPATH/pkg/${GOOS}_${GOARCH}
// derlenmiş halinin oluştuğunu görebilirsiniz
mymath.a
`.a` uzantılı dosya paketimizin binary halini içeriyor. Peki bu dosyayı nasıl kullanacağız?
Öncelikle yeni bir uygulama oluşturmalıyız.
`mathapp` adında yeni bir uygulama oluşturun.
cd $GOPATH/src
mkdir mathapp
cd mathapp
vim main.go
Kaynak kod:
//$GOPATH/src/mathapp/main.go
package main
import (
"mymath"
"fmt"
)
func main() {
fmt.Printf("Merhaba, dünya. Sqrt(2) = %v\n", mymath.Sqrt(2))
}
Uygulamyı derlemek için, `$GOPATH/src/mathapp` dizinine geçip, `go install` komutunu çalıştırın. `$GOPATH/bin/` altında `mathapp` dizinin oluştuğunu göreceksiniz. Uygulamanızı çalıştırmak için, `./mathapp` komutunu çalıştırın. Aşağıdaki gibi bir çıktı alıyor olmanız lazım.
Merhaba, dünya. Sqrt(2) = 1.414213562373095
## Üçüncü-parti paketleri kurmak
Üçüncü-parti paketleri kurmak için `go get` komutunu kullanabilirsiniz. Bir çok açık-kaynak platformu destekliyor; Github, Google Code, BitBucket, ve Launchpad.
go get github.com/astaxie/beedb
`go get -u …` kullanarak var olan paketlerinizi güncelleyebilirsiniz ve aynı zamanda bağımlılıklarıda otomatik olarak yükleyecektir.
`go get` versiyon kontrol sistemleri üzerinden çalışmaktadır. Bu yüzden `go get`'i kullanabilmek için `git`, `hg` gibi yazılımları kurmuş olmanız gerekmektedir.
Yukarıdaki komutları çalıştırdıktan sonra, çalışma ortamınız aşağıdaki dizin yapısına sahip olacaktır.
$GOPATH
src
|-github.com
|-astaxie
|-beedb
pkg
|--${GOOS}_${GOARCH}
|-github.com
|-astaxie
|-beedb.a
Aslında, `go get` kaynak kodu çalışma ortamınızdaki `src` dizinine kopyalayıp, `go install` komutunu çalıştırıyor.
Üçüncü-parti paketleri aşağıdaki gibi kullanabilirsiniz.
import "github.com/astaxie/beedb"
## Dizin yapısı
Yukardaki adımları tamamladıysanız, çalışma ortamınızdaki dizin yapısı aşağıdaki gibi olacaktır.
bin/
mathapp
pkg/
${GOOS}_${GOARCH}, such as darwin_amd64, linux_amd64
mymath.a
github.com/
astaxie/
beedb.a
src/
mathapp
main.go
mymath/
sqrt.go
github.com/
astaxie/
beedb/
beedb.go
util.go
Yukarıdaki yapından açık şekilde görüldüğü gibi; `bin` çalıştırılabilir dosyaları, `pkg` derlenmiş dosyaları ve `src` kaynak dosyaları içermektedir.
(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 .)
## Linler
- [İçeriik](preface.md)
- Önceki bölüm: [Kurulum](01.1.md)
- Sonraki bölüm: [Go komutları](01.3.md)