-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: adicionar exercícios práticos e resoluções para o Ninja Nível 11
- Loading branch information
1 parent
2fdd2e3
commit 114355e
Showing
5 changed files
with
153 additions
and
11 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--- | ||
description: | ||
name: "Capítulo 24: Exercícios ninja nível 11" | ||
sections: | ||
- title: "Na prática: exercício #1" | ||
text: | | ||
- Utilizando este código: https://play.golang.org/p/3W69TH4nON | ||
- ...remova o underscore e verifique e lide com o erro de maneira apropriada. | ||
- Solução: https://github.com/ellenkorbes/aprendago/blob/master/c%C3%B3digo/24_exercicios-ninja-11/01/main.go | ||
- title: "Na prática: exercício #2" | ||
text: | | ||
- Utilizando este código: https://play.golang.org/p/9a1IAWy5E6 | ||
- ...crie uma mensagem de erro customizada utilizando fmt.Errorf(). | ||
- Solução: https://github.com/ellenkorbes/aprendago/blob/master/c%C3%B3digo/24_exercicios-ninja-11/02/main.go | ||
- title: "Na prática: exercício #3" | ||
text: | | ||
- Crie um struct "erroEspecial" que implemente a interface builtin.error. | ||
- Crie uma função que tenha um valor do tipo error como parâmetro. | ||
- Crie um valor do tipo "erroEspecial" e passe-o para a função da instrução anterior. | ||
- Solução: https://github.com/ellenkorbes/aprendago/blob/master/c%C3%B3digo/24_exercicios-ninja-11/03/main.go | ||
- title: "Na prática: exercício #4" | ||
text: | | ||
- Utilizando este código: https://play.golang.org/p/wlEM1tgfQD | ||
- ...use o struct sqrt.Error como valor do tipo erro. | ||
- Solução: https://github.com/ellenkorbes/aprendago/blob/master/c%C3%B3digo/24_exercicios-ninja-11/04/main.go | ||
- title: "Na prática: exercício #5" | ||
text: | | ||
- Nos capítulos seguintes, uma das coisas que veremos é testes. | ||
- Para testar sua habilidade de se virar por conta própria... desafio: | ||
- Utilizando as seguintes fontes: https://godoc.org/testing & http://www.golang-book.com/books/intro/12 | ||
- Tente descobrir por conta própria como funcionam testes em Go. | ||
- Pode usar tradutor automático, pode rodar código na sua máquina, pode procurar no Google. Vale tudo. | ||
- O exercício é: crie um teste simples de uma função ou método ou pedaço qualquer de código. |
38 changes: 38 additions & 0 deletions
38
internal/exercicios_ninja_nivel_11/resolution_exercises.go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package exercicios_ninja_nivel_11 | ||
|
||
import ( | ||
"encoding/json" | ||
"fmt" | ||
) | ||
|
||
// person represents an individual with a first name, last name, and a list of sayings. | ||
type person struct { | ||
First string | ||
Last string | ||
Sayings []string | ||
} | ||
|
||
func ResolucaoNaPraticaExercicio1() { | ||
// - Utilizando este código: https://play.golang.org/p/3W69TH4nON | ||
// - ...remova o underscore e verifique e lide com o erro de maneira apropriada. | ||
// - Solução: https://github.com/ellenkorbes/aprendago/blob/master/c%C3%B3digo/24_exercicios-ninja-11/01/main.go | ||
p1 := person{ | ||
First: "James", | ||
Last: "Bond", | ||
Sayings: []string{"Shaken, not stirred", "Any last wishes?", "Never say never"}, | ||
} | ||
|
||
bs, err := json.Marshal(p1) | ||
if err != nil { | ||
panic(err) | ||
} | ||
fmt.Println(string(bs)) | ||
} | ||
|
||
func ResolucaoNaPraticaExercicio2() {} | ||
|
||
func ResolucaoNaPraticaExercicio3() {} | ||
|
||
func ResolucaoNaPraticaExercicio4() {} | ||
|
||
func ResolucaoNaPraticaExercicio5() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
// Package exercicios_ninja_nivel_11 provides functions to execute and display | ||
// exercises from the Ninja Level 11 course. It includes functions to present | ||
// the exercises, show their resolutions, and display help information for | ||
// the available commands. The package utilizes the format package for | ||
// formatting and displaying sections and help information. | ||
package exercicios_ninja_nivel_11 | ||
|
||
import ( | ||
"fmt" | ||
|
||
"github.com/fabianoflorentino/aprendago/pkg/format" | ||
) | ||
|
||
// rootDir represents the relative path to the directory containing | ||
// the exercises for level 11 of the ninja training program. | ||
const ( | ||
rootDir = "internal/exercicios_ninja_nivel_11" | ||
) | ||
|
||
// ExercicicioNinjaNivel11 prints the title of the chapter and executes a series of sections | ||
// corresponding to exercises in Ninja Level 11. Each section is executed by calling the | ||
// executeSection function with the name of the exercise as an argument. | ||
func ExerciciosNinjaNivel11() { | ||
fmt.Printf("\n\nCapítulo 24: Exercicios: Ninja Nível 11\n") | ||
|
||
executeSection("Na prática: Exercício #1") | ||
executeSection("Na prática: Exercício #2") | ||
executeSection("Na prática: Exercício #3") | ||
executeSection("Na prática: Exercício #4") | ||
executeSection("Na prática: Exercício #5") | ||
} | ||
|
||
// MenuExerciciosNinjaNivel11 returns a slice of format.MenuOptions for the exercises of Ninja Level 11. | ||
// Each MenuOption contains a command-line option string and an associated execution function. | ||
// The options include commands for executing and resolving exercises 1 through 5. | ||
func MenuExerciciosNinjaNivel11([]string) []format.MenuOptions { | ||
return []format.MenuOptions{ | ||
{Options: "--na-pratica-exercicio-1 --nivel-11", ExecFunc: func() { executeSection("Na prática: Exercício #1") }}, | ||
{Options: "--na-pratica-exercicio-1 --nivel-11 --resolucao", ExecFunc: func() { ResolucaoNaPraticaExercicio1() }}, | ||
{Options: "--na-pratica-exercicio-2 --nivel-11", ExecFunc: func() { executeSection("Na prática: Exercício #2") }}, | ||
{Options: "--na-pratica-exercicio-2 --nivel-11 --resolucao", ExecFunc: func() { ResolucaoNaPraticaExercicio2() }}, | ||
{Options: "--na-pratica-exercicio-3 --nivel-11", ExecFunc: func() { executeSection("Na prática: Exercício #3") }}, | ||
{Options: "--na-pratica-exercicio-3 --nivel-11 --resolucao", ExecFunc: func() { ResolucaoNaPraticaExercicio3() }}, | ||
{Options: "--na-pratica-exercicio-4 --nivel-11", ExecFunc: func() { executeSection("Na prática: Exercício #4") }}, | ||
{Options: "--na-pratica-exercicio-4 --nivel-11 --resolucao", ExecFunc: func() { ResolucaoNaPraticaExercicio4() }}, | ||
{Options: "--na-pratica-exercicio-5 --nivel-11", ExecFunc: func() { executeSection("Na prática: Exercício #5") }}, | ||
{Options: "--na-pratica-exercicio-5 --nivel-11 --resolucao", ExecFunc: func() { ResolucaoNaPraticaExercicio5() }}, | ||
} | ||
} | ||
|
||
// HelpMeExerciciosNinjaNivel11 provides a list of available commands and their descriptions | ||
// for the practical exercises of level 11 in the Ninja course. It prints the chapter title | ||
// and uses the format.PrintHelpMe function to display the help information. | ||
func HelpMeExerciciosNinjaNivel11() { | ||
hlp := []format.HelpMe{ | ||
{Flag: "--na-pratica-exercicio-1 --nivel-11", Description: "Apresenta o primeiro exercício prático do curso.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-1 --nivel-11 --resolucao", Description: "Exibe a resolução do primeiro exercício prático.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-2 --nivel-11", Description: "Apresenta o segundo exercício prático do curso.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-2 --nivel-11 --resolucao", Description: "Exibe a resolução do segundo exercício prático.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-3 --nivel-11", Description: "Apresenta o terceiro exercício prático do curso.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-3 --nivel-11 --resolucao", Description: "Exibe a resolução do terceiro exercício prático.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-4 --nivel-11", Description: "Apresenta o quarto exercício prático do curso.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-4 --nivel-11 --resolucao", Description: "Exibe a resolução do quarto exercício prático.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-5 --nivel-11", Description: "Apresenta o quinto exercício prático do curso.", Width: 0}, | ||
{Flag: "--na-pratica-exercicio-5 --nivel-11 --resolucao", Description: "Exibe a resolução do quinto exercício prático.", Width: 0}, | ||
} | ||
|
||
fmt.Printf("\nCapítulo 24: Exercicios Ninja Nível 11\n") | ||
format.PrintHelpMe(hlp) | ||
} | ||
|
||
// executeSection formats and processes a given section of the project. | ||
// It takes a section name as a string and uses the FormatSection function | ||
// from the format package to apply formatting to the specified section | ||
// within the root directory. | ||
func executeSection(section string) { | ||
format.FormatSection(rootDir, section) | ||
} |