Hard code

Hard-code, término del mundo de la informática hace referencia a una mala práctica en el desarrollo de software que consiste en incrustar datos directamente (a fuego) en el código fuente del programa, en lugar de obtener esos datos de una fuente externa como un fichero de configuración o parámetros de la línea de comandos, o un archivo de recursos.

Considerada como un antipatrón de diseño, se trata de una práctica por abandonar, ya que requiere la modificación del código fuente cada vez que cambian los datos, cuando lo conveniente sería que el usuario final pudiera cambiar estos detalles fuera del código fuente del programa.

Por lo demás, esta práctica es especialmente problemática si se desea preparar el software para la traducción a terceros idiomas.

Por ejemplo, una referencia hard-coded a un fichero tendría escrito el nombre y la ruta al fichero en un lugar específico del disco. Si la localización del fichero cambia, el programador ha de cambiar el código fuente para que apunte a la nueva localización. Una buena práctica sería tener una variable interna llamada «nombreDeFichero», que podría ser asignada mediante una ventana de diálogo de navegación de ficheros, de esta manera no sería necesario cambiar el programa por un cambio en los datos.

Otro ejemplo de mala práctica hard-coding puede producirse durante el desarrollo de API's, con la adición o generación de datos de forma dinámica que no se encuentran persistidos en almacén alguno ni especificados en archivos de configuración. Delegar en el código fuente la generación de esta información, en un principio no mutable, consumida muy habitualmente por un cliente del API, provocará problemas de mantenimiento a medio y largo a pesar de sus aparentes ventajas a corto plazo, además de introducir un diseño blackbox del sistema.

La práctica del Hard-code está muy extendida entre programadores noveles, básicamente debido a su poco conocimiento de los estándares de programación, aunque también puede darse en programadores de experiencia contrastada; en este caso algunos autores consideran que se trata de un síntoma de agotamiento que puede llevar al programador a abandonar prácticas correctas en favor de otras más rápidas, aun sabiendo que son incorrectas.

Other Languages
Deutsch: Hartkodiert
English: Hard coding
עברית: Hard coding
italiano: Codifica fissa
português: Hard code
svenska: Hårdkodning
中文: 寫死