12 KiB
Golang - Go
- Introduction
- Design Patterns
- Tutorials
- Kubernetes Client Go
- Building container images
- Go cheatsheets
- Go Frameworks and libraries
- Go packages
- Go Tools
- Go Books
- Go Samples
- Dockerfile for go
- Tweets
Introduction
- golang.org
- github.com/golang/go
- wikipedia: Go
- Zepto is a lightweight framework for the development of microservices & web services in golang
- medium: Microservices in Go
- search.gocenter.io: JFrog Go Center Host your Go-based applications for free on the JFrog Platform.
- dev.to: Deploying Your First Golang Webapp
- Awesome Go 🌟
- inancgumus/learngo 🌟 A Huge Number of Go Examples, Exercises and Quizzes.
- eli.thegreenplace.net: REST Servers in Go: Part 4 - using OpenAPI and Swagger
- blog.getambassador.io: Debugging Go Microservices in Kubernetes with VScode Tutorial: Learn to debug Go microservices locally while testing against dependencies in a remote Kubernetes cluster
- developers.redhat.com: Using Delve to debug Go programs on Red Hat Enterprise Linux
- Golang for Node.js Developers
- The Ultimate Go Study Guide
- ammeon.com: Profiling golang microservices for high throughput on kubernetes/openshift clusters
- cyberciti.biz: How to install Go [golang] on Ubuntu Linux
- developer.okta.com: Elasticsearch in Go: A Developer's Guide
- go-ini/ini Package ini provides INI file read and write functionality in Go
- rakyll/go-test-trace 🌟 Go test with tracing. go-test-trace is like go test but it also generates distributed traces. Generated traces are exported in OTLP to a OpenTelemetry collector. You need to run go-test-trace alongside a collector to export data to distributed tracing service.
- hashicorp.com: 8 Best Practices for Writing Secure Go Code
- thenewstack.io: Getting Started with Go and InfluxDB
- go.dev: A new search experience on pkg.go.dev
- quii/learn-go-with-tests Learn Go with test-driven development
- itnext.io: Go Does Not Need a Java Style GC Why does Go not need a fancy expensive garbage collector like Java and C#? - erik-engheim.medium.com: Go Does Not Need a Java Style GC
- levelup.gitconnected.com: Generics in Go: Viva La Revolution!
- teivah.medium.com: When to Use Generics in Go?
- dev.to: JSON Schema Validation in Golang
- blog.logrocket.com: How to build a blockchain from scratch with Go
- dev.to: Rate limiting HTTP requests in Go using Redis
- dev.to: Understanding and Crafting HTTP Middlewares in Go
- dev.to: Getting started with Go-Lang
- miguelmota/golang-for-nodejs-developers Examples of Golang compared to Node.js for learning
- blog.logrocket.com: Building a simple app with Go and PostgreSQL
Design Patterns
Tutorials
- ==dev.to: Create a Restful API with Golang from scratch== 🌟
- itnext.io: Generically working with Kubernetes objects in Go Using the unstructured package from k8s API machinery
Kubernetes Client Go
- An example of using dynamic client of k8s.io/client-go
- medium: Using the Go client framework 🌟
- iximiuz.com: How To Call Kubernetes API using Go - Types and Common Machinery
Building container images
Go cheatsheets
- devhints.io/go: Go cheatsheet
- github.com: golang-cheat-sheet
- jimmysong.io/cheatsheets/go
- simplecheatsheet.com/tag/golang-cheat-sheet
- a8m/golang-cheat-sheet An overview of Go syntax and features.
Go Frameworks and libraries
- go-micro Go Micro is a framework for distributed systems development
- dapr.io
- reddit.com: What is the best microservice framework in Go?
- Masterminds/sprig: Sprig: Template functions for Go templates Useful template functions for Go templates. The Go language comes with a built-in template language, but not very many template functions. Sprig is a library that provides more than 100 commonly used template functions.
- go-kratos/kratos A modular-designed and easy-to-use microservices framework in Go.
- gnet 🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go./ gnet
- dsa0x/sicher Sicher is a go module that allows secure storage of encrypted credentials in a version control system.
Go packages
- cap A collection of authentication Go packages related to OIDC, JWKs and Distributed Claims.
- volatiletech/sqlboiler Generate a Go ORM tailored to your database schema.
Go Tools
- jcchavezs/porto Tool for adding vanity imports URI to Go files. If you want to enforce vanity import paths, it automates the addition of the import directive.
- mholt/json-to-go Translates JSON into a Go type in your browser instantly (original)
- curl-to-go Instantly convert curl commands to Go code
Go Books
Go Samples
- ==GoogleCloudPlatform/golang-samples: Sample apps and code written for Google Cloud in the Go programming language.==
- rehacktive/caffeine A very basic REST service for JSON data - enough for prototyping and MVPs!
- ebosas/microservices A microservices example in Go
- iximiuz/client-go-examples Collection of mini-programs demonstrating Kubernetes client-go usage.
Dockerfile for go
Tweets
Click to expand!
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>If I were a system administrator looking to learn a new programming language it would be Go.
— Kelsey Hightower (@kelseyhightower) December 7, 2020
So many of our tools including Kubernetes, Prometheus, and Terraform are written, and extended, in Go that it's almost a requirement next to learning Bash. https://t.co/OfZmGo4uP5
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>✨ Freshly released: go-test-trace. Allows you to generate distributed trace spans from #golang test cases and can participate into an existing distributed trace. Useful to diagnose CI/CD or to run locally. https://t.co/ypLt3sg5MW pic.twitter.com/hGfNJUxi81
— Jaana Dogan ヤナ ドガン (@rakyll) September 21, 2021
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>How I write HTTP services in #golang has changed over the years... here's my current style.
— Mat Ryer (@matryer) October 4, 2021
(Please consider sharing this with somebody you know who's learning Go.)
It's a yarn... 🧶
1/13
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>Working with Kubernetes Objects in Go 🔽
— Ivan Velichko (@iximiuz) January 22, 2022
How data structures from our beloved YAML manifests are represented as Go structs and interfaces.
(a sneak peek from my work-in-progress article on k8s .io/api and k8s .io/apimachinery modules) pic.twitter.com/yLTP3riQOb
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>What is runtime.Scheme in Kubernetes Go code?
— Ivan Velichko (@iximiuz) January 24, 2022
I'd been confused by this concept for quite some time. Turns out - it's just a fancy object factory.
Scheme is a registry maintaining a mapping of Kinds (strings) to Types (structs).
Schemes are dynamic - new types can be appended. pic.twitter.com/7o3UYO1HH3