An open API service indexing awesome lists of open source software.

https://github.com/bulletdev/100daysofcodego

100 days of code GOlang
https://github.com/bulletdev/100daysofcodego

100daysofcode go golang

Last synced: 9 months ago
JSON representation

100 days of code GOlang

Awesome Lists containing this project

README

          

#100DaysOfCode

100 DAYS OF CODE Back End GO💻

Bem-vindo ao meu desafio de 100 dias de programação em Go! Estou comprometido em aprimorar minhas habilidades nesta linguagem poderosa e versátil. O objetivo é simples: estudar e praticar programação todos os dias, sem exceção, ao longo de 100 dias consecutivos.

Junte-se a mim nesta jornada de crescimento e aprendizado. Estou animado para compartilhar minhas experiências, desafios e conquistas ao longo do caminho.

Estrutura do desafio:

Clique para exibir

r


• Dias 1-10: Fundamentos do Go (sintaxe, tipos de dados, estruturas de controle, funções, arrays, slices, maps, structs, manipulação de arquivos, I/O, manipulação de erros).

• Dias 11-20: Programação Concorrente (goroutines, canais, WaitGroups, Mutexes, contextos, padrões de concorrência, select e timeouts, pool de goroutines, concorrência com pipelines).

• Dias 21-30: Desenvolvimento Web (net/http, configuração de servidor HTTP, manipulação de rotas, requisições e respostas JSON, middleware, autenticação básica, sessões e cookies, upload de arquivos, WebSockets).

• Dias 31-40: Banco de Dados (conexão com PostgreSQL, operações CRUD, uso de GORM, migrações de banco de dados, testes de integração, indexação e otimização de consultas, transações, relacionamentos entre tabelas, cache com Redis).

• Dias 41-50: Ferramentas e Boas Práticas (logging, configuração e variáveis de ambiente, gerenciamento de dependências, testes unitários, cobertura de código, documentação com GoDoc, benchmarking, profiling, ferramentas de linting).

• Dias 51-60: APIs Avançadas (GraphQL, gRPC, autenticação JWT, rate limiting, cache de API, monitoramento de APIs, documentação de APIs com Swagger, testes de carga, segurança em APIs).

• Dias 61-70: Ferramentas de Desenvolvimento (Docker, Kubernetes, CI/CD com GitHub Actions, monitoramento com Prometheus, logging centralizado com ELK Stack, integração com serviços externos).

• Dias 71-80: Segurança (práticas de segurança em Go, validação de entrada, proteção contra ataques comuns, criptografia, segurança em APIs, segurança em banco de dados, segurança em autenticação, segurança em comunicação, auditoria e logging de segurança).

• Dias 81-90: Performance e Escalabilidade (profiling e benchmarking, otimização de código, escalabilidade horizontal e vertical, load balancing, cache de aplicação).

• Dias 91-100: Projeto Final (planejamento, design, implementação, testes e documentação do projeto final).


> Teste o código aqui

## 💻Roteiro de Estudos

Meu roteiro está focado em desenvolvimento de back-end com Go, pois acredito que dominar esta área é essencial para criar aplicações robustas e escaláveis. Para formar meu roteiro de estudos, baseei-me em diversos recursos, incluindo documentação oficial, tutoriais online e livros especializados.

