Nomenclatura Uso de Variables Expresiones 1. Si el nombre consta de varias palabras, escribirlas todas seguidas y separadas por mayúsculas 2. Nombres de los paquetes en minúsculas package lprg.p7; 1. Variables de clase u objeto jamás deben ser públicas 1. Evitar expresiones numéricas o condiciones lógicas complejas. Dividir en subexpresiones 2. En una construcción condicional el “if” llevará la condición que se cumple más comúnmente 3. Nombres para las Clases que sean sustantivos ListaDeNombres 3. Inicializar las variables inmediatamente int nMuescas= 0 4. El nombre de las variables empieza por minúscula int numeroDeCarneros; 4. Variables con un ámbito muy amplio, que tengan nombre largo y significativo 5. Constantes (“final”) íntegramente en mayúsculas static final int COLOR_ROJO= 0xFF0000; 5. Variables con un ámbito muy restringido o de usar y tirar que tengan nombre corto int i, j; 6. Nombres Métodos que sean verbos y primera letra en minúscula String getNombre (); 6. Las variables de iteración también deben tener nombres muy cortos for (int i= 0; i < 10; i++) { … } void setNombre(String string); 7. Si la variable es un acrónico, sólo primera letra en mayúscula class Dni; 2. Las variables deben declararse en su ámbito de uso (más reducido posible) 7. No usar nunca una variable para dos cosas distintas int numero= 0; numero= numMesas(); numero= numHojas(); 3. Evitar comparar con TRUE y FALSE para tomar decisiones. Mejor: if (! condicion) Estructuras Programación (varios) 1. No usar “break” y “continue” salvo que sea estrictamente necesario 1. Definir clases y métodos pequeños 2. En un método que tiene que devolver un resultado dependiendo de varias condiciones, devolver el resultado en cuanto se sepa 3. Evitar el anidamiento excesivo de estructuras “for”, “while”, “if”, “switch”. Si hay más de tres de estas estructuras anidadas, introducir métodos auxiliares para reducir 2. Reemplazar estructuras o expresiones no triviales que se repiten en el código por un método equivalente 4. Un bucle no debería ocupar más de una pantalla (unas 20 líneas de código). En otro caso crear métodos auxiliares para reducir 3. Aclarar el orden de las operaciones con paréntesis 4. Para comprobar si dos objetos son iguales usar el método “equals()” y no el operador “==”. Lo último es para comparar referencias. 5. Las excepciones en tiempo de ejecución no deben silenciarse Sangrado y Documentación 1. No escribir líneas con más de 70 caracteres aproximadamente. En otro caso, partir la línea 2. Utilizar dos espacios en blanco como medida básica de sangrado. No emplear el tabulador 3. En estructuras de bloque con una sola sentencia, se pueden obviar las llaves if (condicion) hazAlgo(); 4. Ver los distintos patrones a seguir para sangrar: clases, interfaces, métodos, bucles, estructuras if y switch, captura de excepciones, etc 5. Hay que añadir explicaciones a todo lo que no es evidente 6. No hay que repetir lo que se hace, sino explicar por qué se hace Obligatorio (javadoc): - al principio de cada clase - al principio de cada método - ante cada variable de clase Conveniencia (1 línea): - al principio de fragmento de código no evidente - a lo largo de los bucles