Você está na página 1de 8

INGENIERIA EN SISTEMAS COMPUTACIONALES

Sistemas integrales

ESTNDAR DE CODIFICACIN JAVA

INGENIERIA EN SISTEMAS COMPUTACIONALES


Sistemas integrales

Introduccin
Se definen un estndar de codificacin porque es un estilo de programacin homogneo en un proyecto permite que todos los participantes lo puedan entender en menos tiempo y que el cdigo en consecuencia sea mantenible.

Nombres de ficheros
Sufijos de ficheros en Java1: Cdigo fuente: .java Cdigo compilado: .class Nombres de ficheros comunes: README: Resumen de informacin importante relativa al directorio en el que est ubicado

Organizacin de ficheros
Un fichero consta de secciones separadas por lneas en blanco y lneas de comentario, ningn fichero debe tener ms de 2000 lneas de cdigo.

Ficheros de cdigo fuente


Cada fichero contiene una nica clase o interface. Si hay una clase privada o una interfaz asociada a una clase pblica se puede poner en el mismo fichero. La clase pblica debe ser la primera. Ordenacin de las secciones en un fichero de cdigo fuente Estas secciones deben ir separadas por una lnea en blanco Sentencia: package xxx.yyy; Sentencias de importacin. Ej: import java.util.ArrayList;. No hay lneas en blanco entre ellas. Cdigo de la clase. Va precedido por comentarios tipo javadoc con la siguiente informacin: Prlogo explicativo de la clase (opcional), autor, versin, referencias a otros elementos de cdigo si se considera que debe haberlas.

Indentacin
La unidad de indentacin de bloques de sentencias son 4 espacios

INGENIERIA EN SISTEMAS COMPUTACIONALES


Sistemas integrales

Lneas largas
Cuando una lnea no quepa en una nica lnea se debe fraccionar atendiendo a estos principios generales. Fraccionar despus de una coma Fraccionar despus de un operador

Es mejor romper unidades de alto nivel que de bajo nivel. Ejemplo: longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // Mejor longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; // Peor Si las reglas anteriores producen cdigo confuso utilizar indentacin de 8 caracteres. Ejemplo: // NO USAR ESTA INDENTACION if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); // SE CONFUNDE CON LAS ANTERIORES } // USAR ESTA INDENTACION if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); } // O ESTA if ((condition1 && condition2) || (condition3 && condition4) ||!(condition5 && condition6)) { doSomethingAboutIt(); }

Comentarios
Normas general a seguir en toda documentacin: 1. Los comentarios deben aadir claridad al cdigo. 2. Deben contar el por qu y no el cmo. 3. Deben ser concisos. 4. Idealmente hay que escribir la documentacin antes que el cdigo. Hay dos tipos de comentarios: Comentarios de implementacin y comentarios de documentacin. Los comentarios de implementacin son del tipo: // ... o /* ... */. Los comentarios de documentacin son del tipo: /** ... */. Los comentarios de implementacin describen el cdigo, los de documentacin una visin de ms alto

INGENIERIA EN SISTEMAS COMPUTACIONALES


Sistemas integrales
nivel para gente que no tiene el cdigo a mano y que slo quiere usarlo. La informacin de los comentarios no debe ser evidente, deben ser cosas que no estn contenidas en el cdigo Los comentarios no deben estar en cajas dibujadas con asteriscos o similar ni deben incluir caracteres extraos.

Comentarios de implementacin
Comentarios de bloque: Al comienzo de cada fichero o bloque. No se usan en este proyecto Comentarios de linea: Son comentarios explicativos de una parte pequea del cdigo. Sintaxis: // ... o /* ... */

Comentarios de documentacin
Son los comentarios destinados a ser procesados por javadoc. Importante: No se pueden usar comentarios de documentacin para bloques de cdigo dentro de mtodos porque javadoc los asigna a la primera declaracin que encuentre detrs de ellos La indentacin correcta es: /** * Comentario sobre la clase A */ public class A { ... }

Declaraciones Nmero de declaraciones por lnea


Se debe declarar cada variable en una lnea distinta, de esta forma cada variable se puede comentar por separado. Ejemplo: int level, size; // Mal int level; // Indentation level int size; // Size of table Los arrays se deben declarar de este modo: double[] table; // Bien double []table; // Mal

Inicializacin
Inicializar cada variable en su declaracin a menos que su valor inicial dependa de algn clculo

INGENIERIA EN SISTEMAS COMPUTACIONALES


Sistemas integrales

