Melhores práticas na utilização de ENUMs

Em linguagens de programação, enums (abreviação de enumerations) são amplamente utilizados para representar conjuntos de valores nomeados. No Go, embora não exista um tipo enum nativo, podemos alcançar um comportamento similar usando constantes tipadas.

Embora já haja um post aqui no blog sobre esse tema, resolvi criar uma versão atualizada dele onde iremos, além de explorar como implementar enums em Go, veremos as diferenças em relação a outras linguagens, e as melhores práticas na hora de utilizá-los.

ENUM em Go vs Outras Linguagens

Linguagens como Java e C# oferecem suporte nativo a enums, permitindo a criação de tipos enumerados com validação e métodos associados, como podemos ver no exemplo abaixo:

public enum Color {
    RED, GREEN, BLUE;
}
Leia mais »
photo of a turtle swimming underwater

O que é e como utilizar o tipo enum

Muitas vezes, dentro dos sistemas que desenvolvemos, temos valores constantes. Dentre outras possibilidades, um exemplo desses valores, seria a representação do status de um cadastro. Nesse caso, pense em um status onde temos variações além de ativo e inativo.

Caso esses status sejam definidos como string, sua validação dentro do sistema pode acabar se tornando uma grande dor de cabeça. Além, é claro, de “inflar” o binário. Afinal, em cada validação teremos 2 strings (valor esperado e valor sendo validado).

Na tentativa de evitar esses problemas, podemos utilizar o famoso tipo enum. Se você não está familiarizado com esse tipo, ele nada mais é do que um tipo de tamanho limitado ou fixo.

Para ficar mais claro, vamos escrever um pouco de código. Seguindo a ideia apresentada no inicio do post, vamos criar um tipo enum para validar status de um cadastro.

Leia mais »