Contents

O que são funções de exemplo em Go?

Key Takeaways

A linguagem de programação Go fornece funções de exemplo, que funcionam como uma referência para os utilizadores e um meio de verificar a precisão da implementação através de testes. Essas funções de exemplo exemplificam as melhores práticas e servem como um recurso educacional para os desenvolvedores garantirem que suas implementações sigam os padrões estabelecidos.

Os exemplos de funções acima referidos seguem uma nomenclatura pré-determinada e podem ser delineados para efeitos de pacotes, entidades que efectuam operações, categorias de dados e procedimentos associados a métodos.

O fornecimento de funções de exemplo serve como meio de verificação de código fiável, mantendo simultaneamente uma documentação exacta. Estas funções, designadas por testes executáveis, actuam como uma ferramenta de validação que assegura o funcionamento correto dos componentes de software e dos seus processos associados. Ao atualizar continuamente a documentação de acordo com quaisquer alterações feitas às funções de exemplo, os programadores podem acompanhar eficazmente as modificações e garantir que o seu produto permanece consistente ao longo do tempo.

Uma das vantagens notáveis da linguagem de programação Go reside no seu conjunto abrangente de ferramentas integradas de teste e documentação, que inclui um recurso excecionalmente valioso conhecido como “funções de exemplo”. Esta caraterística permite aos utilizadores validar eficazmente o seu código e transmitir a sua funcionalidade a colegas ou colaboradores com maior facilidade e clareza.

Para utilizar eficazmente a linguagem de programação Go como programador, é essencial compreender o conceito de funções de exemplo e o seu papel na criação de sistemas de software sustentáveis.

O que são funções de exemplo?

Em Golang, as funções de exemplo servem como segmentos ilustrativos de código incluídos em pacotes para fins de instrução, oferecendo uma oportunidade de validar sua precisão através de testes. Essas funções não aceitam entrada ou produzem qualquer resultado.

Considere um cenário em que alguém tenha incorporado a seguinte função de multiplicação no repertório do seu projeto:

 func Multiply(a, b int) int {
    return a * b
}

A implementação de uma função para efetuar a multiplicação pode ser representada da seguinte forma:

 func ExampleMultiply() {
    fmt.Println(Multiply(4, 5))
    // Output: 2
}

Para criar uma função de exemplo, é habitual acrescentar o nome da função como sufixo a “Exemplo”, tal como na instância de “ExemploMultiplicar”.

Analisando mais de perto as funções de exemplo

O código mencionado acima ilustra o layout fundamental de uma função de instância, incluindo seu título, conteúdo funcional e a opção de anexar uma observação descritiva como uma declaração final dentro do escopo da função.

Ao adicionar um comentário contendo uma instrução de saída no código, o Go compilará e executará o exemplo fornecido para garantir sua precisão. No entanto, se esse comentário não estiver presente, a linguagem simplesmente compilará a funcionalidade da função de exemplo sem executá-la.

Pode-se fornecer instâncias ilustrativas de pacotes, funções, tipos de dados e métodos associados a uma estrutura de dados específica.

Diferentes tipos de entidades necessitam de estratégias diferentes quando se trata de fornecer instâncias ilustrativas.

⭐ Para definir um exemplo para um pacote, basta chamar à sua função Example() , sem qualquer sufixo. Por exemplo, aqui está um exemplo de nível de pacote:

 func Example() {
    fmt.Println("Hello, world!")
    // Output:
    // Hello, world!
} 

⭐ Para definir um exemplo para uma função, basta adicionar o nome da função como um sufixo, como você aprendeu anteriormente.

 func ExampleMultiply() {
    fmt.Println(Multiply(4,5))
    // Output: 2
}

⭐ Para definir um exemplo para um tipo, adicione o nome como sufixo a Example . Aqui está um exemplo:

 type MyStruct struct {
    // ...
}

func ExampleMyStruct() {
    // ...
}

⭐ E por último, para um método num determinado tipo, adiciona-se o nome do tipo, um sublinhado e depois o nome do método. Aqui está uma demonstração:

 func (m *MyStruct) MyMethod() {
    // ...
}

