Olmazsa Olmaz Golang Kütüphaneleri
İster komut satırı aracı, ister kütüphane ya da servis geliştirirken bazı 3.parti kütüphaneler / yardımcılar, hayatımızı kolaylaştırır. Bu yazımda sizlere sık kullandığım paketlerden bahsedeceğim.
github.com/go-playground/validator yeni
https://github.com/go-playground/validator
Veri validasyonu için kullanıyorum. Elinizdeki string
acaba geçerli bir
e-posta değeri mi? struct
içindeki alanların duruma göre diğer alana
göre kontrolü gibi işler için ideal.
go.uber.org/zap yeni
https://github.com/uber-go/zap
Yapılandırılmış, alan-alan ayrıştırabileceğiniz hızlı bir log kütüphanesi.
github.com/DATA-DOG/go-sqlmock yeni
https://github.com/DATA-DOG/go-sqlmock
Standart kütüphane ile gelen sql driver’ını kullanarak size mocking yapmayı sağlıyor. Sql driver’ı taklit ederek sahte sorgular ve sonuçlar elde edebilirsiniz.
github.com/fatih/color
https://github.com/fatih/color
İçimizden biri, rock star’ımız sevgili Fatih Arslan tarafından geliştirilen ve
daha sonra da pek çok kişi tarafından katkı sağlanan color
paketi. Kullanımı
çok kolay. Komut satırı uygulamalarınızı renklendirmek istiyorsanız bu paketi
mutlaka kullanmalısınız.
$ go get github.com/fatih/color
github.com/pkg/errors
Error’leri yönetmek, error’lere ilave mesaj eklemek, bir error’ü wrap/unwrap
etmek gibi pek çok işi bizim adımıza yapan olmazsa olmaz kütüphanelerden biri de
errors
paketi.
$ go get github.com/pkg/errors
github.com/alexeyco/simpletable
https://github.com/alexeyco/simpletable
Ruby’de çok sevdiğim terminal-table’ın golang versiyonu. Terminal’de aynı html table’ları gibi tabular gösterim yapmanızı sağlıyor.
$ go get -u github.com/alexeyco/simpletable
github.com/urfave/cli
Sevgili Cenk Altı sayesinde haberdar olduğum
harika bir cli
geliştirme aracı. Pek çok işi o kadar kolay hale getiriyor ve
kolaylaştırıyor ki… Daha önce başka araçları deneyip hatta hiç araç
kullanmadan uğraşıp yaptığım şeyleri inanılmaz derecede kolay ve hızlı bir
şekilde yapmamı sağlıyor urfave/cli
.
$ go get github.com/urfave/cli/v2
github.com/codingconcepts/env
https://github.com/codingconcepts/env
Uygulamanız içinde environment variable’ları yönetmenizi sağlayan güzel bir
kütüphane env
.
$ go get -u github.com/codingconcepts/env
github.com/cosmtrek/air
https://github.com/cosmtrek/air
Özellikle servis/server gibi işlerinizde, geliştirme yaparken hot reload
yapmak isterseniz, yani herhangi bir .go
dosyasını kaydettiğinizde,
uygulamanın otomatik olarak tekrar derlenip çalışması için air
, yani sizin
uygulamayı elle durdurup tekrar çalıştırma işi yapmamanız için harika bir
çözüm!
github.com/google/uuid güncelleme
https://github.com/google/uuid
UUID
gereken yerlerde işinize yarayacak güzel bir kütüphane.
github.com/stretchr/testify
https://github.com/stretchr/testify
Yine ruby’den kalma alışkanlıklarım beni bu kütüphaneyi bulmamı ve kullanmamı
sağladı. Test yazarken keşke ruby’deki minitest gibi bir kütüphane olsa,
assertion işlerini basitçe halledebilsem
demiştim ve bir google aramasından
sonra testify
ile tanışıp bir daha da bırakamadım.
Sadece assertion değil mocking ve benzeri diğer yardımcılarla beraber geliyor!
$ go get github.com/stretchr/testify
Günlük işlerde sıklıkla kullandığım kütüphanelerin bazılarını tanıtmaya çalıştım. Bunların dışında da kullandığımız paketler hatta framework’ler, network client’ları, veritabanı client’ları, websocket, tcp sunucu framework’leri gibi daha geniş yardımcılar da bulunmakta.
Daha fazla araç ve bilgi için https://github.com/avelino/awesome-go adresine bakabilirsiniz!