Go.work ile Modül Yönetimi: Geliştirme vs. Yayınlama

Go.work dosyaları harika bir araç, ama sınırlarını anlamak önemli. Dosya, yerel geliştirme sırasında birden fazla modülü yönetmek için tasarlandı, git tag'larının karmaşasından kurtarır. Ama yayınlamaya gelince hikaye değişiyor.

Eğer projenin bağımlı modülleri başka projelerden de kullanılacaksa, her modülün bağımsız versiyonlaması gerekir. Burada go.work yardımcı olamaz; o sadece yerel ortamda çalışır. Kaynak kontrole push ettiğinde go.work'u.gitignore'a ekle. Böylece ekip üyeleri kendi go.work dosyalarını oluşturabilir, ama üretim kodu hep go.mod ve go.sum'a güvenir.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Pratik bir yaklaşım: her modülü ayrı git deposunda tut (ya da monorepo içinde ayrı dizinlerde). Ana projenin go.mod dosyası, bağımlılık olarak kullandığı modülleri belirli versiyonlarla referans gösterir. Geliştirme sırasında go.work ile yerel yolları işaret et; böylece değişiklikleri hemen test edebilirsin. Yayınlamaya hazır olduğunda, her modülün versiyonunu etiketle (git tag v1.0.0 gibi), ana projenin go.mod'unu güncelle ve push et.

Git tag'larının çoğalması sorunsa, semantic versioning'i düzgün uygula ve sadece yayın yapacağın modülleri etiketle. Geliştirme dalında go.work'u rahatça kullan; main/release dalında sadece go.mod/go.sum olsun. Bu sayede hem yerel geliştirme hızlı, hem yayınlanan kod kontrollü ve izlenebilir olur.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz