13 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
- Videos
- 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
- itnext.io: Generically working with Kubernetes objects in Go Using the unstructured package from k8s API machinery. In this post you’ll learn how to work with live Kubernetes objects in Go using the typed and dynamic clients available from the API machinery sub-project client-go.
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.
- ggicci/httpin: HTTP Input for Go Decode an HTTP request into a custom struct
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
- kkdai/youtube Download Youtube Video in Golang
Go Books
- https://github.com/dariubs/GoBooks
- https://lets-go.alexedwards.net Learn to Build Professional Web Applications with Go
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.
- Mathieu-Desrochers/Learning-Go Minimal working examples of Go's unique features.
Dockerfile for go
Videos
??? note "Click to expand!"
<center>
<iframe width="560" height="315" src="https://www.youtube.com/embed/yyUHQIec83I" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</center>
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