Arquitectura y Estandares de Programacion
Arquitectura y Estandares de Programacion
Arquitectura y Estandares de Programacion
ARQUITECTURA Y ESTANDARES DE
PROGRAMACION
Hibernate
JPA
Hibernate + JPA
Spring JDBC
Jquery
Primefaces
ZK
El mecanismo de compilacin que se usar ser Maven, excepto que el cliente solicite usar
Ant, para poder integrar los proyectos con un repositorio y poder centralizar las mtricas de
calidad de cdigo.
3. LINEA BASE
En esta seccin se presenta la arquitectura base definida para la implementacin de la
solucin y el detalle de los componentes que conforman cada uno de las capas de la
arquitectura, los mismos que son explicados a continuacin:
Capa de Presentacin
En esta etapa de la arquitectura se encuentran los componentes y/o aplicaciones
consumidoras de los diferentes servicios de la organizacin.
Capa Servicio
En esta etapa de la arquitectura se encuentran los componentes de servicio de la
solucin, y que tienen las operaciones de negocio organizacionales expuestas para ser
consumidas por un tercero.
Capa Core
Capa Servicios
NombreProyectoWs
Capa Presentacin
NombreProyectoTipPre
Capa Core
NombreProyectoCore
CAPA DE DATOS
BD
Donde:
NombreProyecto:
TipPre:
Representa el tipo de presentaciones que vamos a usar y los tipos permitidos son:
o Web
o Movil
Por ejemplo, para un proyecto que se llame SGA y tenga que crear un proyecto web, el nombre de
los componentes seran los siguientes.
CAPA SERVICIOS
SgaWs
CAPA PRESENTACION
SgaWeb
CAPA CORE
SgaCore
CAPA DE DATOS
SGA
Capa Presentacin
Capa de presentacin del componente representada con el WebContent o contenido web
y que estar compuesta por paquetes referenciad a los mdulos correspondientes.
Capa Control
Capa de control o de agente del sistema, encargada de la redireccin y de asignacin de
solicitudes y respuestas de operaciones, as como de la atencin de los eventos de los
componentes de presentacin.
Capa Ws
Capa en la cual expone servicios web que ser consumido por terceros.
Capa Servicio
Capa en la cual se realizan operaciones o transacciones de servicio.
Capa Negocio
Capa en la cual se realizan las operaciones o transacciones de negocio.
6. NOMENCLATURAS DE CLASES
CAPA DE PRESENTACION
Capa de presentacin del componente representada con el WebContent o contenido Web
y que se estar compuesta por paquetes referenciado al mdulo correspondiente.
Nomenclatura:
Para las interfaces Web:
xxxxYyyy.jsf
xxxxYyyy.xhtml
XxxxYyyyBean.java
Nomenclatura:
Para las clases de control:
XxxxYyyyController.java
CAPA DE SERVICIO
Capa en la cual se realizan las operaciones o transacciones de negocio.
Nomenclatura:
Para la interface de Servicio
Para la implementacin del service
XxxxYyyyService.java
XxxxYyyyServiceImpl.java
Nomenclatura de mtodos:
Insertar
Eliminar
Actualizar
Obtener
Listar
CAPA DE NEGOCIO
9
Nomenclatura:
Para la interface de negocio:
Para la implementacin de negocio:
XxxxYyyyBusiness.java
XxxxYyyyBusinessImpl.java
Nomenclatura de mtodos:
El nombre de los mtodos para el CRUD ser:
o
o
o
o
o
Insertar
Eliminar
Actualizar
Obtener
Listar
Nomenclatura:
Para la interface DAO:
Para la implementacin DAO:
XxxxYyyyDao.java
XxxxYyyyDaoImpl.java
Si los nombres de las clases o interfaces estn conformados por varias palabras, entonces
la primera letra de cada palabra debe ser en mayscula, y se debe considerar como mximo
10 palabras para el nombre de las clases e interfaces.
Nomenclatura de mtodos:
El nombre de los mtodos para el CRUD ser:
o
o
o
o
o
Insertar
Eliminar
Actualizar
Obtener
Listar
CAPA DE PERSISTENCIA
Es la capa que realiza el mapeo objeto-relacional de la aplicacin y la base de datos.
10
Nomenclatura
Para la clase de persistencia:
Para las DTO:
Para los Bean:
XxxxYyyy.java
XxxxYyyyDto.java
XxxxYyyyBean.java
Si los nombres de las clases o interfaces estn conformados por varias palabras, entonces
la primera letra de cada palabra debe ser en maysculas, y debe considerar como mximo
10 palabras para el nombre de las clases e interfaces.
CAPA DE WS
Es la capa que realiza la exposicin de servicios web.
Para la interface de Servicio Web:
Para el WSDL del Servicio Web:
XxxxYyyyWs.java
XxxxYyyyWs.wsdl
7. ESTANDARES DE CODIFICACION
Tome en consideracin las siguientes recomendaciones cuando empiece a disear y
construir una aplicacin y crear soluciones mas robustas.
DE LA DEFINICION DE VARIABLES
Las variables deben ser definidas siempre con la primera letra en minsculas, y las
constantes se deben definir completamente en maysculas, separando cada palabra por un
guion bajo y utilizando static final para su definicin.
private static final String ESPACIO_KEYS = "Keys.WS.Param";
public static final int TREE = 1;
11
Una declaracin por lnea es recomendada en razn del mejor entendimiento. Documente
cada variable local con un comentario al final de la lnea, utilice // para escribir una breve
explicacin del uso que se le dar.
int level; // indentation level
int size; // size of table
Para definir un objeto Collection o elementos que hereden de esta clase, defnalos con una
palabra en plural representado los tipos de objeto almacenados en el Collection. Para definir
cualquier otro objeto que no sea Collection, escrbalo en singular.
List codigos;
String[] rucs;
Trate de inicializar las variables locales donde son declaradas. La nica razn para no hacerlo
es cuando dependen de algn clculo. Utilice variables locales para una sola, las variables
multipropsito causan confusin. Ponga las declaraciones al comienzo de los bloques (los
que estn entre llaves {}). El crear variables en cualquier logar causa confusin.
void myMethod() {
int int1 = 0; // inicio del bloque del metodo
if (condition) {
int int2 = 0; // inicio del bloque del "if"...
}
}
La nica excepcin es para los ndices delos bucles, que normalmente son declarados en la
misma sentencia.
Int maxLoops=size();
for (int i = 0; i < maxLoops; i++) { ... }
Para la definicin de variables de bucles puedes utilizar las letras i,j,k, etc., es un estndar
ampliamente utilizado. Evite las declaraciones que escondan niveles superiores.
12
PRACTICAS DE PROGRAMACION
Las constantes numricas no deberan de ser codificadas directamente, excepto para 1, 0 o 1, que pueden aparecer en una sentencia FOR como valores para el contador.
Evite asignar varias variables al mismo momento en una sola sentencia. Es difcil leer.
fooBar.fChar = barFoo.lchar = 'c'; // Evitar!
15