Estilos de Programación de JAVA
Enviado por randy_salvador • 21 de Febrero de 2020 • Trabajo • 6.219 Palabras (25 Páginas) • 156 Visitas
Estilos de Programación de Java
Introducción
Esta guía muestra técnicas básicas y sugerencias estilísticas para ayudar con el desarrollo del código fuente de Java que se puede mantener.
El formato del código fuente debe ser automatizado. Esto ahorra tiempo y evita argumentos religiosos. Un embellecedor de código fuente rápido y gratuito es Jacobe; descargue la Configuración de estilo Jarvis para comenzar. Jalopy es otro buen embellecedor de código fuente.
1.0 Convenciones de Nombres:
1.1 Las clases, las interfaces y los constructores comienzan con una letra mayúscula, luego continúan mezclados (CamelCase).
public class MulticastSocket
Distingue las referencias de clase de constantes y variables. Las abreviaturas comunes deben permanecer en mayúsculas.
1.2 Los métodos y las variables de instancia comienzan con una letra minúscula, luego continúan mezclados.
public void setTimeout( int timeout )
private boolean connected;
Distingue llamadas a métodos y variables de clases y constantes.
1.3 Los nombres de los paquetes están en minúsculas, utilizando un nombre de dominio inverso.
package com.invoqsystems.network;
Mantiene los nombres de directorio en minúsculas (más fácil de escribir); convención de Sun Microsystems.
Las constantes son mayúsculas y static final, con un guión bajo para separar las palabras.
/** Socket option for performing a broadcast. */
protected static final int SO_BROADCAST = 0x000A;
Distingue constantes de clases, interfaces, variables y métodos.
1.5 Especifique los derechos de acceso utilizando private, protectedo publicpara clases, interfaces, métodos, constructores y variables.
public abstract class Socket
{
private SocketAddress socketAddress;
public Socket( SocketAddress socketAddress )
{
super( socketAddress );
}
protected abstract void open();
}
Evita la ambigüedad entre el paquete / subclase y el acceso a nivel de clase.
1.6 Las excepciones terminan con la palabra Exception.
public abstract class SocketException
Las excepciones son un tipo especial de clase.
1.7 No utilice la notación húngara; eliminar identificadores de tipo variable de los nombres.
public abstract class Socket
{
private boolean bConnected;
}
public abstract class Socket
{
private boolean connected;
}
La programación pragmática evita la repetición. Los IDE modernos pueden decirle el tipo de una variable. Más difícil de pronunciar cuando se habla de código. Introduce una carga de mantenimiento (la información falsa es peor que ninguna). Puede ser ambiguo (b - booleano o byte?). Conflictos con los principios OOP.
1.8 Use nombres de variables claros.
public abstract class Socket
{
private boolean conn;
}
public abstract class Socket
{
private boolean connected;
}
Los nombres de variables y métodos más largos son aceptables siempre que proporcionen claridad sin redundancia. Esto es especialmente cierto para los nombres de variables de ámbito de clase. Los nombres de variables de método pueden acortarse dentro de métodos cortos o si su alcance es inferior a 15 líneas.
1.9 Los parámetros del método del descriptor de acceso corresponden exactamente a las variables de instancia.
public void setConnected( boolean connected )
{
this.connected = connected;
}
Mantiene la coherencia con las herramientas automatizadas de generación de código fuente.
1.10 Evite nombres de métodos redundantes.
public void write( String text )
El nombre writeStringimpartiría redundancia ya que la definición establece que se necesita a String. (No se aplica a los accesorios).
1.11 Los parámetros genéricos deben declararse como su tipo.
public void setSocketAddress( SocketAddress socketAddress );
Mantiene la consistencia; no use aSocketAddresso theSocketAddress, ya que el artículo es superfluo (aumenta el tamaño del archivo, toma más tiempo escribirlo y no agrega ningún significado relevante).
2.0 Comentarios
2.1 Usar comentarios Javadoc para constantes, métodos, clases e interfaces. Incluya diseño por contrato cuando corresponda: condiciones previas, condiciones posteriores e invariantes.
/**
* Writes the given data to this socket's output stream. If no data is
* provided, this will simply return.
*
* @pre data != null
* @post return <= data.length()
*
* @param data - Characters to send to the output stream.
*
* @throw IOException - Output stream is closed, or other network failure
* @return The number of characters written.
*/
public abstract int write( String data )
IOException;
/** Default socket connection timeout, in seconds. */
private int DEFAULT_TIMEOUT = 10;
Útil para generar documentación API. El diseño por contrato permite validar las restricciones de método utilizando software. Si la inclusión de etiquetas HTML mejora la legibilidad del Javadoc resultante, use las etiquetas. Incluya las marcas '// XXX' si el tiempo no permite el formato HTML adecuado.
2.2 Barras dobles para comentarios de métodos internos, alineados a la izquierda sobre el código, con un espacio entre las barras y el texto.
public void close()
throws IOException
{
// Make sure that no other Socket calls will succeed.
//
setConnected( false );
}
Permite comentar grandes fragmentos de código /* ... */.
2.3 Todos los métodos públicos y protegidos deben comentarse con un encabezado que describa lo que hace el método. Los comentarios de métodos internos deben decir por qué se escribe el código, no lo que hace el código. Se agradece la ortografía, la gramática y la puntuación adecuadas.
/**
* Opens a socket connection.
...