|
Convenciones de Codificación en Java |
Prácticas de Programación
Proporcionar Acceso a Variables de Ejemplar y de Clase
No debemos hacer públicas ninguna variable de ejemplar o de clase sin una buena razón. Frecuentemente las variables de ejemplar no necesitan configurarse explícitamente - porque normalmente esto sucede como un efecto lateral de llamadas a métodos.
Un ejemplo de variables de ejemplar públicas apropiadas es el cadso donde la clase esencialmente es una estructura de datos, sin comportamiento. En otras palabras, si tuvieramos una estructura en lugar de una clase (si Java soportara estructuras), entonces seriá apropiado hacer públicas las variables de ejemplar.
Referenciar Variables de Clase y Métodos
Debemos evitar usar un objeto para acceder a variables de ejemplar (estáticas) o métodos. En su lugar debemos usar la clase. Por ejemplo:
classMethod(); //OK AClass.classMethod(); //OK anObject.classMethod(); //AVOID!
Constantes
Las constantes numéricas (literales) no deberían codificarse directamente, excepto -1, 0, y 1, que pueden aparecer en un bucle for como valores de contador.
Asignaciones de Variables
Debemos evitar asignar varias variables al mismo valor en una sóla sentencia. Es díficil de leer, por ejemplo:
fooBar.fChar = barFoo.lchar = 'c'; // AVOID!
No debemos usar el operador de asignación en lugares donde pueda ser fácilmente confundible con el operador de igualdad, por ejemplo:
if (c++ = d++) { // AVOID! (Java disallows)
...
}
Debería escribirse como:
if ((c++ = d++) != 0) {
...
}
No debemos usar asignaciones embebidas en un intento de mejorar el rendimiento de ejecución. Ese es el trabajo del compilador. Por ejemplo:
d = (a = b + c) + r; // AVOID!
Debería escribirse como:
a = b + c; d = a + r;
Prácticas Misceláneas
Paréntesis
Generalmente es una buena idea usar paréntesis para liberar expresiones que incluyen mézclas de operadores para evitar problemas de precedencia de operadores. Incluso si la precedencia del operador parece clara para nosotros podría no ser así para otros -- no deberíamos asumir que otros programadores conecen la precedencia tan bién como nosotros.
if (a == b && c == d) // AVOID! if ((a == b) && (c == d)) // USE
Valores de Retorno
Debemos intentar hacer que la estructura de nuestro programa corresponda con nuesta intención. Por ejemplo:
if ( booleanExpression) {
return true;
} else {
return false;
}
debería escribirse como:
return booleanExpression;
De forma similar,
if (condition) {
return x;
}
return y;
debería escribirse como:
return (condition ? x : y);
Expresiones antes del ‘?’ en el Operador Condicional
Si una expresión que contiene un operador binario aparece antes del '?' en el operador terciario ?:, debería ponerse entre paréntesis, por ejemplo:
(x >= 0) ? x : -x;
Comentarios Especiales
Debemos usar XXX en un comentario para marcar algo que es fraudulenteo pero funciona; y FIXME para marcar algo que es fraudulento y no funciona.
















































