Skip to content

jeffotoni/groadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Português

The intent of this guide is to give you an idea about the Go ecosystem and help guide your learning if you are confused. It is mainly focused on presenting the tools and concepts used in web development. Feel free to send comments

  • suggestions or even a PR improving at some point.

I will be super happy to know that you would like to collaborate or that we helped in some way in your formation when it comes to Go.

Go Roadmap

Roadmap Go

Roadmap Go

This browser does not support PDFs. Please download the PDF to view it: Download PDF.

Sumary

GO Basic & Intermediary

  1. Basic & Intermediate Concepts

    Variables, Types, and Operators
    - generics
    - constants

    if/else, switch
    - switch
    - if / else

    Loops (for, range)
    - for
    - range

    Functions and Methods
    - functions
    - variadic functions
    - return
    - closures/anonymous functions
    - methods
    - defer

    Data Structures (array, slice, map, struct)
    - array
    - slice
    - make
    - new
    - maps
    - structs

    Pointers
    - pointers

    Types
    - types
    - type interface
    - interface{}

    Initialization
    - iota
    - func init

    Errors, and Panic/Recover
    - error
    - panic
    - recover

Goroutines in Go

  1. Goroutine
    - channel
    - channel buffer
    - select
    - sync.Mutex
    - sync.Map
    - sync.WaitGroup
    - sync.Pool

Runtime

  1. Runtime
    - runtime.GOMAXPROCS
    - runtime.NumCPU()
    - runtime.NumGoroutine()

Go

  1. Go Test
    - go test
    - go test -bench . -benchmem
    - go test -coverprofile
    - go test -fuzz=Fuzz
    - [go test -run ^NameFunc$]
    - [go test -v]

    Go Build & Go Run
    - [CGO_ENABLED=0 go build]
    - [go build -buildmode=plugin]
    - [go build -gcflags -S]
    - [go build -gcflags '-m -l']
    - [go build -ldflags="-s -w"]
    - [GOOS=linux GOARCH=amd64 go build]
    - [go build GOARCH=wasm GOOS=js go build]
    - [go help buildmode]
    - go run .
    - [go run -race .]

    Installation
    - go install golang.org/x/website/tour@latest

Modules

  1. Package & Import
    - import
    - import "fmt"
    - import "my-pkg/util"
    - package mypkg

    Go Module Features
    - go.mod
    - go.sum
    - go mod init
    - [go mod tidy]
    - [go mod vendor]
    - [go mod download]
    - go env
    - GO111MODULE=on
    - GOARCH=amd64
    - GOPRIVATE
    - GOPROXY
    - GOSUMDB

Pattern

  1. Padrões
    - Builder
    - Factory Method
    - Abstract Factory
    - Adapter
    - Bridge
    - Facade
    - Composite
    - Decorator
    - Prototype
    - Singleton
    - Template Method

Fasthttp

  1. Frameworks - Fiber
    - Gramework

    Middleware
    - Iu
    - fiber-middleware

    Roteamento
    - fasthttp-routing
    - atreugo

    Websocket
    - fast-http-socket
    - fastws

Net/Http

  1. Server
    - http.NewServeMux
    - http.Server
    - http.HandlerFunc
    - http.Handle
    - http.Handler
    - http.Status
    - next.ServeHTTP
    - ListenAndServe
    - ListenAndServeTLS
    - http.FileServer
    - http.Dir
    - http.StripPrefix
    - Embed
    - http.FS
    - html/template
    - template.ParseFiles
    - template.Parse
    - template.ParseFS
    - template.New
    - template.Must
    - template.Execute
    - template.ExecuteTemplate

    Client
    - http.Transport
    - http.Client
    - http.Get
    - http.Post
    - http.PostForm
    - ioutil.ReadAll(r io.Reader)
    - http.NewRequest
    - http.NewRequestContext
    - Context.WithCancel

    Web Frameworks
    - gin
    - echo
    - beego
    - iris
    - martini
    - gocraft
    - revel
    - buffalo
    - chi
    - macaron
    - webgo
    - quick

    Routers
    - alien
    - bellt
    - bone
    - bxog
    - goroute
    - httprouter
    - httptreemux
    - gorilla/mux
    - ozzo-routing
    - pure
    - siesta
    - vestigo
    - xmux
    - xujiajun/gorouter

    Middlewares
    - negroni
    - muxchain
    - go-wrap
    - interpose
    - rye

    Middeware Libs
    - CORS
    - rate limit
    - logging
    - metrics
    - auth
    - tracing
    - limiter
    - jwt
    - logger
    - cache
    - Instrumentation
    - Prometheus
    - Datadog
    - New Relic
    - loggly

Previous Knowledge

  1. Git
    - git
    - git init
    - git add .
    - git commit
    - git push
    - git merge
    - git rebase
    - git log
    - git diff
    - git show
    - git clone

    Docker
    - docker run
    - docker build
    - docker images
    - docker push
    - docker login
    - docker ps -a

    Relational
    - PostgreSQL
    - MySql
    - SqlServer
    - Oracle
    - MariaDB

    NoSql
    - MongoDB
    - Cassandra
    - RavenDB
    - RethinkDB
    - CouchDB
    - CockroachDB
    - Redis
    - Elasticsearch
    - ArangoDB

    Queue
    - RabbitMQ
    - KubeMQ
    - SQS Aws
    - Pub/Sub Google Cloud
    - Beanstalk
    - ActiveMQ

    Stream
    - Kafka
    - Redpanda
    - KubeMQ
    - Nats
    - Kinesis Aws

    Protocols
    - Applications
    - gRPC
    - rpc
    - xml-rpc
    - WebSocket
    - Serialization
    - Protobuf Buffer
    - gob
    - msgpack
    - bson
    - Avro
    - Thrift
    - json
    - xml
    - tcp
    - udp
    - http
    - http2
    - http3
    - MQTT

Releases

No releases published

Packages

No packages published