Pare de codificar tudo manualmente: sobrecarregar seu desenvolvimento com essas 6 bibliotecas

Se você acabou de mudar de PHP ou Java, provavelmente teve esse pensamento: a biblioteca padrão do Go é incrível e tem tudo, mas quando é hora de criar um aplicativo da Web adequado, parece que você precisa construir tudo do zero. Roteamento, config, orm … você está esgotado antes mesmo do projeto começar. Leve de alguém que esteve lá: essa é a maneira errada de pensar. Os Gophers experientes aprendem há muito tempo a usar as ferramentas certas para o trabalho. Hoje, estou abrindo meu kit de ferramentas para compartilhar as 6 bibliotecas que se tornaram problemas padrão em quase todos os projetos do Go. Curve -se! Vamos rolar. Gin: O padrão de fato para o desenvolvimento da web que pensa em escrever uma API em Go? Nem pense sobre isso – em cada dez projetos usam gin. Por que? Uma palavra: rápido. O desempenho de roteamento de Gin é de primeira linha e sua API é incrivelmente intuitiva. Você pode colocar um servidor HTTP em funcionamento em apenas algumas linhas de código, permitindo que você concentre toda a sua energia na lógica de negócios. O que o torna tão bom? Rápido. Sério rápido: ele usa o HTTPROUTER sob o capô, então o desempenho não é um problema. Ecossistema de middleware rico: log, autenticação, compactação … basta conectar o que você precisar, como tijolos de Lego. Super Handy. Morto simples: sem conceitos sofisticados e sofisticados. A curva de aprendizado é praticamente plana. Confira o código: pacote principal importar “github.com/gin-gony/gin” func main () {// cria um roteador com middleware padrão (logger e recuperação) r: = gin.default () r.get (“/hello”, func (c *gin.Context) {c.json (200,/hel), “”: c *gin.context) {c.json (200,/gin.h “” “:”: c *messel! R.Run (“: 8080”)} Digite o modo de tela cheia de saída de tela cheia ridiculamente fácil, certo? Viper: domar suas configurações confusas à medida que um aplicativo cresce, sua configuração se torna uma bagunça: config.yaml, variáveis de ambiente, sinalizadores de linha de comando … Qual deles tem precedência? Viper está aqui para terminar o caos. O que isso pode fazer por você? Lida com qualquer formato: JSON, TOML, YAML, HCL, ENV Files – não é exigente. Você define a prioridade: você pode definir a ordem de precedência, como: sinalizadores de linha de comando> Variáveis de ambiente> arquivo de configuração. Recarregar ao vivo: altere seu arquivo de configuração e o Viper pode recarregá -lo automaticamente sem reiniciar seu aplicativo. Esta é uma dádiva de Deus durante o desenvolvimento. Por exemplo, lendo um config.yaml: # config.yaml Server: Port: 8080 Banco de dados: Usuário: “Admin” Digite o modo de tela de tela cheia Modo de tela cheia // main.go importar “github.com/spf13/viper” // … (algum código omitt) Viper.SetConfigname (“config”) VIPER.D). : = Viper.getInt (“Server.port”) // Obtém facilmente 8080 User: = Viper.getString (“Database.user”) // Gets “admin” Digite o modo de tela cheia de protuberância fullcreen Gorm: Diga adeus a escrever SQL RAW se ainda estiver escrevindo meticulosamente as strings RAW. Ele permite que você interaja com seu banco de dados elegantemente, manipulando as estruturas go. Por que todo mundo ama isso? Uma alegria para escrever: sua API em cadeia faz seu código ler como inglês claro. Recursos poderosos: associações, transações, ganchos – todas essas operações complexas são tratadas para você. Migração automática: Defina sua estrutura e ela criará ou atualizará automaticamente a tabela de banco de dados para você. Para pequenos projetos, este é um sonho tornado realidade. Tenha uma idéia: importe a estrutura do usuário do tipo “gorm.io/gorm” {gorm.model name string int} // … db conexão … // Adicione um novo usuário db.create (& user {name: “wang antigo”, idade: 30}) // Encontre wang antigo var Var usuário db.first (& user, “name =? Modo de tela cheia muito mais agradável do que escrever a inserção … e selecionar …, não é? Goconvey: torna o teste menos uma tarefa, vamos ser honestos, quase ninguém adora escrever testes. Mas Goconvey consegue tornar essa tarefa … meio divertida. Seu recurso assassino é a interface do usuário da web. Ao alterar seu código, ele executa testes em tempo real no seu navegador. Barra verde ou barra vermelha, você recebe feedback instantâneo. Seus destaques: diz como uma história: sua DSL (linguagem específica de domínio) torna a lógica de teste incrivelmente clara. UI da web ao vivo: esse é o principal recurso. É um divisor de águas que aumentará sua motivação para escrever testes. Relatórios de cobertura internos: veja exatamente o que você perdeu, cristalino. O código de teste se parece com o seguinte: importar (“testing”. “Github.com/smartyStreets/goconvey/convey”) func add (a, b int) int {return a + b} func testAddition (t *testing.t) {Convey (“dada uma função de adição”, t, func () {So (So (So (1 0)})} Digite o modo de saída do modo de tela cheia, basta digitar o Goconvey no seu terminal e depois sentar e observar os resultados no seu navegador. GO REDIS: O único cliente Redis você precisará do que o projeto de back -end moderno não depende do Redis? Cache, filas de mensagens, bloqueios distribuídos … Go-Redis é a melhor escolha na comunidade Go para interagir com Redis. É estável e completo de recursos. Por que escolher? API intuitiva: seus nomes de funções são quase idênticos aos comandos nativos do Redis, então quase não há curva de aprendizado. Desempenho confiável: com um pool de conexão interno, ele tem um desempenho sólido sob alta concorrência. Possui todos os recursos: Pipeline, Transações, Pub/Sub, Sentinel e Modo de Cluster são todos suportados. Aqui está um conjunto simples/get: importe “github.com/go-redis/redis/v8” // … RDB Inicialização do cliente … ctx: = context.background () rdb.set (ctx, “estrutura”, “gin”, 0) val, _: = rdb.get (ctx, “estrutura”). Saia do modo de tela cheia Logrus: para o amor de Deus, pare de depuração com fmt.println! Ainda estourando seu código com fmt.println para depuração? Amigo, é hora de subir de nível. O Logrus ajuda você a produzir logs JSON estruturados, o que é crucial para coletar e analisá -los posteriormente com ferramentas como a pilha de alces. O que torna o Logrus incrível: o registro estruturado é uma dádiva de Deus: você pode adicionar campos fixos a cada entrada de log (como um request_id), fazendo filtragem e pesquisar uma brisa ao solucionar problemas. Níveis de log: informações, aviso, erro tornam a importância de cada entrada de log imediatamente óbvia. GAYS: Envie facilmente logs de erros para serviços como Slack, Sentry ou outros para alerta em tempo real. Veja, você pode fazer login como o seguinte: importar log “github.com/sirupsen/Logrus” func main () {log.setFormatter (& log.jsonformatter {}) log.withfields (log.fields {“event”: “login”, “user_id”: 10086,}). {“Event”: “Login”, “Level”: “Info”, “Msg”: “Usuário logou com sucesso”, “Time”: “…”, “User_id”: 10086} Digite o modo de saída de tela cheia não é assim melhor do que uma tela cheia de figuras simples? Primeiro, você precisa configurar o ambiente … tudo bem, você tem as ferramentas. Mas aqui está o problema. Para obter toda essa pilha (Go + Gin + Gorm + Redis + MySQL …) funcionando localmente, você precisa: instalar Go, configurar Gopath, GoProxy … quer experimentar uma nova versão? Ótimo, hora de mexer com tudo de novo. Instale o nginx/caddy e escreva um monte de configurações de proxy reverso apenas para usar um domínio local. Instale e gerencie MySQL, Redis e PostgreSQL separadamente e lide com conflitos portuários. Quebrar acidentalmente seu banco de dados? Esqueceu de fazer o backup? Hora de entrar em pânico. Se cada um desses pontos atingiu um nervo, Servbay é seu cavaleiro de armadura brilhante (bem, não literalmente). Não ouvi falar de ServBay para o seu ambiente de desenvolvimento? Deixe -me dar a você o desdém. ServBay é um ambiente de desenvolvimento integrado para desenvolvedores da Web, atualmente suportando Windows e MacOS. É um kit de ferramentas de pilha completa com uma interface gráfica que libera desenvolvedores da configuração tediosa do ambiente. Como isso facilita sua vida? ✅ GO GERENCIAMENTO DE VERSÃO? Um pedaço de bolo. Deseja experimentar um novo recurso no Go 1.22 sem estragar seu projeto antigo que depende do GO 1.20? O ServBay permite alternar entre versões em um segundo, como alterar os canais de TV. Eles não interferem entre si. ✅ Túneis locais com um clique? Consegui isso também. Ainda brincando com Ngrok? Precisa mostrar a um cliente uma demonstração ou depurar um webhook de um serviço como Stripe que requer um URL público? O ServBay possui um recurso de tunelamento embutido. Um clique e seu aplicativo local recebe um domínio público que você pode compartilhar com qualquer pessoa. Depois de usá -lo, você se perguntará como você morou sem ele. ✅ Proxy reverso? Apenas aponte e clique. Chega de estudar sintaxe conferl do nginx. No ServBay, insira o endereço do seu projeto e o domínio desejado e ele lida com o resto automaticamente – mesmo a configuração de HTTPS para você. ✅ Centro de serviço único: não é apenas para ir. Python, Java, Node.JS, Mariaadb, PostgreSQL, Redis, MongoDB … Todos os serviços comuns estão prontos para ir. Inicie ou pare com um único clique. Limpo e simples. ✅ Backups automáticos de banco de dados: esse recurso é o seu cartão Get-fora da Jail. O ServBay pode agendar backups automáticos de banco de dados para você. Largar acidentalmente um banco de dados? Fique calmo, restaure a partir de um backup e volte a relaxar. Com o ServBay, sua rotina diária se torna: Laptop aberto -> Open ServBay -> Inicie os serviços necessários com alguns cliques -> IDE aberto -> Comece a codificar alegremente. Toda essa configuração de ambiente irritante pode ir para o inferno. Finalmente, uma ótima ferramenta não grita sobre o quão incrível é; Silenciosamente, torna seu trabalho mais rápido e mais agradável. As bibliotecas de 6 Go que conversamos hoje são as rodas que fazem você “voar”. E Servbay é a equipe pessoal de pit que permite que você se concentre nas corridas, sem se preocupar com pneus furados ou reabastecer. Espero que este artigo ajude. Passe seu tempo criando, não lutando com seu ambiente.

Fonte

Publicar comentário

Você pode ter perdido