Sei sulla pagina 1di 10

INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”

Nombre: Juan Diego Cueva

Materia: Programación

Fecha: 12/11/19
1. Ficheros o Archivos
1.1 Organización
En el desarrollo de la aplicación, las diferentes clases en Java se las debe agrupar por paquetes,
por lo que se les debe organizar de una manera jerárquica seguidos por un punto como
separador.

Así dentro del paquete principal se deben organizar los diferentes subpaquetes dependiendo
de las diferentes funciones que vaya a cumplir dicha aplicación. Por ejemplo, desarrollamos un
web Service de acceso a datos debería tener la siguiente estructura: imfe.webservice.data,
donde imfe es el nombre de la aplicación, webservice el paquete principal y data
subpaquete.

Cada clase de java debe contar de lineas separadas y comentarios que identifiquen
cada sección de la misma.

Deben evitarse archivos de gran tamaño que no contengan mas de 1000 lineas, ya que
puede ocasionar un mal entendimiento albergando gran cantidad de métodos.

2.2 Archivo o Fichero fuente Java (.java)


Cada archivo java debe contener una única clase o interfaz. El nombre del archivo tiene que
ser el mismo que el nombre de la clase. En el caso que existan varias clases privadas que
estén vinculadas a la clase publica, se debería colocar en el mismo archivo que la clase publica
por lo que esta clase publica debe estar ubicada en primer lugar antes que las clases privadas.

Todo archivo Java debe tener las siguientes secciones:

 Comentarios de Inicio
 Sentencia de paquete
 Sentencia de importación
 Declaraciones de clases e interfaces

2.2.1 Comentarios de Inicio


Todo archivo fuente debe comenzar con un comentario que incluya:

 Nombre de la clase
 Información de la version
 Fecha
 Copyright

En el caso del copyright, esta debe indicar:

 Propiedad legal del código


 Ambito de distribución,
 Uso para el que fue desarrollado
 Modificación

Adicionalmente podrían incluirse opcionalmente:

 Comentarios sobre los cambios efectuados en dicho archivo


 Historial de cambios realizados en el archivo

Ejemplo de Comentario Inicial


INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”

/*
* @(#)JceSecurity.java 1.50 04/04/14
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/

/**
* This class instantiates implementations of JCE engine classes from
* providers registered with the java.security.Security object.
*
* @author Jan Luehe
* @author Sharon Liu
* @version 1.50, 04/14/04
* @since 1.4
*/
2.2.2 Sentencia de paquetes
La primera linea que debe contener un archivo fuera del comentario inicial, son los paquetes
al que pertenece, clases incluidas en el archivo.

Por ejemplo:

package javax.crypto;
2.2.3 Sentencia de importación
Después de la declaración del paquete, se debe incluir las sentencias
de importación de los paquetes necesarios para el desarrollo del programa, el
cual debería seguir el siguiente lineamiento:

 Paquetes JDK (Java Development Kit)

 Paquetes de utilidades que no pertenezcan al JDK como frameworks o proyectos


opensource.

 Paquetes desarrollados para la aplicación.

Lo que se recomienda es minimizar el uso de importacion completa de paquete, es decir del


tipo "package.*", ya que dificulta la comprension de las dependencias del cual estan siendo
usadas en la aplicación.

Ejemplo:
import java.io.*; // BufferedReader, PrintWriter, FileInputStream, File

import java.util.ArrayList;

import org.apache.log4j.Logger;
import org.apache.lucene.analysis.Analyzer;
import provincia.organismo.corporativas.atlas.vo.AgendaVO;
2.2.4 Declaraciones de clases e interfaces
La siguiente tabla nos mostrara los elementos que componen la declaración de una clases asi
como el orden al que deben ser usados:
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”

Elementos de declaración de
Descripción
una clase / interfaz

Comentario de documentación Permite describir la clase/interfaz desarrollada. Necesario para generar


de la clase/interfaz /** ... */ la documentación de la api mediante javadoc.

Sentencia class / interface

Comentario de implementación
Este comentario incluye cualquier información que no pueda incluirse
de la clase/interfaz, si es
en el comentario de documentación de la clase/interfaz.
necesario /* ... */

En primer lugar las variables de clase públicas (public), después las


Variables de clase (estáticas) protegidas (protected), posteriormente las de nivel de paquete (sin
modificador), y por último las privadas (private).

Primero las públicas (public), después las protegidas (protected), luego


Variables de instancia las de nivel de paquete (sin modificador), y finalmente las privadas
(private).

Constructores

Deben agruparse por funcionalidad en lugar de agruparse por ámbito o


accesibilidad. Por ejemplo, un método privado puede estar situado
Métodos
entre dos métodos públicos. El objetivo es desarrollar código fácil de
leer y comprender.

3. Sangria
La norma general es establecer cuatro caracteres como unidad de sangria. En los diferentes
IDE(Entorno de Desarrollo Integrado) mas conocidos como Eclipse o NetBeans, estos incluyen la
facilidad de darle formato al código Java.

