Escolar Documentos
Profissional Documentos
Cultura Documentos
Programacin en Java
Atributos
Los nombres de los atributos comienzan con minscula, respetando la misma norma que los nombres de las clases en el caso de que su nombre sea compuesto. Ejemplo: nombre, numRuedas. Los nombres de los atributos se suelen corresponder con sustantivos.
Nombres (I)
Utilizar nombres descriptivos para informacin global y nombres cortos para informacin local. int numRuedas; // Numero de ruedas for (indiceElem = 0; indiceElem < numeroElem; indiceElem++) matrizElementos[indiceElem] = indiceElem; for (i = 0; i < numElem; i++) elem[i] = i;
Nombres (II)
Los nombres deben ser consistentes y evitar la redundancia. class ListaUsuarios{ int numElementosLista, capacidadLista; } lista.capacidadLista; class ListaUsuarios{ int numElem, capacidad; } n = lista.numUsuarios();
Nombres (III)
Conviene utilizar nombres de accin para los mtodos, prestando especial atencin a los que devuelven valores lgicos. if ( ruleta.comprobarParidad() )... if ( ruleta.esPar() )... Los nombres de los mtodos deben indicar todo lo que hace el mtodo y solo lo que hace. int mostrarResultado() {...} void mostrarResultado() {...}
Consistencia (I)
Utilizar la tabulacin y la colocacin de llaves de forma consistente incluso en cdigo de otros programadores. Tratar de utilizar formas convencionales de escribir trozos de cdigo (diferencia entre nativo y no nativo).
10
Consistencia (II)
i = 0; while (i <= n-1) matriz[i++] = 1.0; for (i = 0; i < n; i++) matriz[i] = 1.0; for ( i = 0; i < n; matriz[i++] = 1.0 ) { ; }
11
Consistencia (III)
Las decisiones mltiples se expresan con cadenas if...else if...else. if (args.length == 2) if ( Integer.valueOf(args[0]).intValue() > 0 ) if ( Integer.valueOf(args[1]).intValue() > 0 ) System.out.println("Crear la serie"); else System.out.println("El termino inicial debe ser mayor que cero"); else System.out.println("El factor de multiplicacion debe ser mayor que cero"); else System.out.println("Uso: java Serie termino factor");
12
Consistencia (IV)
if (args.length != 2) System.out.println("Uso: java Serie termino factor"); else if ( Integer.valueOf(args[0]).intValue() <= 0 ) System.out.println("El factor de multiplicacion debe ser mayor que cero"); else if ( Integer.valueOf(args[1]).intValue() <= 0 ) System.out.println("El termino inicial debe ser mayor que cero"); else System.out.println("Crear la serie");
13
Nmeros mgicos
Los nmeros mgicos son, entre otros, las constantes, los tamaos de las matrices, las posiciones de los caracteres o los factores de conversin. Asignar un nombre a cada nmero mgico en forma de una constante. final int MAXFILAS = 24, MAXCOLUMNAS = 80; Evitar las caractersticas especficas de las representaciones de caracteres. if ( c >= 65 && c <= 90) if ( c >= A && c <= Z) if ( Character.isUpperCase(c) ) Utilizar el lenguaje para calcular el tamao de un objeto. char buffer[] = new char[1024]; for (int i = 0; i < buffer.length; i++)...
14
Comentarios (I)
Comentar las clases, los atributos y los mtodos utilizando javadoc. No recargar los comentarios de forma innecesaria. Unos nombres bien elegidos pueden ahorrar comentarios. /* * default */ default:... /* incrementa el valor del contador */ contador++; En lugar de comentar cdigo malo conviene reescribirlo. El buen cdigo necesita menos comentarios que el mal cdigo.
15
Comentarios (II)
Los comentarios deben aclarar, no confundir. /* * Devuelve -1 si s1 esta por encima de s2 en una * lista ordenada ascendentemente, 0 si son iguales * y 1 si s1 est por debajo de s2 */ int compare (String s1, String s2){...} /* Devuelve -1 si s1<s2, 0 si son iguales y 1 si s1>s2 */ Los comentarios no deben contradecir al cdigo. /* * Si la letra es una vocal dbil se contempla * la posibilidad de que exista un diptongo */ if ( (letra == a) || (letra == e) || (letra == i || (letra == o) || (letra == u) )
16
17
18
Normas bsicas
Una clase no puede tener 700.000 mtodos Un mtodo no puede ocupar 20 pginas Declarar los atributos al principio, antes que los mtodos Declarar las variables locales al principio de los bloques, una por lnea y comentadas si su uso no es obvio Utilizar siempre llaves en los if Existen distintas normas de sangrado y escritura, como pueden ser las Java Code Conventions (http://java.sun.com/docs/codeconv/) de Sun.
19