Bölüm 1: Canlı Yeniden Yükleme'ye Giriş
Canlı Yeniden Yükleme Nedir?
Canlı yeniden yükleme, geliştirme ortamınızın kodunuzdaki değişiklikleri izlemesini ve uygulamanızı otomatik olarak yeniden yüklemesini sağlayan bir özelliktir. Bir dosyayı kaydettiğinizde, canlı yeniden yükleme aracı değişikliği algılar, uygulamayı yeniden derler ve yeniden başlatır. Bu, her değişiklikten sonra sunucuyu durdurma, uygulamayı yeniden derleme ve tekrar başlatma gibi manuel işlemlerden sizi kurtarır.
Go Geliştirme için Canlı Yeniden Yükleme'nin Faydaları
Canlı yeniden yükleme, geliştirme sürecini önemli ölçüde hızlandırabilir. Kodlarını derlemeden önce çalışan Go geliştiricileri için canlı yeniden yükleme, anında geri bildirim ile geliştirme sürecini iyileştirmek anlamına gelir. Faydalar şunları içerir:
- Artan Üretkenlik: Geliştiriciler manuel olarak derleme yapmaları gerekmediği için kesintisiz bir şekilde çalışabilirler.
- Zaman Kazancı: Canlı yeniden yükleme, kod değişikliklerinin çalışan uygulamada yansımasını görmek için geçen süreyi azaltır.
- Hata Tespiti: Anında derlemeler ve yeniden başlatmalar, hataları daha hızlı tespit etmeyi sağlar.
- Düzgün İş Akışı: Geliştirme sürecine sorunsuz ve verimli bir şekilde entegre olur, iş akışını hızlandırır.
Bölüm 2: Air Nedir?
Air, Go uygulamaları için canlı yeniden yükleme yetenekleri sunmak üzere tasarlanmış bir komut satırı yardımcı programıdır. Kaynak kodunuzdaki değişiklikleri izler ve Go uygulamanızı otomatik olarak yeniden derler ve başlatır. Bu, özellik geliştirmeye daha fazla odaklanmanızı ve tekrarlayan görevlere daha az odaklanmanızı sağlar.
Özellikler
Air, modern bir Go geliştirme ortamı için uygun bir dizi özellik sunar:
- Otomatik Derlemeler: Dosya değişikliklerini algılar ve derlemeleri tetikler.
- Özelleştirilebilir Derleme Komutları: Projektip ihtiyaçlarınıza göre derleme komutlarını özelleştirmenize olanak tanır.
- Dizin Hariç Tutma: İzlemesini istemediğiniz dizinleri belirtmenize olanak tanır.
- Yeni Dizin Desteği: Air başladıktan sonra eklenen yeni dizinleri izleyebilir.
- Renkli ve Okunabilir Günlükler: Çıktı günlüklerinin okunabilirliğini renkli kodlama ile artırır.
- CLI Argümanları: Hızlı ayarlamalar için yapılandırma alanlarına doğrudan komut satırı argümanları ile ayar yapılabilir.
Tüm özellikler ve işlevsellikler için geliştiricinin sağladığı bağlama başvurun.
Bölüm 3: air
'in Kurulumu
3.1 go install
Kullanarak Kurulum
Go 1.18 veya daha yeni sürümünü kullanarak Air'i kurmak için:
go install github.com/cosmtrek/air@latest
Bu, air
'ın GOPATH/bin
'inize kurulmasını sağlar.
3.2 install.sh
Betiği Kullanarak Kurulum
Başka bir yöntem ise sağlanan kurulum betiği ile:
curl -sSfL https://raw.githubusercontent.com/cosmtrek/air/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
Kurulumdan sonra aşağıdaki komutu çalıştırarak doğrulayın:
air -v
3.3 Özel Kurulumlar (Docker/Podman ve Özel YOL)
Docker veya Podman kullananlar için, Air'i dahil etmenin pratik bir yolu bulunmaktadır:
docker run -it --rm \
-w "/proje/yoluna" \
-v $(pwd):/proje/yoluna \
-p port:port \
cosmtrek/air
/proje/yoluna
kısmını projenizin yolunun ve port:port
kısmını istediğiniz port eşlemesiyle değiştirin.
Alternatif olarak, belirli bir YOL kurulumu için:
curl -sSfL https://goblin.run/github.com/cosmtrek/air | PREFIX=/ozel/yol sh
Bölüm 4: air
'i Go Projeniz için Yapılandırma
4.1 .air.toml
Yapılandırmasını Anlamak
.air.toml
, Air için yapılandırma dosyasıdır. Bu dosya, derleme süreci, dizin izleme ve günlük çıktısı ile ilgili ayarları belirtmenize olanak tanır. İşte ana bölümlerin kısa bir genel bakışı:
-
root
: Air için çalışma dizetini belirtir. -
build
: Derleme ile ilgili ayarları içerir, örneğin derlemeden önce/sonra çalıştırılacak komutları ve ana derleme komutunu. -
tmp_dir
: Geçici derleme dosyalarının depolanacağı dizini belirtir. -
log
: Günlük dosyası ayarlarını yapılandırır. -
color
: Günlük çıktısının her bölümünün rengini özelleştirir.
4.2 Yapılandırma Dosyası Oluşturma ve Düzenleme
Varsayılan bir .air.toml
yapılandırma dosyası oluşturmak için şunu çalıştırın:
air init
Bu, mevcut dizininize varsayılan ayarlarla bir .air.toml
dosyası oluşturacaktır. Daha sonra projenizin gereksinimlerine uyacak şekilde düzenleyebilirsiniz. Referans için, bağlamda sağlanan air_example.toml
dosyasına bakabilirsiniz.
4.3 CLI Argümanları ile Yapılandırmayı Geçersiz Kılma
Hızlı testler veya küçük değişiklikler için, .air.toml
daki yapılandırmayı geçersiz kılmak için CLI argümanları geçirebilirsiniz. Örneğin:
air --build.cmd "go build -o myapp" --build.bin "./myapp"
Bu esneklik, yapılandırma dosyasını değiştirmeden Air'ın davranışını kolayca özelleştirmenize olanak tanır.
Bölüm 5: Geliştirme Ortamınızda air
'ı Çalıştırma
6.1 Projede air
'ın Başlatılması
Projede air
'a başlamak için, terminalinizde projenizin kök dizinine git ve air
komutunu çalıştır. Eğer bir .air.toml
yapılandırma dosyası mevcutsa, air
otomatik olarak onu kullanacaktır. Aksi takdirde, varsayılan ayarları kullanacaktır.
cd /proje_yolunuz
air
İpucu: air
yürütülebilir dosyasında izin sorunlarıyla karşılaşırsanız, gereken yürütme izinlerine sahip olduğundan emin olun (chmod +x $(go env GOPATH)/bin/air
).
6.2 air
ile Derleme ve Çalıştırma Komutlarını Özelleştirme
air
tarafından kullanılan derleme ve çalıştırma komutlarını .air.toml
yapılandırma dosyasında [build] bölümü altında değiştirerek özelleştirebilirsiniz. Örneğin, derleme komutunu değiştirip farklı bir ikili dosya belirlemek için:
[build]
cmd = "go build -o ./tmp/my-custom-binary ."
bin = "tmp/my-custom-binary"
Daha karmaşık derleme gereksinimleri için, yapılandırma dosyasındaki pre_cmd
ve post_cmd
dizileri derleme sürecinden önce ve sonra komutları çalıştırmanıza olanak tanır.
6.3 Dizinleri Hariç Tutma ve Değişiklikleri İzleme
air
ayrıca, yeniden derlemeyi tetiklemeye gerek olmayan varlık veya bağımlılıklar içeren dizinleri izlemekten hariç tutmanıza olanak tanır.
Bunun için, .air.toml
daki exclude_dir
alanını güncelleyin:
[build]
exclude_dir = ["assets", "tmp", "vendor", "node_modules"]
include_dir
kullanarak ek dizinler eklemeyi veya include_ext
ile belirli dosya uzantılarını izlemeyi de sağlayabilirsiniz.
Bölüm 6: Gelişmiş Kullanım
6.1 Docker Konteynerleri ile air
Kurma
air
'ı bir Docker konteyneri içinde kullanmak, özellikle ekip çalışmalarıyla uğraşırken geliştirme ortamınızı kolaylaştırabilir. Docker ortamınıza air
'ı dahil etmek için, Dockerfile
'ınızı güncelleyerek air
'ı kurun ve .air.toml
dosyanızı konteynere kopyalayın:
FROM golang:1.18-alpine AS builder
RUN go install github.com/cosmtrek/air@latest
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
CMD ["air", "-c", ".air.toml"]
6.3 Docker-compose Ortamında air
Kullanma
docker-compose
tarafından yönetilen bir servise air
'ı entegre etmek için, docker-compose.yaml
dosyanızda bir servis tanımlayın:
version: '3.8'
services:
app:
build: .
ports:
- "808:808"
volumes:
- .:/app
command: ["air", "-c", ".air.toml"]
volumes
direktifinin, air
'ın dosya değişikliklerini algılayabilmesi için projenizin dizinini doğru şekilde konteyner içindeki çalışma dizinine eşlemesi gerektiğinden emin olun.
Bölüm 7: Genel Sorun Giderme ve Sık Sorulan Sorular
7.1 command not found: air
Hatasını Düzeltme
Eğer command not found: air
hatasıyla karşılaşırsanız, genellikle air
ikilisinin sisteminizde PATH
içinde olmadığı anlamına gelir. Bunu çözmek için, Go ikilileri yolunu PATH
ortam değişkeninize ekleyin:
export PATH=$PATH:$(go env GOPATH)/bin
`
### 7.2 WSL Ortamlarındaki Sorunlar
Windows Alt Sistemi Linux (WSL) ortamında, `.air.toml` dosyanızdaki özel karakterleri kaçırmayı unutmayın. Örneğin, dosya yollarındaki ters eğik çizgileri kaçırmak için `\\` kullanın.
### 7.3 Binlerin Çalıştırılmadan Sıcak Derleme İpuçları
Eğer `air`'in Go uygulamanızı çalıştırmadan derlemesini istiyorsanız, `.air.toml` dosyanızın `[build]` bölümünde `cmd`'yi (Unix tabanlı sistemlerdeki gibi) işlem yapmayan bir komuta (`/bin/true` gibi) ayarlayın:
```toml
[build]
cmd = "/bin/true"
Bunu yaparak, air
hala dosya değişikliklerini gözlemleyecek ve derleme sürecini tetikleyecek ancak sonuçta oluşan ikili dosyayı çalıştırmayı denemeyecektir.