Imagine um sistema que faça o cálculo de impostos sobre produtos e que, em determinado momento, a alíquota aplicada sofra uma alteração e passe de 8% para 10% sobre o valor unitário do item. Se o valor dessa alíquota estiver fixo dentro do código fonte, temos um exemplo típico do que significa hardcode, pois certamente precisaremos realizar uma manutenção no sistema para fazer essa modificação.
Codificar com valores fixos dentro do código fonte é considerado uma má prática de programação. Para explicar melhor esse conceito, preparamos este post que contém os seguintes tópicos:
- O que é hardcode e por que é considerada uma má prática?
- Qual a diferença entre hardcode, hard coded e hard coding?
Quer saber mais sobre o assunto? Continue com a gente e boa leitura!
O que é hardcode e por que é considerada uma má prática?
A tradução literal para hardcode é código difícil. Entretanto, o significado do termo não é para caracterizar um algoritmo de difícil compreensão, mas sim, para indicar uma má prática de programação: a utilização de valores fixos dentro do código fonte, ou seja, uma codificação rígida. Na prática, para a alteração desse conteúdo, é preciso editar e recompilar o código fonte.
Qualquer valor que possa sofrer alterações deve ser passado por meio de parâmetros e armazenados em arquivos de configuração, em banco de dados ou inseridos pela pessoa usuária da aplicação durante a utilização do sistema. Portanto, não é indicado atribuir valores fixos em variáveis e constantes, ou ainda, deixá-los fixos no código, conforme o exemplo abaixo:
function calcularImposto(valorProduto){ return (valorProduto * 0.08); }
Veja o exemplo do mesmo código com boas práticas de programação:
function calcularImposto(valorProduto, aliquota){ return (valorProduto * aliquota); }
Ao escrever o código dessa forma, os valores podem ser alterados sem a necessidade da interferência de uma pessoa programadora. Portanto, a utilização de valores fixos dentro do código ou em variáveis é considerada uma prática não recomendada, pois requer a manutenção do sistema apenas para alterar valores pré-fixados.
Qual a diferença entre hardcode, hard coded e hard coding?
Existem diferentes termos relacionados a essa prática de programação, são eles: hardcode, hard coded e hard coding. Entretanto, a diferença entre eles é apenas gramatical, isto é, todos se referem à má prática de programação que mencionamos acima. Confira a diferença entre eles a seguir.
Hardcode
Perceba que o verbo code está no presente, o que indica uma situação atual, ou seja, o cenário em que o código está no momento presente. Também representa o imperativo ou o infinitivo do verbo.
Hard coded
O verbo code está no passado: coded, o que indica que o código foi escrito com a má prática. A palavra hardcoded também pode ser um adjetivo. Portanto, indica que o sistema foi codificado dessa maneira.
Hard coding
O verbo code está no gerúndio: coding, o que indica uma ação no momento atual, isto é, a codificação fixa é feita nesse momento. A tradução literal do termo é codificação rígida e a palavra também pode indicar um substantivo. Dessa forma, hard coding significa o nome da prática de escrever código com valores fixos.
O termo hardcode contém algumas variações, entretanto, o significado é o mesmo: trata-se da prática não recomendada de utilizar valores fixos dentro do código fonte da aplicação. O ideal é que os dados sejam armazenados fora do código e passados por meio de parâmetros para evitar manutenções desnecessárias.
Gostou do nosso conteúdo sobre hardcode? Então, confira o nosso glossário completo com termos de tecnologia que você precisa conhecer!