| Dia | Tema | Descrição |
| :---------------- | :--------- | :---------------------------------- |
| 01 | Instalação e configuração do ambiente de desenvolvimento. | |
| 02 | Sintaxe básica e tipos de dados. | |
| 03 | Estruturas de controle (if, for, switch). | |
| 04 | Funções e métodos. | |
| 05 | Arrays e slices. | |
| 06 | Maps e structs. | |
| 07 | Manipulação de arquivos. | |
| 08 | Entrada e saída (I/O). | |
| 09 | Manipulação de erros. | |
| 10 | Projeto pequeno integrando os fundamentos. | |
| 11 | Introdução a goroutines. | |
| 12 | Canais (channels). | |
| 13 | WaitGroups. | |
| 14 | Mutexes. | |
| 15 | Contextos. | |
| 16 | Padrões de concorrência. | |
| 17 | Select e timeouts. | |
| 18 | Pool de goroutines. | |
| 19 | Concorrência com pipelines. | |
| 20 | Projeto pequeno usando concorrência. | |
| 21 | Introdução ao net/http. | |
| 22 | Configuração de um servidor HTTP. | |
| 23 | Manipulação de rotas. | |
| 24 | Requisições e respostas JSON. | |
| 25 | Middleware. | |
| 26 | Autenticação básica. | |
| 27 | Sessões e cookies. | |
| 28 | Upload de arquivos. | |
| 29 | WebSockets. | |
| 30 | Projeto de API simples. | |
| 31 | Conexão com PostgreSQL. | |
| 32 | Operações CRUD básicas. | |
| 33 | Uso de GORM. | |
| 34 | Migrações de banco de dados. | |
| 35 | Testes de integração. | |
| 36 | Indexação e otimização de consultas. | |
| 37 | Transações. | |
| 38 | Relacionamentos entre tabelas. | |
| 39 | Cache com Redis. | |
| 40 | Projeto com banco de dados. | |
| 41 | Logging. | |
| 42 | Configuração e variáveis de ambiente. | |
| 43 | Gerenciamento de dependências. | |
| 44 | Testes unitários. | |
| 45 | Cobertura de código. | |
| 46 | Documentação com GoDoc. | |
| 47 | Benchmarking. | |
| 48 | Profiling. | |
| 49 | Ferramentas de linting. | |
| 50 | Projeto de boas práticas. | |
| 51 | GraphQL com Go. | |
| 52 | gRPC. | |
| 53 | Autenticação JWT. | |
| 54 | Rate limiting. | |
| 55 | Cache de API. | |
| 56 | Monitoramento de APIs. | |
| 57 | Documentação de APIs com Swagger. | |
| 58 | Testes de carga. | |
| 59 | Segurança em APIs. | |
| 60 | Projeto de API avançada. | |
| 61 | Docker. | |
| 62 | Kubernetes. | |
| 63 | CI/CD com GitHub Actions. | |
| 64 | Monitoramento com Prometheus. | |
| 65 | Logging centralizado com ELK Stack. | |
| 66 | Integração com serviços externos (APIs de terceiros). | |
| 67 | Projeto de DevOps. | |
| 68 | Integração contínua. | |
| 69 | Entrega contínua. | |
| 70 | Projeto de integração. | |
| 71 | Práticas de segurança em Go. | |
| 72 | Validação de entrada. | |
| 73 | Proteção contra ataques comuns (XSS, CSRF). | |
| 74 | Criptografia. | |
| 75 | Segurança em APIs. | |
| 76 | Segurança em banco de dados. | |
| 77 | Segurança em autenticação. | |
| 78 | Segurança em comunicação (HTTPS, TLS). | |
| 79 | Auditoria e logging de segurança. | |
| 80 | Projeto focado em segurança. | |
| 81 | Profiling e benchmarking. | |
| 82 | Otimização de código. | |
| 83 | Escalabilidade horizontal e vertical. | |
| 84 | Load balancing. | |
| 85 | Cache de aplicação. | |
| 86 | Projeto de performance. | |
| 87 | Escalabilidade de banco de dados. | |
| 88 | Projeto de escalabilidade. | |
| 89 | Testes de performance. | |
| 90 | Projeto de otimização. | |
| 91 | Planejamento do projeto final. | |
| 92 | Design do projeto final. | |
| 93 | Implementação do projeto final. | |
| 94 | Implementação do projeto final. | |
| 95 | Implementação do projeto final. | |
| 96 | Testes do projeto final. | |
| 97 | Testes do projeto final. | |
| 98 | Refinamento do projeto final. | |
| 99 | Documentação do projeto final. | |
| 100 | Apresentação do projeto final. | |

## Como Usar:

1. Faça download do projeto e descompacte a pasta.
2. Copie e Cole a pasta nos eu "htdocs".
3. Inicie o Apache.
4. Coloque o caminho do localhost no seu navegador para acessar as paginas.
5. Esse é um projeto Back End, portanto a maioria das atividades não possuem telas.

## Repositórios de projetos desenvolvidos:

API REST

[![Outro Repositório](https://img.shields.io/badge/%20Repositório-Ver%20Aqui-blue.svg)](https://github.com/Bulletdev/magalu-cloud-api)

DEV QUEST

[![Outro Repositório](https://img.shields.io/badge/%20Repositório-Ver%20Aqui-red.svg)](https://github.com/Bulletdev/DevQuest)

##

Quer partipicar do projeto e não sabe por onde começar? Que tal dar uma olhadinha nas regras do desafio?

[![Outro Repositório](https://img.shields.io/badge/%20Repositório-Ver%20Aqui-green.svg)](https://github.com/sspacecoding/100DiasSpaceCoders)