Skip to content

Instantly share code, notes, and snippets.

@Met4tron
Last active January 3, 2024 17:36
Show Gist options
  • Save Met4tron/395a7380a9ccd6b8c97e2541d16f06b1 to your computer and use it in GitHub Desktop.
Save Met4tron/395a7380a9ccd6b8c97e2541d16f06b1 to your computer and use it in GitHub Desktop.
Golang - Q&A + FAQ

Motivos

  1. Porque aprender Golang e não Rust?
  2. Porque aprender Golang e não JS/TS?
  3. O quão custoso é a simplicidade do Golang?
  4. Quais os pontos negativos do Golang?

Mercado

  1. Quais os principais players/empresas que utilizam Golang no BR?
  2. Existem vagas mid/senior? Só vejo vaga SR+
  3. Existem vagas para Backend, sem que envolva infraOps?
  4. Há perspectiva de crescimento de demanda/vagas para Golang?

Idioms

  1. é preferivel utilizar http (standard) ou algum framework/router?
  2. injeção de dependencias via reflector ou instanciando tudo na mão? (Wire ou Dig)
  3. quais o padrões de códigos são comuns em Golang?
  4. caso tenha migrado para golang de uma linguagem POO, como foi a adaptação?

Padrões

  1. Como voce organizaria uma API REST modular com Golang?
  2. Quais arquiteturas são mais usadas em Golang?
  3. Quais motivos de não usar determinada Arquitetura em Golang?
  4. Quais são as principais libs usadas no dia a dia?
@Met4tron
Copy link
Author

Met4tron commented Jan 3, 2024

Idioms

  1. Quando usar ponteiros? Somente em casos de alteração de valores por referencia?
  2. Como obrigar uma struct seguir uma interface?
  3. Como e quando usar Context?

Patterns

  1. Quais as diferenças de usar uma Mutex e Atomic Operations? https://pkg.go.dev/sync/atomic
  2. Logging estruturado é feito de que maneira? Usando algo do std (https://pkg.go.dev/golang.org/x/exp/slog) ou zap (https://github.com/uber-go/zap) e outros pacotes de terceiros.
  3. Quando emitir um panic ou fatal? Qual a diferença entre os dois?
  4. Como criar um graceful shutdown para uma API?

Database

  1. std lib oferece suporte a sql (https://pkg.go.dev/database/sql), seu uso é indicado? Caso não seja, há complementos para a std lib ou uma lib de terceiros?
  2. Em caso de utilizar um ORM, qual seria o indicado?
  3. Em caso de utilizar um Query Builder, qual seria o indicado?
  4. Quais ferramentas para migrations tem disponiveis em Golang?
  5. Temos sqlc (https://sqlc.dev/) para geração de types/queries fazendo uma introspecção da database afim de gerar os types/queries, é comum no mercado esse método?

ORM

https://gorm.io/

Migrations

https://github.com/amacneil/dbmate
https://github.com/pressly/goose

Cloud

  1. Como é o suporte nas principais nuvens, para o runtime?
    1.1 Existem sdk para Golang, com a maioria das funcionalidades e sendo bem mantidas?
    1.2 Functions tem suporte para Golang? AWS Já contém

Comunidade

  1. Quais os eventos voltados para Golang que temos no BR?
  2. Quais os eventos voltados para Golang que temos internacionalmente?
  3. Quais são as pessoas referencias em Golang nacionalmente?
  4. Quais são as pessoas referencias em Golang internalcionamente?

Estudos

  1. Quais livros voce indicaria como leitura obrigatória em Golang?
  2. Quais cursos/artigos voce indicaria como leitura obrigatória?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment