Curso de Go para iniciantes. Aprenda Go é um curso abrangente que ensina desde o básico até tópicos avançados da linguagem Go. Ministrado por Ellen Körbes, uma entusiasta da linguagem, o curso é gratuito e está disponível no YouTube e no GitHub. Acesse a playlist no YouTube aqui e o repositório no GitHub aqui.
Este projeto tem como objetivo criar um CLI para facilitar a navegação e o acesso ao conteúdo do curso Aprenda Go. O CLI foi desenvolvido em Go e utiliza as bibliotecas padrão da linguagem para criar um menu interativo que permite ao usuário acessar os tópicos do curso. O CLI esta sendo desenvolvido como parte da prática de estudos da linguagem Go.
Se você deseja contribuir com o projeto, fique à vontade para abrir uma issue ou submeter um pull request. Sua contribuição é muito bem-vinda!
Faça o clone do repositório:
git clone https://github.com/fabianoflorentino/aprendago.gitdocker compose build --no-cachedocker compose up -ddocker compose downO CLI oferece três subcomandos principais:
go run cmd/aprendago/main.go capsCapítulos do Curso
aprendago cap 1 topics Visão Geral do Curso
aprendago cap 2 topics Variáveis, Valores e Tipos
aprendago cap 3 topics Exercícios Ninja: Nível 1
...
go run cmd/aprendago/main.go cap 1 topicsVisão Geral do Curso
Bem-vindo!
Por que Go?
Sucesso
Recursos
Como esse curso funciona
Subcomandos do cap:
| Uso | Descrição |
|---|---|
aprendago cap <N> |
Mostra o overview do capítulo |
aprendago cap <N> topics |
Lista os tópicos do capítulo |
aprendago cap <N> overview |
Mostra o conteúdo completo do capítulo |
aprendago cap <N> "<tópico>" |
Mostra um tópico específico |
go run cmd/aprendago/main.go outlineVisão Geral do Curso
Bem-vindo!
Por que Go?
...go run cmd/aprendago/main.go --helpCLI para o curso Aprenda Go
Usage:
aprendago [flags]
aprendago [command]
Available Commands:
cap Acessa um capítulo do curso
caps Lista capítulos disponíveis
completion Generate the autocompletion script for the specified shell
help Help about any command
outline Exibe o outline completo do curso
Flags:
-h, --help help for aprendago
Use "aprendago [command] --help" for more information about a command.flowchart TD
CLI["aprendago <comando>"] --> Cobra["cobra rootCmd.Execute()"]
Cobra --> Caps["caps"]
Cobra --> Cap["cap <N>"]
Cobra --> Outline["outline"]
Cobra --> Help["--help"]
Caps --> CapsList["chapter.All()"]
CapsList --> CapsPrint["Exibe lista de capítulos"]
Cap --> CapParse["parseia args[0] → int"]
CapParse --> CapGet["chapter.Get(num)"]
CapGet --> CapArgs{"len(args) > 1?"}
CapArgs -->|"topics"| CapTopics["printChapterTopics(ch)"]
CapTopics --> TopicsRead["ch.Topics()"]
TopicsRead --> TopicsRender["Lista títulos das seções"]
CapArgs -->|"overview"| CapOverview["ch.Overview()"]
CapOverview --> OverviewLoop["Para cada tópico → ch.ExecTopic()"]
CapArgs -->|"<tópico>"| CapTopic["ch.ExecTopic(args[1])"]
CapTopic --> SectionFmt["section.New(rootDir).Format(title)"]
SectionFmt --> SectionRead["reader.ReadSection()"]
SectionFmt --> OverviewFmt["format.FormatOverview()"]
OverviewLoop --> SectionFmt
Outline --> OutlineAll["chapter.All()"]
OutlineAll --> OutlineEach["Para cada capítulo"]
OutlineEach --> TopicsRead
style CapsList fill:#3b82f6,color:#fff
style CapGet fill:#3b82f6,color:#fff
style SectionRead fill:#22c55e,color:#fff
style OverviewFmt fill:#22c55e,color:#fff
flowchart TD
subgraph cmd["cmd/ — Cobra Commands"]
Main["aprendago/main.go<br/>Execute()"]
Root["root.go<br/>rootCmd + init()"]
Cap["cap.go<br/>cap <N>"]
Caps["caps.go<br/>caps"]
Outline["outline.go<br/>outline"]
Register["register.go<br/>blank imports → init()"]
end
subgraph internal["internal/ — Core Logic"]
Chapter["chapter/<br/>Chapter type + registry"]
ChapterTypes["types.go<br/>Overview(), ExecTopic(), Topics()"]
Registry["registry.go<br/>Register(), All(), Get()"]
ChapterPkgs["<capítulo>/*/<br/>27 packages com:<br/>chapter.go (init) + overview.yml"]
end
subgraph pkg["pkg/ — Shared Utilities"]
Section["section/<br/>Section.New().Format()"]
Reader["reader/<br/>YAML parsing"]
Format["format/<br/>FormatOverview() template"]
Output["output/<br/>Test helpers"]
Trim["trim/<br/>String utils"]
end
Main --> Root
Root --> Cap
Root --> Caps
Root --> Outline
Cap --> Chapter
Caps --> Chapter
Outline --> Chapter
ChapterTypes --> Section
Chapter --> Registry
Registry -.->|"init()"| ChapterPkgs
Register -.-> ChapterPkgs
Section --> Reader
Section --> Format
Reader --> Format
.
├── cmd/ # CLI entrypoint and cobra commands
│ ├── aprendago/main.go
│ ├── cap.go # aprendago cap <N> [topics|overview|<topic>]
│ ├── caps.go # aprendago caps
│ ├── outline.go # aprendago outline
│ ├── register.go # blank imports for chapter self-registration
│ └── root.go # cobra root command
├── internal/
│ ├── chapter/ # Chapter type, registry, and helpers
│ └── <capitulo>/ # 27 chapter packages (overview.yml + chapter.go)
├── pkg/ # Shared utilities
│ ├── format/ # Output formatting (overview, questionnaire)
│ ├── output/ # Output helpers
│ ├── reader/ # YAML overview reader
│ ├── section/ # Section formatting from overview.yml
│ └── trim/ # String trimming
├── Makefile
├── Dockerfile
├── docker-compose.yml
└── README.mdEste projeto é licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter detalhes.