Download Lista de verificación JAVA

Document related concepts

Inyección SQL wikipedia , lookup

Transcript
Lista de verificación
JAVA GEN
LIBRERIA
SGO
DIAS
ACC
Lista de verificación JAVA GEN LIBRERIA
Código
Control
NOMBRE
SYSTEMGC
HILOS
RETARDO
MINCONTEXT
MINSESION
SESIONCOLECC
Nomenclatura módulo errónea
Llamada explícita al recolector de basuras
Creación de hilo de ejecución distinto del principal
Retardo explícito en el código
Exceso de información en el contexto de la aplicación
Exceso de información en sesión
Colección de objetos en sesión
v.23.06.2010
Descripción
El nombre del módulo técnico debe ser válido según la normativa
existente.
Tipologías válidas:
WEB: XXXX_[descripción]
WS: XXXX_ws_[descripción]
BATCH: XXXX_batch_[descripción]
LIBRERÍAS: XXXX_lib_[descripción]
JMETODOS: XXXX_jmtd_[descripción]
TBO: XXXX_tbo_[descripción]
No pueden existir llamadas explícitas al recolector de basura en el
código. Estas operaciones pueden afectar al rendimiento y
comportamiento el servidor de aplicaciones.
No pueden utilizarse hilos de ejecución (threads) distintos del hilo
principal.
No pueden existir retardos explícitos en el código que afecten al
rendimiento del desarrollo.
Sólo se pueden almacenar catálogos generales utilizados en toda
la aplicación por todos los usuarios. No se puede almacenar
información específica del usuario (SESSIONID) porque sería
similar a la de sesión.
Determinar la cantidad total de información almacenada en sesión
por usuario en el peor de los casos.
No se puede superar la cantidad de 4 Kb. de información.
Sólo se pueden utilizar tipos primitivos para almacenar la
información en sesión. Lo normal es utilizar clases BEAN
compuestas únicamente por este tipo de datos.
No se pueden utilizar estructuras complejas del tipo HASH,
VECTOR, ARRAY, ...
SQLPREP
Uso de STATEMENT en lugar de
PREPAREDSTATEMENT
Existe una forma de fijar sesión desde páginas JSP. Se indica en
el proceso.
Se deben utilizar objetos del tipo PreparedStatement en lugar de
objetos Statement.
SQLCALL
Se deben utilizar los métodos de CallableStatement sin
parámetros
Mejora el rendimiento de acceso a la base de datos.
Se deben utilizar la versión de métodos sin parámetros con los
objetos de tipo “CallableStatement”.
CATALOGO
SINONIMOREMOTO
SELECTUPDATE
SQLSA
CURSOR
SGO
DIAS
ACC
Actualización de tabla de catálogo
Uso de sinónimo remoto en lugar de databaselink
Sentencia SELECT FOR UPDATE sin claúsula
NOWAIT
Sentencia SELECT *
Cursor abierto
Si no es así, se producirá un error de SQL.
No deben actualizarse desde un desarrollo las tablas fijadas como
catálogos. La actualización de las mismas sin control, puede
provocar un caos en las aplicaciones que las utilizan.
Sólo el grupo responsable de los mismos tiene permiso para
tocarlos.
Se debe acceder a una tabla remota mediante sinónimos remotos
definidos en el esquema de base de datos.
No se puede acceder a una tabla remota mediante el
"databaselink" (tabla@dblink). Cualquier cambio implicaría tocar
código.
Las sentencia del tipo “SELECT FOR UPDATE” deben siempre
utilizar la claúsula “NOWAIT” para evitar posibles interbloqueos
entre varias sentencias de base de datos.
Dependiendo del modo de acceso a los resultados en sentencias
del tipo “SELECT *”, existe probabilidad de que se puedan
producir futuros errores cuando se modifique la estructura de la
tabla.
Además estamos penalizando en tiempo, puesto que se recogen
todos los atributos de la tabla (aunque no se utlicen
posteriormente).
Se deben cerrar todos los cursores abiertos en base de datos
para evitar la degradación de la misma.
Página: 2
Lista de verificación JAVA GEN LIBRERIA
SQLDMLDDL
NOVBSCRIPT
ERRLINK
URL
MAQUINADOM
EMAIL
v.23.06.2010
Uso de sentencias SQL-DDL
No se pueden utilizar sentencias de definición de datos DDL.
Código VBScript en el desarrollo
La manupilación del modelo de datos debe hacerse desde el
modelo de datos específico, no desde un programa.
Sólo está permitido el uso de scripts del tipo Java Script (JScript).
Enlace erróneo
URL absoluta en código
Máquina y/o dominio en código
Dirección de correo en código
No deben utilizar del tipo VBScript (sólo soportado por IExplorer).
Las páginas del desarrollo no pueden tener enlaces erróneos en
las mismas.
No deben existir URLs absolutas en el código del desarrollo.
Deben configurarse en el CONF e introducidas en las páginas en
tiempo de ejecución de la misma.
No deben existir referencias a dominios y/o máquinas en los
fuentes del desarrollo.
Deben configurarse en el CONF e introducidas en las páginas en
tiempo de ejecución de la misma.
No deben existir direcciones de correo electrónico en los fuentes
del desarrollo.
CONVENCION
Convenciones de codificación
COMPILAERR
Errores de compilación en el proyecto
Deben configurarse en el CONF e introducidas en las páginas en
tiempo de ejecución de la misma.
No pueden existir errores de convenciones de codificación en el
código Java.
No pueden existir errores de compilación en el desarrollo.
COMPILAWAR
Avisos de compilación en el proyecto
No deberían existir avisos de compilación en el desarrollo.
Librería propia del desarrollo con no conformidades
No pueden existir librerías propias del desarrollo con no
conformidades. Al ir incluídos en el EAR, las no conformidades se
arratran en el desarrollo.
LIBPROPIA
SGO
DIAS
ACC
Página: 3