[Dúvida]CLEAN CODE: Nome de Campo de Tabelas
Pessoal, estou criando um sistema de controle de abastecimento de veiculos, neste momento estou construido a tabela de veiculos, onde um dos campos exige uma atenção especial no que diz respeito ao clean code e pensando nisto e no jeito responsavel e legivel de descrever os campos das tabelas eu lhes pergunto:
Qual o melhor ou mais apropriado nome para um determinado campo na tabela que guarará a seguinte informação:
Intervalo Minimo Em Horas Entre Abastecimento
Esta claro que colocar um underline entre as palavras não resolve devido ao tamanho do texto, a palavra "Minimo" até poderia ser substituida por "Min" que não perderia o sentido, mas e os demais?
Não vejo problema de usar o nome completo. Evite abreviações, até mesmo esse Min que você citou eu evitaria.
Apelei para o ChatGPT e perguntei... Lá vai a resposta com alguns ajustes:
Uma opção de nome para a tabela poderia ser "intervalo_minimo_abastecimento". Outras opções podem incluir "tempo_entre_abastecimentos", "intervalo_abastecimento" ou "tempo_minimo_abastecimento". É importante escolher um nome que seja claro e descritivo, para que outras pessoas possam entender facilmente o que a tabela representa. Além disso, é recomendável seguir as convenções de nomenclatura de banco de dados, como usar letras minúsculas e separar as palavras com sublinhados, para garantir que a tabela seja fácil de ler e utilizar.
(Minha opinião aqui): Gostei de "intervalo_minimo_abastecimento". Porque se o intervalo vai ser em horas, minutos, segundos os dados e demais especificações que vão dizer... Não precisa detalhar tanto, até para não "engessar" o campo.
Eu usaria termos em inglês e a essa coluna daria o seguinte nome: min_refuel_gap_in_hours
Já que você está preocupado com padrões, pense também na ideia de padronizar o seu código em inglês.
Além de ficar mais universal, te ajudando caso você um dia trabalhe em um grande projeto, vai facilitar com a questão da nomenclatura, que geralmente fica mais direta em inglês ;)
Poderia tentar algo como min_interval_between_refuel
ou algo do tipo.
TLDR;
Na minha OPINIÃO:
- não faz mal não ser muito descritivo contanto que faça sentido e você tenha os significados dos nomes dos campos documentado em outro lugar (Wiki, Guia do Usuário, etc)
- não faz mal ser muito descritivo se você não tiver outro lugar para descrever o que é o que
Sendo mais descritivo na minha reposta
Concordo com a maioria das respostas aqui, o que para mim significa que não tem exatamente UM approach correto.
- Concordo com os que disseram que ser descritivo não deve ser um problema, mas tudo tem limite.
- Concordo que usar
Min
para "mínimo" pode ser uma má idéia (pelo fato de poder soar como Minutos e ficar confusoIntervalo Minutos em Horas Entre Abastecimentos?
) mas para ME contradizer, acho que a leitura demin
como mínimo é muito mais natural do que que como minutos (para minutos eu usariam
) - Concordo que talvez seja melhor usar termos em inglês só para manter o sistema mais "universal", mas acho que esse esforço depende do quão confortável você está com o inglês e também quem vai consumir essa informacāo
Se eu estivesse na sua situação eu tentaria pensar, onde esses dados vão ser consumidos e quais outros recursos eu tenho para poder dar mais informações sobre o campo.
No MySQL por exemplo você pode adicionar comentários (comment) ao campo, então você poderia usar um acrônimo ou uma abraviação e adicionar o significado no comentário:
Por exemplo:
min_IEA_h
(Comentário: Mínimo Itervalo Entre Abastecimentos em Horas)min_IEA_m
(Comentário: Mínimo Itervalo Entre Abastecimentos em Minutos)min_IEA_s
acho que você já pegou a idéia
Repare que:
- eu movi a parte do
Mínimo
para o começo; eu normalmente faço isso para separar a "qualidade" do campo, que pode ser mais de uma, do nome descritivo, e a da variável - eu movi a parte do
Em horas
para o final; eu normalmente faço isso para separar o que é constante e mais descritivo no nome do campo (Intervalo Minimo Entre Abastecimentos) do que pode ser variável (horas, minutos, segundos) - eu deixei IEA em maiúsculo; eu normalmente faço isso para indicar que apesar de estar tudo junto isso representa uma abreviação ou aglomerado de palavras
E o mais importante repare que tudo isso eu não retirei de nenhuma regra ou boas práticas... isso é só a forma como EU costumo fazer nos meus projetos pessoais. Para min faz sentido e funciona. Mas nas empresas que trabalhei as regras eram diferentes, e não faziam sentido para mim, mas eles tinham uma documentação ou um senso comum que a gente podia usar para "decifrar" nomes de campos, variáveis etc, então eu usava a forma que eles preferiam.