¿Qué puedo hacer para asegurarme de que soy más riguroso con mi codificación?

Prueba esto, y ve si te ayuda. Mira tu código y ponlo en comentarios. Pretenda que una nueva persona tendrá que leer su código y no estará allí para explicárselo.

Si ve una parte del código que ordena alfabéticamente al estudiante, ponga un comentario que diga “Clasifique los estudiantes alfabéticamente” sobre esa parte del código. Ponga una o dos líneas en blanco después de ese trozo. Si tiene la variable n que hace un seguimiento de la cantidad de estudiantes que están fallando, ponga un comentario con la “cantidad de estudiantes que están fallando”.

Ahora revise su código y vea cuántos de esos comentarios puede eliminar. En lugar de decir “Ordena a los alumnos alfabéticamente” en un comentario, escriba el método SortStudents. En lugar de un comentario que le diga que n es el número de estudiantes que están fallando, llame a la variable Estudiantes que fallan.

Después de hacer esto por un momento, será más natural. Verá que este fragmento de código es para un propósito en particular, y lo pasará a un método sin pensarlo demasiado. A veces, tus métodos serán difíciles de nombrar: podrías decir SortStudentsAndCalculateAverageGrades. Es bueno que el nombre del método diga lo que hace el código (a nadie le gustan las sorpresas). Pero es malo que el método vaya más de una cosa. Sería mejor tener dos métodos en lugar de uno.

Aún terminarás con algunos comentarios, pero esperamos que estén localizados. Dirán por qué eligió usar este algoritmo en lugar de algún otro algoritmo, o notarán que está solucionando un error en el código de la biblioteca. Pero cada vez que tenga un comentario que grita “esto debería ser renombrado” o “esto debería ser una función”, debería hacerlo.

Además, escribe pruebas. Cuando escriba pruebas, piense en todos los casos de uso aleatorios de su código. ¿Y si pasan nulos aquí? ¿Qué pasa si pasan una cadena muy larga? ¿Qué pasa si la colección no tiene artículos? Un montón de artículos? ¿Artículos con mucha información en ellos? La aprobación de las pruebas debe significar que su código está funcionando bastante bien y le ayuda a tener más confianza para realizar cambios.

Comience con el básico … nombre todas sus variables y declaraciones de manera significativa …
Ejemplo, fname, full_name si obtiene el nombre completo de una persona. Evita fn, a, z, etc., te confundirá más tarde y hará que sea más difícil que alguien más entienda tu código.

Utilice siempre la sangría adecuada, de izquierda a derecha
para (condición)
{
para (condición)
{
declaración;
}
}

Separe su código en bloques, uno para la entrada, uno para el cálculo, etc., se verá más organizado y será fácil de leer.

entrada
declaración;
declaración;

cálculo
declaración;
declaración;

Escriba descripciones de su código encima de él. Facilitará la búsqueda de objetos y que otros lo entiendan.

// declarando variables
nombre de pila, dirección;

//entrada del usuario
printf ();
scanff ();

Los métodos siempre organizarán su programa y pueden usarse muchas veces, reduciendo su código. Use métodos siempre que el código se repita.

Google parte de la literatura sobre “desarrollo guiado por pruebas”. Tener exámenes es solo una parte del beneficio de ese enfoque. También te obliga a estructurar tu código muy bien. ¿Por qué? Debido a que el código mal estructurado es doloroso de probar, por lo tanto, estará naturalmente motivado a estructurarlo bien para evitar ese dolor.

No menciona cómo aborda la codificación ahora, lo que podría haber sido útil saber.

Personalmente, encuentro que las dos cosas que más me ayudan son pasar mucho tiempo con lápiz y papel solo pensando en el problema y el enfoque a seguir. El proceso mental consiste en descomponer el problema en partes cada vez más pequeñas. El segundo está comentando. En general, crearé todos los métodos vacíos y escribiré una declaración comentada concisa sobre lo que hace cada método y cómo se supone que lo haga. También comento líneas de código para ayudarme a rastrear el proceso.

Aparte de esto, la experiencia parece producir la mayor mejora …