¿Qué pautas sigues para mejorar la calidad general de su código? Muchas personas tienen reglas sobre cómo escribir código C++ que (supuestamente) hacen que sea más difícil cometer errores. He visto personas insistir que cada instrucción if
es seguida por un bloque de llaves ({...}
).directrices para mejorar su código
Me interesan las pautas que siguen otras personas y las razones que las respaldan. También me interesan las pautas que piensas que son basura, pero que son comunes. ¿Alguien puede sugerir algunos?
Para rodar la pelota, voy a mencionar unos pocos para comenzar con:
- Siempre use los frenos después de cada sentencia
if
/else
(mencionado anteriormente). La razón detrás de esto es que no siempre es fácil saber si una sola instrucción es en realidad una declaración, o una macro preprocesador que se expande a más de una sentencia, por lo que este código se rompería:
// top of file: #define statement doSomething(); doSomethingElse // in implementation: if (somecondition) doSomething();
pero si usa llaves, entonces funcionará como se espera.
- Utilice las macros del preprocesador SOLAMENTE para la compilación condicional. las macros de preprocesador pueden causar todo tipo de infierno, ya que no permiten las reglas de exploración de C++. Me he encallado muchas veces debido a las macros del preprocesador con nombres comunes en los archivos de encabezado. ¡Si no tienes cuidado, puedes causar todo tipo de estragos!
Ahora a usted.
Estoy de acuerdo que poner la constante de los guardias de izquierda contra un faltante signo = ... pero nunca he sido capaz de adoptarlo. El código simplemente se lee más natural al revés. Afortunadamente, la mayoría de los compiladores tienen una configuración para advertir sobre construcciones "if (a = b)". –
Esta es una de las razones por las que me gusta VB.Net. Si las declaraciones no aceptan asignaciones, y usted puede simplemente usar el signo = para la asignación y las pruebas de igualdad. Hace que un código sea un poco más detallado, pero significa que muchos de estos errores simplemente no pueden suceder. – Kibbee