OKUMA SÜRESİ 03:01
GÜNCELLEME

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

https://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

https://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!