Categoria:GoLang

Golang 06 — Módulos e dependências

This entry is parte 6 de 12 in the series Golang

Índice1. Inicializando um módulo1.1. Papel do go.mod1.2. Impacto nos imports1.3. Unidade de trabalho1.4. Observação2. Dependências2.1. Adicionando uma dependência2.2. Atualizando o go.mod2.3. Limpando dependências2.4. Fluxo prático2.5. Observação3. Instalando ferramentas com go install3.1. Observação3.2. Conexão com o fluxo anterior4. Módulos locais4.1. Cenário4.2. Inicializando os módulos4.3. Referenciando o módulo local4.4. Adicionando a dependência4.5. Observação4.6. Fluxo de trabalho5. Versionamento5.1. Significado das versões5.2. […]

CONSULTE MAIS INFORMAÇÃO

Golang – Refatoração e Empacotando de um App

Índice1. O Código do page2md2. Refatoração e Organização em Pacotes2.1. Inicializando o go.mod do Projeto2.2. Pacote Converter2.3. Pacote Downloader2.4. Pacote Utils2.5. Pacote Markdown2.6. Ajustes no arquivo main.go2.7. Ajustes Final3. Considerações FinaisMinha trajetória como hobista sempre esteve entrelaçada com o desenvolvimento de scripts shell, ferramentas personalizadas que criei para atender às minhas necessidades cotidianas. Em cada […]

CONSULTE MAIS INFORMAÇÃO

Json no Go

This entry is in the series Go

Índice1. Dados Estruturados1.1. Desempacotando JSON em Structs1.2. Arrays em JSON1.3. Arrays mais Elaboradas em JSON2. Desempacotar JSON em Dados Desestruturados3. Empacotando e Formatando Dados JSON4. Considerações FinaisOs arquivos JSON (JavaScript Object Notation) são vastamente empregados na troca de dados entre aplicações de forma simples, leve e rápida. Essencialmente JSON é um formato texto para o […]

CONSULTE MAIS INFORMAÇÃO

Golang – 11. Pacotes e Documentação no Go

This entry is parte 12 de 12 in the series Golang

Índice1. Pacotes e Documentação2. Nomeando os Pacotes2.1. Pacote cmath2.2. Pacote cnumeric3. Package main4. Biblioteca Padrão vs Local5. Documentando o Código5.1. Comentários em Go5.2. Convenções na Documentação 5.2.1. Documentando Tipos, Variáveis, Constantes, Funções e Pacotes5.3. Arquivo doc.go6. Considerações FinaisNeste artigo será apresentado a forma de se escrever pacotes em Go e como adicionar documentação ao seu […]

CONSULTE MAIS INFORMAÇÃO

Golang – 10. Goroutines – Canais

This entry is parte 11 de 12 in the series Golang

Índice1. Canal1.1. Exemplo 01: iniciando um canal1.1. Escrevendo e Lendo em um Canal1.2. Canal sem Buffer1.2.1. Exemplo 02: canal sem buffer1.3. Canal com Buffer1.3.1. Exemplo 03: canal com buffer1.4. Laço for-range e fechando o Canal1.4.1. Exemplo 04: for-range1.5. Select – case1.5.1. Exemplo 05: select-case2. Goroutines e Boas Práticas2.1. Canal Done2.1.1. Exemplo 06: canal done2.1.2. Exemplo […]

CONSULTE MAIS INFORMAÇÃO

Arquivos CSV no Go

Índice1. Lendo CSV com a biblioteca padrão1.1. Struct Reader1.1.1. Atributo Comma rune1.1.2. Atributo Comment rune1.1.3. Atributo FieldsPerRecord int1.1.4. Atributo LazyQuotes bool1.1.5. Atributo TrimLeadingSpace bool1.1.6. Atributo ReuseRecord bool1.1.6.1. Exemplo: reader_atributos.go – Testa os diferentes atributos do Reader1.1.7. csv.NewReader1.1.8. Método Read, ReadAll e FieldPos1.2. Struct Write1.2.1. Atributo Comma1.2.2. Atributo UseCRLF1.2.3. Função NewWriter1.2.4. Função Flush1.2.5. Função Write1.2.6. Função […]

CONSULTE MAIS INFORMAÇÃO

Golang 09 — Goroutines – Concorrência e Paralelismo

This entry is parte 10 de 12 in the series Golang

Índice1. Goroutines1.1. Canais1.2. Canais com buffer1.3. Fechamento de canais1.4. Select1.5. Padrões básicos de comunicação1.6. Sincronização explícita1.7. Scheduler e modelo de execução1.8. Contexto e cancelamento1.9. Deadlocks e bloqueios1.10. Pipeline de processamento2. Considerações finaisMuitas vezes se confunde concorrência com paralelismo, embora sejam conceitos distintos. Um dos criadores da linguagem Go resumiu bem essa diferença em uma de suas apresentações: […]

CONSULTE MAIS INFORMAÇÃO

Golang 08 — Interface

This entry is parte 9 de 12 in the series Golang

Em programas reais, raramente trabalhamos apenas com tipos concretos isolados. À medida que o sistema cresce, torna-se necessário definir comportamentos esperados, independentemente da implementação específica de cada tipo. Interfaces em Go existem para resolver exatamente esse problema. Em vez de focar na estrutura de um tipo, elas descrevem o que um valor é capaz de fazer. Uma […]

CONSULTE MAIS INFORMAÇÃO

Golang – 07. Biblioteca Padrão II – os, os/exec e os/user

This entry is parte 8 de 12 in the series Golang

Índice1. Pacote os1.1. Acessando Informações do Sistema1.1.1. Função os.GetEnv()1.1.2. Carregando Algumas Informações do Sistema1.2. Arquivos e Diretórios1.2.1. Funções Open, Create e OpenFile1.2.2. Função CreateTemp1.2.3. Descritor File1.2.4. Função ReadFile1.2.5. Função WriteFile1.3. Funções UserHomeDir, UserConfigDir e UserCacheDir2. Pacote os/exec2.1. Função LookPath2.2. Atributos da Cmd2.3. Função Command2.4. Função CommandContext2.5. Métodos da Cmd2.5.1. Método Output e CombinedOutput2.5.2. Médotos Run […]

CONSULTE MAIS INFORMAÇÃO

Golang – 06. Biblioteca Padrão I – fmt e strings

This entry is parte 7 de 12 in the series Golang

No universo da programação, a escolha de uma linguagem de programação é frequentemente influenciada pela riqueza de sua biblioteca padrão. Por exemplo, o Python é renomado pelo lema “batteries included”, que evidencia sua vasta biblioteca padrão, capacitando os desenvolvedores a construir uma ampla gama de produtos de maneira eficiente. Uma expectativa semelhante recai sobre qualquer […]

CONSULTE MAIS INFORMAÇÃO