Go
https://gyazo.com/c1515bab0fb43aeb3318c9c76e00a635https://gyazo.com/c7bd9ff1709c71bfa717e80fbc2576b7https://gyazo.com/cb72a2f8f47e6ad788c060b8c409665chttps://gyazo.com/8be7a294a91eee543931928efcf3d373https://gyazo.com/4e4cbfd4f43fae1d8a3de725899c3cd5https://gyazo.com/99868f78e2854dd59de9b03a74ae5600https://gyazo.com/0865ac175574b816aaf34f71b5efa68d
mascot
Gopher
https://gyazo.com/b87528035e625e8e2361184861358b0e
tottie000/GopherIllustrations: This is an illustration of Gopher, the mascot of the Go programming language.
document
Documentation - The Go Programming Language
playground
Go Playground - The Go Programming Language
A Tour of Go
Go での package 設計
Go の main で複數の server を起動し終了する
Go での test の書き方
Go の functional option pattern
Go channel で network 越しに送るには?
代數的 data 型 in Go
generics
Tutorial: Getting started with generics - The Go Programming Language
fuzzing
Tutorial: Getting started with fuzzing - The Go Programming Language
property based testing の一種としてだなぁ。手法としては fuzzing を使ふ property based testing でよくある QuickCheck 的なやつ
安裝
asdf-vm : kennyp/asdf-golang: golang plugin for asdf version manager https://github.com/asdf-vm/asdf
$ asdf install golang x.y.z
TinyGo
TinyGo
tinygo-org/tinygo: Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
開發道具
tools · pkg.go.dev
project 管理
formatter
$ gofmt
linter
Introduction | golangci-lint
Run golangci-lint · Actions · GitHub Marketplace
test
$ go test
documentation
godoc · pkg.go.dev
依存更新
$ go get -u ./... && go mod tidy
Language Server
gopls · pkg.go.dev
GitHub Actions
Setup Go environment · Actions · GitHub Marketplace
cache/examples.md at main · actions/cache#Go - Modules
debug
go-delve/delve: Delve is a debugger for the Go programming language.
非公開モジュールやローカルで変更したモジュールをGo Modules(vgo)環境で利用する3つの方法 - Fenrir Engineersして fmt.Printf(%v\n, 〜)
REPL
The Go Playground
motemen/gore: Yet another Go REPL that works nicely. Featured with line editing, code completion, and more.
好く使ふ library
repository
Go Packages
A curated list of awesome Go frameworks, libraries and software - Awesome Go
依存性の注入 (DI)
google/wire: Compile-time Dependency Injection for Go
cosmtrek/air: ☁️ Live reload for Go apps
CLI (command line interface)
Cobra. Dev
GUI (graphical user interface)
Gio UI
Web application framework
Echo - High performance, minimalist Go web framework
認證
markbates/goth: Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications.
DB
query
sqlc
sqlc.dev | Compile SQL to type-safe Go
kyleconroy/sqlc: Generate type-safe code from SQL
sqlx
jmoiron/sqlx: general purpose extensions to golang's database/sql
goqu
doug-martin/goqu: SQL builder and query library for golang
ORM
ent
ent
GORM
GORM - The fantastic ORM library for Golang, aims to be developer friendly.
migration
golang-migrate/migrate: Database migrations. CLI and Golang library.
rubenv/sql-migrate: SQL schema migration tool for Go.
Atlas
Atlas | Open-source database schema management tool
RedisRedis.icon
redis/rueidis: A fast Golang Redis client that supports Client Side Caching, Auto Pipelining, Generics OM, RedisJSON, RedisBloom, RediSearch, etc.
OpenAPIOpenAPI.icon
OpenAPI Initiative golang toolkit
deepmap/oapi-codegen: Generate Go client and server boilerplate from OpenAPI 3 specifications
GraphQLGraphQL.icon
gqlgen
graphql-go/graphql: An implementation of GraphQL for Go / Golang
gRPCgRPC.icon
Quick start | Go | gRPC
logging
go-logr/logr: A simple logging interface for Go
uber-go/zap: Blazing fast, structured, leveled logging in Go.
rs/zerolog: Zero Allocation JSON Logger
infrastructure
AWS CDK
Go CDK
google/go-cloud: The Go Cloud Development Kit (Go CDK): A library and tools for open cloud development in Go.
programming language
Joker
ClojureClojure.icon 方言
Joker
candid82/joker: Small Clojure interpreter, linter and formatter.
goby
Ruby-likeRuby.icon
goby-lang/goby: Goby - Yet another programming language written in Go