{"id":23488541,"url":"https://github.com/bulletdev/100daysofcodego","last_synced_at":"2025-04-15T02:53:57.812Z","repository":{"id":265537760,"uuid":"896215306","full_name":"Bulletdev/100DaysOfCodeGO","owner":"Bulletdev","description":"100 days of code GOlang","archived":false,"fork":false,"pushed_at":"2024-11-29T20:20:01.000Z","size":14,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T02:53:51.985Z","etag":null,"topics":["100daysofcode","go","golang"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bulletdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-29T19:47:34.000Z","updated_at":"2024-12-09T07:06:45.000Z","dependencies_parsed_at":"2024-11-29T20:43:00.725Z","dependency_job_id":null,"html_url":"https://github.com/Bulletdev/100DaysOfCodeGO","commit_stats":null,"previous_names":["bulletdev/100daysofcodego"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bulletdev%2F100DaysOfCodeGO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bulletdev%2F100DaysOfCodeGO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bulletdev%2F100DaysOfCodeGO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bulletdev%2F100DaysOfCodeGO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bulletdev","download_url":"https://codeload.github.com/Bulletdev/100DaysOfCodeGO/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248997089,"owners_count":21195797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["100daysofcode","go","golang"],"created_at":"2024-12-24T23:12:25.301Z","updated_at":"2025-04-15T02:53:57.795Z","avatar_url":"https://github.com/Bulletdev.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"#100DaysOfCode\n\n\u003ch1 align=\"center\"\u003e100 DAYS OF CODE Back End GO💻 \u003c/h1\u003e\n\nBem-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.\n\nJunte-se a mim nesta jornada de crescimento e aprendizado. Estou animado para compartilhar minhas experiências, desafios e conquistas ao longo do caminho.\n\nEstrutura do desafio:\n\n\n\n\nClique para exibir\n\n\u003cdetails align=\"left\"\u003er\n  \u003csummary\u003e\u003c/summary\u003e \n  \n•  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).\n\n•  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).\n\n•  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).\n\n•  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).\n\n•  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).\n\n•  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).\n\n•  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).\n\n•  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).\n\n•  Dias 81-90: Performance e Escalabilidade (profiling e benchmarking, otimização de código, escalabilidade horizontal e vertical, load balancing, cache de aplicação).\n\n•  Dias 91-100: Projeto Final (planejamento, design, implementação, testes e documentação do projeto final).\n\u003c/details\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"http://img.shields.io/static/v1?label=STATUS\u0026message=EM%20DESENVOLVIMENTO\u0026color=GREEN\u0026style=for-the-badge\"/\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003ccode\u003e\u003ca href=\"https://go.dev/play/\" title=\"Go Lab\"\u003e\u003cimg width=\"55\" src=\"https://go.dev/images/go-logo-white.svg\"target=\"_blank\"\u003e\u003e Teste o código aqui\u003c/a\u003e\u003c/code\u003e\u003c/p\u003e\n\n## 💻Roteiro de Estudos\n\nMeu 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.\n\n| Dia  | Tema       | Descrição                           |\n| :---------------- | :--------- | :---------------------------------- |\n| 01 | Instalação e configuração do ambiente de desenvolvimento. |  |\n| 02 | Sintaxe básica e tipos de dados. |  |\n| 03 | Estruturas de controle (if, for, switch). |  |\n| 04 | Funções e métodos. |  |\n| 05 | Arrays e slices. |  |\n| 06 | Maps e structs. |  |\n| 07 | Manipulação de arquivos. |  |\n| 08 | Entrada e saída (I/O). |  |\n| 09 | Manipulação de erros. |  |\n| 10 | Projeto pequeno integrando os fundamentos. |  |\n| 11 | Introdução a goroutines. |  |\n| 12 | Canais (channels). |  |\n| 13 | WaitGroups. |  |\n| 14 | Mutexes. |  |\n| 15 | Contextos. |  |\n| 16 | Padrões de concorrência. |  |\n| 17 | Select e timeouts. |  |\n| 18 | Pool de goroutines. |  |\n| 19 | Concorrência com pipelines. |  |\n| 20 | Projeto pequeno usando concorrência. |  |\n| 21 | Introdução ao net/http. |  |\n| 22 | Configuração de um servidor HTTP. |  |\n| 23 | Manipulação de rotas. |  |\n| 24 | Requisições e respostas JSON. |  |\n| 25 | Middleware. |  |\n| 26 | Autenticação básica. |  |\n| 27 | Sessões e cookies. |  |\n| 28 | Upload de arquivos. |  |\n| 29 | WebSockets. |  |\n| 30 | Projeto de API simples. |  |\n| 31 | Conexão com PostgreSQL. |  |\n| 32 | Operações CRUD básicas. |  |\n| 33 | Uso de GORM. |  |\n| 34 | Migrações de banco de dados. |  |\n| 35 | Testes de integração. |  |\n| 36 | Indexação e otimização de consultas. |  |\n| 37 | Transações. |  |\n| 38 | Relacionamentos entre tabelas. |  |\n| 39 | Cache com Redis. |  |\n| 40 | Projeto com banco de dados. |  |\n| 41 | Logging. |  |\n| 42 | Configuração e variáveis de ambiente. |  |\n| 43 | Gerenciamento de dependências. |  |\n| 44 | Testes unitários. |  |\n| 45 | Cobertura de código. |  |\n| 46 | Documentação com GoDoc. |  |\n| 47 | Benchmarking. |  |\n| 48 | Profiling. |  |\n| 49 | Ferramentas de linting. |  |\n| 50 | Projeto de boas práticas. |  |\n| 51 | GraphQL com Go. |  |\n| 52 | gRPC. |  |\n| 53 | Autenticação JWT. |  |\n| 54 | Rate limiting. |  |\n| 55 | Cache de API. |  |\n| 56 | Monitoramento de APIs. |  |\n| 57 | Documentação de APIs com Swagger. |  |\n| 58 | Testes de carga. |  |\n| 59 | Segurança em APIs. |  |\n| 60 | Projeto de API avançada. |  |\n| 61 | Docker. |  |\n| 62 | Kubernetes. |  |\n| 63 | CI/CD com GitHub Actions. |  |\n| 64 | Monitoramento com Prometheus. |  |\n| 65 | Logging centralizado com ELK Stack. |  |\n| 66 | Integração com serviços externos (APIs de terceiros). |  |\n| 67 | Projeto de DevOps. |  |\n| 68 | Integração contínua. |  |\n| 69 | Entrega contínua. |  |\n| 70 | Projeto de integração. |  |\n| 71 | Práticas de segurança em Go. |  |\n| 72 | Validação de entrada. |  |\n| 73 | Proteção contra ataques comuns (XSS, CSRF). |  |\n| 74 | Criptografia. |  |\n| 75 | Segurança em APIs. |  |\n| 76 | Segurança em banco de dados. |  |\n| 77 | Segurança em autenticação. |  |\n| 78 | Segurança em comunicação (HTTPS, TLS). |  |\n| 79 | Auditoria e logging de segurança. |  |\n| 80 | Projeto focado em segurança. |  |\n| 81 | Profiling e benchmarking. |  |\n| 82 | Otimização de código. |  |\n| 83 | Escalabilidade horizontal e vertical. |  |\n| 84 | Load balancing. |  |\n| 85 | Cache de aplicação. |  |\n| 86 | Projeto de performance. |  |\n| 87 | Escalabilidade de banco de dados. |  |\n| 88 | Projeto de escalabilidade. |  |\n| 89 | Testes de performance. |  |\n| 90 | Projeto de otimização. |  |\n| 91 | Planejamento do projeto final. |  |\n| 92 | Design do projeto final. |  |\n| 93 | Implementação do projeto final. |  |\n| 94 | Implementação do projeto final. |  |\n| 95 | Implementação do projeto final. |  |\n| 96 | Testes do projeto final. |  |\n| 97 | Testes do projeto final. |  |\n| 98 | Refinamento do projeto final. |  |\n| 99 | Documentação do projeto final. |  |\n| 100 | Apresentação do projeto final. |  |\n\n\n## Como Usar:\n\n1. Faça download do projeto e descompacte a pasta.\n2. Copie e Cole a pasta nos eu \"htdocs\".\n3. Inicie o Apache.\n4. Coloque o caminho do localhost no seu navegador para acessar as paginas.\n5. Esse é um projeto Back End, portanto a maioria das atividades não possuem telas.\n\n## Repositórios de projetos desenvolvidos:\n\n\u003ch3\u003eAPI REST\u003c/h3\u003e \n\n[![Outro Repositório](https://img.shields.io/badge/%20Repositório-Ver%20Aqui-blue.svg)](https://github.com/Bulletdev/magalu-cloud-api)\n\n\n\n\u003ch3\u003eDEV QUEST\u003c/h3\u003e \n\n[![Outro Repositório](https://img.shields.io/badge/%20Repositório-Ver%20Aqui-red.svg)](https://github.com/Bulletdev/DevQuest)\n\n##\n\u003cp\u003eQuer partipicar do projeto e não sabe por onde começar? Que tal dar uma olhadinha nas regras do desafio?\u003c/p\u003e\n\n[![Outro Repositório](https://img.shields.io/badge/%20Repositório-Ver%20Aqui-green.svg)](https://github.com/sspacecoding/100DiasSpaceCoders)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletdev%2F100daysofcodego","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbulletdev%2F100daysofcodego","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletdev%2F100daysofcodego/lists"}