[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?

eu particularmente utilizaria "minimo_horas_entre_abastecimentos", que mantem o sentido, e continua bem descritivo

Não vejo problema de usar o nome completo. Evite abreviações, até mesmo esse Min que você citou eu evitaria.

Se a abreviação não causar confusão e evitar que o nome fique muito grande, acho válido. Claro que sempre que puder, é interessante ser descritivo. Na empresa onde trabalho tem a regra de no máximo 25 caracteres, lembrando que cada lugar tem suas regras e não são dogmas.

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.

Também gosto dessa opção. E se o nome da tabela já for "Abastecimento", eu tiraria até a última palavra ficando "intervalo_minimo", pois já estaria no contexto de abastecimento. Realmente não precisa específicar tanto, ainda mais se tiver um local de "descrição do campo". Uma dica boa é evitar abreviação mesmo, porque pode gerar confusão e nomes extensos para não cansar a leitura. Tenta ser simples e direto.

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 confuso Intervalo Minutos em Horas Entre Abastecimentos?) mas para ME contradizer, acho que a leitura de min como mínimo é muito mais natural do que que como minutos (para minutos eu usaria m)
  • 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.