| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | === Organización de archivos === |
| 17 | |
| 18 | * Un archivo consiste de secciones que deberían estar separadas por líneas en blanco y un comentario opcional que identifica cada sección. |
| 19 | |
| 20 | * Se deberían evitar archivos con más de 2000 líneas. |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | === Archivos fuente === |
| 26 | |
| 27 | Cada archivo fuente contiene una clase pública o interfaz. Cuando clases privadas e interfaces están asociadas con una clase pública, se pueden colocar en el mismo archivo de la clase pública. La clase pública debería ser la primera clase o interfaz en el archivo. |
| 28 | |
| 29 | Los archivos fuentes tienen el siguiente orden: |
| 30 | |
| 31 | * Comentarios iniciales |
| 32 | * Declaración de paquete y sentencias para importar |
| 33 | * Declaración de clase e interfaces |
| 34 | |
| 35 | Esto es: |
| 36 | {{{ |
| 37 | 1 Documentación de la clase |
| 38 | |
| 39 | 2 Declaración de la clase |
| 40 | |
| 41 | 3 Comentario de implementación de clase si es necesario |
| 42 | |
| 43 | 4 Variables de la clase (primero las públicas, luego las protegidas y luego las privadas) |
| 44 | |
| 45 | 5 Instancia de variables (primero las públicas, luego las protegidas y luego las privadas) |
| 46 | |
| 47 | 6 Constructor |
| 48 | |
| 49 | 7 Métodos |
| 50 | }}} |
| 51 | |
| 52 | |
| 53 | === Longitud de línea === |
| 54 | |
| 55 | Evitar líneas de más de 80 caracteres. Documentación de nos más de 70 líneas. |
| 56 | |
| 57 | === Líneas extendidas === |
| 58 | |
| 59 | Cuando una expresión no se ajusta a una sola línea, romperla de acuerdo a los siguientes principios: |
| 60 | |
| 61 | * romper después de una coma. |
| 62 | * romper antes de un operador. |
| 63 | * alinear la nueva línea con el inicio de la expresión al mismo nivel de la línea anterior. |
| 64 | |
| 65 | === Declaraciones === |
| 66 | |
| 67 | * Una declaración por línea |
| 68 | * Colocar la declaración sólo al inicio de bloques (Un bloque es cualquier código que se encuentra dentro de {{{ { } }}}. |
| 69 | * Tratar de inicializar las variables locales cuando son declaradas. |
| 70 | * Al declarar clases e interfaces: |
| 71 | * No dejar espacio entre un nombre de método y el paréntesis. |
| 72 | * La llave {{{ { }}} que abre aparece al final de la misma línea de la declaración. |
| 73 | * La llave {{{ } }}} inicia una línea para cerrar la abierta previamente. |
| 74 | * Los métodos se separan con una línea en blanco. |
| 75 | |
| 76 | Una lista más detallada de estándares adicionales está disponible [http://www.oracle.com/technetwork/java/codeconventions-150003.pdf aquí]. |
| 77 | |
| 78 | |
| 79 | === Documentación de código === |
| 80 | |
| 81 | Se recomienda seguir las recomendaciones establecidas en [http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html]. |
| 82 | |
| 83 | |
| 84 | |
| 85 | |
| 86 | |
| 87 | |
| 88 | |
| 89 | |
| 90 | |
| 91 | |