traductor subtitles significado juego hard game example cores coding definition hard-coding

definition - subtitles - ¿Qué significa "codificado"?



hardcoded game download (4)

Mi asignación me pide que acceda a un documento de test.txt , por lo que el nombre del archivo debe estar codificado en mi disco C. No tengo idea de lo que significa codificación. ¿Puede alguien ayudarme con esto?


"Codificación de hardware" significa algo que desea integrar con su programa o cualquier proyecto que no se pueda cambiar directamente. Por ejemplo, si está utilizando un servidor de base de datos, debe codificar la conexión de su base de datos con su proyecto y el usuario no puede cambiarlo. Porque tienes codificado duro.


"codificación dura" significa poner algo en su código fuente. Si no estás codificado, entonces haces algo como pedirle al usuario los datos, o permitir que el usuario ponga los datos en la línea de comandos, o algo así.

Por lo tanto, para codificar la ubicación del archivo como si estuviera en la unidad C :, simplemente pondría la ruta del archivo en su código fuente.

Aquí hay un ejemplo.

int main() { const char *filename = "C://myfile.txt"; printf("Filename is: %s/n", filename); }

El nombre del archivo está "codificado" como: C:/myfile.txt

La razón por la que la barra invertida se duplica es porque las barras invertidas son especiales en C strings.


El antónimo de Hard-Coding es Soft-Coding . Para una mejor comprensión de Hard Coding, presentaré ambos términos.

  • Codificación fija : la función está codificada en el sistema sin permitir la configuración;
  • Parametric : la característica se puede configurar a través de tablas o archivos de propiedades con valores paramétricos limitados;
  • Soft-coding : la función utiliza "motores" que derivan resultados basados ​​en cualquier número de valores paramétricos (por ejemplo, reglas de negocios en BRE); Las reglas están codificadas pero existen como parámetros en el sistema, escritas en forma de script

Ejemplos:

// firstName has a hard-coded value of "hello world" string firstName = "hello world"; // firstName has a non-hard-coded provided as input Console.WriteLine("first name :"); string firstName = Console.ReadLine();

Una constante codificada [1] :

float areaOfCircle(int radius) { float area = 0; area = 3.14*radius*radius; // 3.14 is a hard-coded value return area; }

Además, la codificación rígida y la codificación suave podrían considerarse antipatrones [2] . Por lo tanto, uno debe esforzarse por lograr un equilibrio entre la codificación dura y blanda.

  1. Codificación de hardware La " codificación de hardware " es un antipatrón bien conocido contra el que la mayoría de los libros de desarrollo web nos advierten en el prefacio. La codificación rígida es la práctica desafortunada en la que almacenamos datos de configuración o de entrada , como una ruta de archivo o un nombre de host remoto, en el código fuente en lugar de obtenerlos de un archivo de configuración, una base de datos, una entrada de usuario u otra fuente externa .

    El principal problema con el código duro es que solo funciona correctamente en un entorno determinado , y en cualquier momento que cambien las condiciones, necesitamos modificar el código fuente, generalmente en varios lugares separados.

  2. Codificación suave
    Si nos esforzamos mucho para evitar el escollo de la codificación rígida, podemos encontrarnos fácilmente con otra antipattern llamada " codificación blanda ", que es exactamente lo contrario.

    En la codificación suave, colocamos las cosas que deberían estar en el código fuente en fuentes externas , por ejemplo, almacenamos la lógica de negocios en la base de datos. La razón más común por la que lo hacemos, es el temor de que las reglas de negocios cambien en el futuro, por lo tanto, tendremos que volver a escribir el código.

    En casos extremos, un programa codificado por software puede volverse tan abstracto y complicado que es casi imposible comprenderlo (especialmente para los nuevos miembros del equipo), y es extremadamente difícil de mantener y depurar .

Fuentes y citas:

1: [1]
2: [2]

Otras lecturas:

Software Engineering SE: ¿Es alguna vez una buena idea codificar los valores en nuestras aplicaciones?
Wikipedia: Hardcoding
Wikipedia: Soft-coding


Guión

En una universidad hay muchos estudiantes que realizan diferentes cursos, y después de un examen tenemos que preparar una tarjeta de calificaciones que muestre el grado. Puedo calcular el grado dos maneras

1. Puedo escribir un código como este

if(totalMark <= 100 && totalMark > 90) { grade = "A+"; } else if(totalMark <= 90 && totalMark > 80) { grade = "A"; } else if(totalMark <= 80 && totalMark > 70) { grade = "B"; } else if(totalMark <= 70 && totalMark > 60) { grade = "C"; }

2. Puede pedirle al usuario que ingrese la definición de grado en algún lugar y guarde esos datos

Algo como almacenar en una tabla de base de datos

En el primer caso, la calificación es común para todos los cursos y si la regla cambia, el código debe cambiarse. Pero para el segundo caso, le estamos dando a los usuarios la provisión de ingresar un grado en función de sus requisitos. Por lo tanto, el código no se cambiará cuando cambien las reglas de calificación.

Eso es lo importante cuando se proporciona más provisión para que los usuarios definan la lógica empresarial. El primer caso no es más que Hard Coding .

Entonces, en su pregunta, si le pide al usuario que ingrese la ruta del archivo al comienzo, puede eliminar la ruta codificada en el código.