func ExampleMyStruct_MyMethod() {
    // ...
}

Você pode fornecer várias instâncias de uma entidade anexando um identificador minimamente capitalizado e um numeral entre parênteses imediatamente subsequente a ele. Como ilustração, considere as designações

Uma opção adicional disponível é fornecer uma ilustração extensa de um raciocínio complexo através da utilização de uma instância abrangente de um único ficheiro. Isto permite uma compreensão mais completa do conceito que está a ser demonstrado.

Um exemplo de arquivo inteiro é um arquivo que termina em _test.go e contém exatamente uma função de exemplo, nenhuma função de teste ou de referência e pelo menos uma outra declaração no nível do pacote. Ao exibir tais exemplos, o godoc mostrará o arquivo inteiro. - The go dev blog

A funcionalidade do motor Go depende da forma como delineou a sua função de exemplo

Pode utilizar a opção de comentários não estruturados ao fornecer observações sobre a saída. Esta abordagem é especialmente benéfica em situações em que a sua função produz uma lista cuja disposição se desvia do que é esperado ou requerido.

Documentando seu código com funções de exemplo

As funções têm uma finalidade dupla em termos de documentação e teste, pois fornecem exemplos ilustrativos que demonstram efetivamente o comportamento pretendido de forma mais eficiente do que os comentários.

Da mesma forma, assim como com o Javadoc do Java ou a ferramenta de documentação embutida do Go conhecida como godoc, é bastante simples gerar documentação abrangente para a base de código usando essas ferramentas. No entanto, ao tentar fornecer uma visão abrangente de várias bibliotecas e funções que trabalham coletivamente dentro de um determinado pacote, podem ser necessários exemplos para ilustrar as suas interdependências e interacções.

A ferramenta Godoc está equipada com uma funcionalidade que permite aos utilizadores associar exemplos a vários elementos, tais como funções, tipos e pacotes, de acordo com as suas preferências. Além disso, fornece uma plataforma interactiva para a realização de experiências diretamente através da sua interface de documentação.

É possível experimentar um pacote ou método diretamente na própria documentação, antes de o incorporar no seu código.

O trecho de código fornecido demonstra uma implementação da função json.Valid dentro do pacote encoding/json na linguagem de programação Go. A função verifica se um determinado objeto JSON é válido ou não, percorrendo as suas chaves e valores e verificando se todos os valores são do tipo apropriado, tal como especificado no esquema.

/pt/images/testable_example_function_in_go.jpg

Utilizar funções de exemplo para testar a unidade

A execução do comando “go test” inicia um processo de execução em que o motor executa cada função de exemplo acompanhada por uma observação de conclusão de saída, verificando posteriormente se o resultado real corresponde à expetativa declarada no comentário.

Esta funcionalidade oferece uma multiplicidade de benefícios, servindo como uma camada adicional de validação para código fiável e facilitando a manutenção de documentação actualizada em conjunto com as modificações da base de código em evolução.

No caso de serem feitas alterações que afectem o funcionamento de uma determinada função, bem como o seu resultado, o facto de não se rever o comentário ilustrativo correspondente para o alinhar com esses ajustes pode levar ao fracasso dos casos de teste associados.

A atualização regular da documentação é crucial para garantir que esta se mantém atual e relevante. Ao manter a coerência entre o código e a documentação associada, esta abordagem pode reduzir eficazmente o risco de serem apresentadas aos utilizadores informações desactualizadas ou obsoletas.

Funções de exemplo produzem código e documentação fiáveis

A documentação desempenha um papel crucial no domínio do desenvolvimento de software, mas apenas algumas linguagens de programação fornecem aos programadores uma base sólida para a documentação e o teste do seu código.

A utilização de exemplos é um aspeto essencial da criação de documentação abrangente para o software, uma vez que facilita a adoção e compreensão da base de código pelo utilizador e pelo colaborador. Ao incorporar tais exemplos no seu processo de documentação, pode garantir um fluxo de trabalho simplificado e promover uma colaboração mais eficiente entre os membros da equipa.