Fallos más frecuentes 11 12 13 14 15 16 17 18 19 variables leve medio leve leve leve leve leve leve leve variables innecesarias variables reutilizadas saco de variables ámbito excesivo nombres cortísimos (i, j, k, ...) nombres de variables que no empiezan con letra minúscula nombres de métodos que no empiezan con letra minúscula nombres de clases que no empiezan con letra mayúscula nombres de constantes que no empiezan con letra mayúscula 21 22 23 24 campos o variables de objeto grave visibles (no privados) medio excesivos medio excesivos medio nombres cortísimos (i, j, k, ...) 31 32 33 campos o variables de clase (static) grave uso temporal por objetos grave visibles (no privados) medio nombres cortísimos (i, j, k, ...) 41 42 43 44 45 métodos leve leve medio medio leve nombres ad-hoc métodos muy largos muchos IF anidados muchos bucles anidados campos incorrectos en objetos nuevos 51 52 53 54 código grave grave grave leve break innecesarios continue innecesarios uso de == donde debería ser equals() bloques (largos) de código repetido 61 62 63 64 65 66 67 68 69 documentación (javadoc) grave clase sin comentarios medio métodos visibles sin javadoc leve métodos privados sin javadoc medio javadoc incompleto medio faltan @param medio faltan @throw medio falta @return leve sangrado ruinoso medio sin sangrado una misma variable para dos usos diferentes montón de variables al principio para ir usando el ámbito debe reducirse al mínimo necesario es admisible en ámbitos muy reducidos (ej. for) o si es notación estándar use getters y setters no se necesitan entre llamadas sucesivas desde el exterior se pueden sustituir por parámetros es admisible si es notación estándar cada objeto los usa independientemente es admisible en constantes (final) es admisible si es notación universal estándar (ej. pi, e, g, ...) el nombre debe reflejar lo que hace el método programación espagueti deben hacerse métodos separados deben hacerse métodos separados los contructores deben dejar todos los campos con valores coherentes investigue si puede hacerse sin break investigue si puede hacerse sin continue Ej. if (s == "algo") ... if (s == "") ... debe intentarse extraer un método, quizás parametrizado salvo que sea evidente salvo que sea evidente salvo que sea evidente salvo que sea evidente salvo que sea evidente