Download Lista de verificación JAVA
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