Localizacin
En el comienzo de los bloques. La nica excepcin es el bucle for. No se deben declarar variables con el mismo nombre que otras en un mtodo

Declaraciones de clases e interfaces


Se siguen estas reglas: No hay espacio entre el nombre del mtodo, el parntesis y la lista de parmetros Se abre la llave { al final de la misma lnea que la declaracin La llave de } debe aparecer en lnea aparte con la misma indentacin que el mtodo o clase que cierra.

Sentencias Sentencias simples


Cada lnea debe contener una sola sentencia. Ejemplos argv++; // Bien argc++; // Bien argv++; argc++; // Mal

Sentencias compuestas
Son las que estn entre llaves { y } Deben estar indentadas a un nivel superior que el precedente Todas las sentencias del tipo if o for, while, do ... while debern tener llaves aunque slo contengan una sentencia, de esta forma se evita la introduccin accidental de errores si se aaden posteriormente sentencias

Ejemplos:
Sentencia if if (condition) { statements; } if (condition) { statements; } else { statements; } if ( condition) { statements; } else if (condition) { statements; } else { statements; }

INGENIERIA EN SISTEMAS COMPUTACIONALES


Sistemas integrales
Sentencia for for ( initialization; condition; update) { statements; } for ( initialization; condition; update); La nueva versin del for tiene el siguiente formato for (Declaration : List) { statements; } Ejemplo. Antes: void cancelAll(Collection c) { for (Iterator i = c.iterator(); i.hasNext(); ) { TimerTask tt = (TimerTask) i.next(); tt.cancel(); } } Despus: void cancelAll(Collection c) { for (Object o : c) { ((TimerTask)o).cancel(); } } Sentencia while: while (condition) { statements; } while (condition); Sentencia do-while: do { statements; } while ( condition); La sentencia switch tiene este formato e indentacin switch ( condition) { case ABC: statements; /* El comentario tambien indentado */ case DEF: statements; break; case XYZ: statements; break; default: statements; break; } La sentencia try ... catch try { statements; } catch (ExceptionClass e) {

INGENIERIA EN SISTEMAS COMPUTACIONALES


Sistemas integrales
statements; } Si est seguida por finally: try { statements; } catch (ExceptionClass e) { statements; } finally { statements; }

Sentencias de retorno
No se pondr la expresin de retorno entre parntesis a menos que con ello se gane en claridad

Espacio en blanco Lneas en blanco


Se deben usar dos lneas en blanco entre: Diferentes secciones de un fichero de cdigo fuente Entre clases y definiciones de interfaz Se debe usar una lnea en blanco: Mtodos Variables locales de un mtodo y la primera sentencia Antes de un bloque o un comentario de lnea (para que se sepa de un vistazo que es lo que comenta) Entre diferentes secciones lgicas dentro de un fichero (ms legibilidad)

Caracteres de espacio
Se deben usar en las siguientes circunstancias: Entre un parntesis cerrado y una llave Despus de una coma en la lista de parmetros de un mtodo Entre operadores binarios: +, -, =, etc. Nunca entre un operador uno-ario y su operando La sentencia for y su parntesis. Ejemplo: for (expr1, expr2, expr3); Casts. Ejemplo: myMethod((int) (cp 5), ((int) (i + 3)) + 1);+

Asignacin de nombres
Esta es la seccin ms importante. Las normas genricas son: Se usan descriptores en ingls que dejan claro el cometido de la variable, mtodo o clase. Se usa terminologa aplicable al dominio.

INGENIERIA EN SISTEMAS COMPUTACIONALES


Sistemas integrales
Si se usan abreviaturas hay que mantener en algn sitio una lista de lo que significan. Evitar en lo posible los nombres largos (menos de 15 letras sera lo ideal) Evitar nombres que difieran en una letra o en el uso de maysculas. Un nombre no debera constar de ms de dos palabras. No usar siglas en los nombres a menos que queden muy largos o sean siglas conocidas por todos. Cada tipo de elemento debe nombrarse con una serie de reglas determinadas. Paquetes: Todo en minsculas. Cada palabra es ms especfica que la anterior Clases e interfaces: Nombres. La inicial en mayscula Mtodos: Deben ser verbos. La primera letra de la primera palabra en minsculas, el resto de las palabras empiezan por maysculas Variables: Deben comenzar por minscula. No se utilizar en ningn caso el carcter "_" Constantes: Todo en mayscula. Si son varias palabras, unidas por el carcter "_"

Você também pode gostar