3.1 Longitud de línea


No debe superar mas de 80 caracteres por motivos de visualización e impresión.

3.2 División de líneas


En ocasiones una expresión puede ocupar mas de una línea, por lo que
se deberá romper dicha expresión de acuerdo a los siguientes criterios:

 Tras una coma


 Antes de un operador
 Rupturas de nivel superior a las de nivel inferior
 Alinear la nueva línea con el inicio de la expresión al mismo nivel que la línea
anterior

Ejemplo:

unMetodo(expresionLarga1, expresionLarga 2, expresionLarga 3,


expresionLarga 4, expresionLarga 5);
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”

if ((condicion1 && condicion2)


|| (condicion3 && condicion4)
||!(condicion5 && condicion6)) {
unMetodo();
}
4. Comentarios
4.1 Comentarios de Implementación
Se usan para describir el código, el como, en donde se incluye información relacionada
con la implementación, como la descripción de la funciones de las
variables locales, fases lógicas de ejecución del método, captura de excepciones, etc.

4.1.1 Comentarios de bloque


Descripción de archivos, clases, bloques, estructuras de datos y algoritmos.

Ejemplo

/*
* Esto es un comentario
* de bloque
*/

4.1.1 Comentarios de línea


Son comentarios cortos, que están localizados en una sola línea y tabulados al mismo nivel
que el código que lo describe.

Ejemplo:

/* Esto es un comentario de línea */

// Esto es otro comentario de línea


4.1.1 Comentarios fuera de línea
Es el comentario ubicado al final de la sentencia del mismo código o línea de código

Ejemplo:

int contador = 4 + 10; // Inicialización del contador


contador++; /* Incrementamos el contador */

4.2 Comentarios de Documentación


También denominados comentarios Javadoc, en el que utilizan para describir la especificación
del código, desde un punto de vista independiente a la implementación. Para ser consultada
por desarrolladores que no tengan acceso al código fuente.

5. Declaraciones
5.1 Declaración por línea
Es aconsejable ya que se promueve el uso de comentarios

Ejemplo:

int idUnidad; // Identificador de la unidad organizativa


String[] funciones; // Funciones de la unidad
5.2 Inicialización
Toda variable local debe ser inicializada en el momento de su declaración, excepto que
el valor que contenga inicialmente dependa de algún otro valor ya calculado previamente.

Ejemplo:

int idUnidad = 1;
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”

String[] funciones = { "Administración", "Intervención", "Gestión" };


5.3 Localización
5.3.1 Variables Locales
Las declaraciones deben estar situadas al principio de cada bloque principal y nunca en el
momento de su uso.

Ejemplo:

public void unMetodo() {


int contador = 0; // inicio del método
...
}
5.3.2 Variables Globales
Estas variables deben estar ubicadas al inicio de la clase principal

Ejemplo:

public class unaClase{

int contador = 0; // Inicio de la variable Global

public void unMetodo() {

if (condicion) {
int contador = 2; // ¡¡ EVITAR !!
...
}
...
}
}

5.3.3 Excepciones
Cuando se usan los indices de bucle for ya que en Java se las puede incluir dentro de la
misma sentencia

Ejemplo:

for (int i=0; contador<10; i++) {


...
}
5.4 Declaración de clases o interfaces
Deben seguir el siguiente formato:

 No incluir espacios entre el nombre del método y los parentesis


 El carácter de inicio del bloque es { y debe aparecer al final de la sentencia de
declaración } debidamente tabulada al mismo nivel correspondiente
 Cada método se separa de otro por medio de una linea en blanco

Ejemplo:
public classe ClaseEjemplo extends Object {
int variable1;
int variable2;
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”

public ClaseEjemplo() {
variable1 = 0;
variable2 = 1;
}
...
}
6. Sentencias
Cada línea debe tener como máximo una sentencia

Ejemplo:

int contador++;
int variable--;

Toda sentencia de un bloque debe estar contendida entre llaves {...}, aunque sea de una
única sentencia.

Ejemplo:

if (condicion) {
variable++;
}

La sentencia try/catch tiene que tener este formato:


try {

sentencias;
} catch (ClaseException e) {
sentencias;
}

Para liberar los recursos de este bloque se usa "finally"

try {
sentencias;
} catch (ClaseException e) {
sentencias;
} finally {
sentencias;
}

7. Espacios en Blanco
Permiten una mejor legibilidad del código para poder identificar las secciones
de código relacionadas. Y se utilizara los espacios en blanco en los siguientes casos:

 Entre una palabra claver y un parentesis, para poder distinguir las llamadas a
métodos de las palabras claves.

while (true) {
...
}
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”
 Tras cada coma en un listado de argumentos

objeto.unMetodo(a, b, c);

 Separar un operador binario de sus operandos

a += b + c;

a = (a + b) / (c + d);

contador++;

 Separa expresiones incluidas en la sentencia for

for (expresion1; expresion2; expresion3)

 Al realizar casting de clases

Unidad unidad = (Unidad) objeto;

