Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
Comentarios de Inicio
Sentencia de paquete
Sentencia de importación
Declaraciones de clases e interfaces
Nombre de la clase
Información de la version
Fecha
Copyright
/*
* @(#)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:
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 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 /* ... */
Constructores
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.
Ejemplo:
Ejemplo
/*
* Esto es un comentario
* de bloque
*/
Ejemplo:
Ejemplo:
5. Declaraciones
5.1 Declaración por línea
Es aconsejable ya que se promueve el uso de comentarios
Ejemplo:
Ejemplo:
int idUnidad = 1;
INSTITUTO TECNOLOGICO SUPERIOR “ISMAC”
Ejemplo:
Ejemplo:
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:
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++;
}
sentencias;
} catch (ClaseException e) {
sentencias;
}
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);
a += b + c;
a = (a + b) / (c + d);
contador++;
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.
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:
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:
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) {
if (emp.getRol().equals(ROL_PROGRAMADOR)) {
esUnProgramador = true;
}
return esUnProgramador;
}
Ejemplo:
(x >= y) ? x : y;