8. Nomenglatura de identificadores
Permite que los programas sean mas fáciles de leer y mas comprensibles. Ademas
proporcionan información sobre la función que desempeña el identificador dentro del código.

8.1 Paquetes
Se escribirán siempre con letra minúscula para evitar cualquier conflicto con los nombres de
clases o interfaces. El prefijo del paquete siempre corresponderá a un nombre de dominio de
primer nivel como: es, eu, org, com, net, etc.

El resto de componentes del paquete se escribira con minusculas, si en el caso se identifican


con dos nombres debe estar presedido por el caracter "_" el segundo nombre.

Ejemplo

adm.practica_1.logica
java.util.ArrayList

javax.servlet.http.HttpServletRequest
8.2 Clases e Interfaces
Los nombres de las clases deben ser sustantivos, en la que deben contener la primera letra
en Mayúscula.

Los nombre serán simples y descriptivos. Debe evitarse el uso de acrónimos o abreviaturas,
salvo en aquellos casos como URL, HTTP, etc.

Así mismo las interfaces serán nombradas como lo indicado para las clases.

Ejemplo:

class Ciudadano
class OrganigramaDAO
class AgendaService
8.3 Métodos
Los métodos deben ser verbos escritos en minúsculas. Cuando estos estén compuestos por
varias palabras se tendrá la primero palabra en mayúscula.
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”

Ejemplo:

public void insertaUnidad(Unidad unidad);


public void eliminaAgenda(Agenda agenda);
public void actualizaTramite(Tramite tramite)
8.4 Variables
Se escribirán siempre en minúsculas, si en el caso que estén compuestas por varias palabras
la primera palabra sera en mayúscula.

Las variables nunca podrán comenzar con los siguientes caracteres "_" o "$".

Los nombres deben ser cortos y su significado debe ser lo suficientemente claro para que
demuestre la función que desempeña en el código. Por lo que se debe evitar el uso de
nombre de variables de un solo carácter.

Ejemplo:

Unidad unidad;
Agenda agenda;
Tramite tramite;
8.5 Constantes
Todos los nombres de las contantes deben ir en mayusculas, en el caso de componer con
mas nombres se debe usar un caracter de intermedio "_"

Ejemplo:

int LONGITUD_MAXIMA;
int LONGITUD_MINIMA;
9. Prácticas de programación
9.1 Visibilidad de atributos de instancias y clases
Los atributos de instancia y clases siempre deben ser declarados privados (private), excepto
cuando tengan que ser visibles en subclases heredadas, en tal caso serán como
protegidos(protected).

El acceso a los atributos de una clase debe darse por medio de los métodos "get" y "set".

Ejemplo:

public class Unidad {

private int id;


private String nombre;
...
public void actualizaUnidad(Unidad unidad) {
this.setId(unidad.getId());
this.setNombre(unidad.getNombre());
}
...
}

9.3 Constantes
Nunca aparecerán directamente en el código, para lo cual se escribirá con mayúsculas y se
declararán su ámbito de uso.
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”
Ejemplo:

// Uso incorrecto
codigoErrorUsuarioNoEncontrado = 1;
...
switch (error) {
case codigoErrorUsuarioNoEncontrado:
...
}
// Uso correcto
public final int CODIGOERROR_USUARIONOENCONTRADO = 1;
...
switch (error) {
case CODIDOGERROR_USUARIONOENCONTRADO:
...
}
9.4 Asignación sobre variables
Se debe evitar asignaciones sobre el mismo valor multiples variables en una misma
sentencia.

Ejemplo:

int a = b = c = 2; // Evitar

// INCORRECTO
if ((c = d++) == 0) { }

// CORRECTO
c = d++;
if (c == 0) { }

//INCORRECTO
c = (c = 3) + 4 + d;

//CORRECTO
c = 3;
c = c + 4 + d;
9.5 Otras prácticas
9.5.1 Paréntesis
Se debe incluir distintos tipos de operadores para evitar problemas de precedencia de
operadores. Por lo que otros programadores puedan que no tengan clara las reglas de
precedencia.

Ejemplo:

if (w == x && y == z) // INCORRECTO
if ((w == x) && (y == z)) // CORRECTO
9.5.2 Variables de retorno
Tendrán que ser simples y comprensibles de acuerdo al propósito y comportamiento que se
utilicen.
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”
Ejemplo:

// INCORRECTO
public boolean esProgramador(Empleado emp) {

if (emp.getRol().equals(ROL_PROGRAMADOR)) {
return true;
} else {
return false;
}

// CORRECTO
public boolean esProgramador(Empleado emp) {

boolean esUnProgramador = false;

if (emp.getRol().equals(ROL_PROGRAMADOR)) {
esUnProgramador = true;
}

return esUnProgramador;
}

9.5.3 Expresiones en el operador condicional ternario


Toda expresión compuesta, por uno o más operadores binarios, situada en la parte
condicional del operador ternario deberá ir entre paréntesis

Ejemplo:

(x >= y) ? x : y;

Potrebbero piacerti anche