ESTÁNDAR DE CODIFICACIÓN JEE CHECKLIST

Documentos relacionados
ESTÁNDAR DE CODIFICACIÓN JEE CHECKLIST

ESTÁNDAR DE CODIFICACIÓN JEE CHECKLIST

ATLAS MANUAL DE USUARIO DEL ARQUETIPO JAR

Plataforma de Tramitación 2.4.1

APLICACIONES WEB J2EE - JSP

Convenciones de código para el lenguaje de programación JAVA 1

Índice INTRODUCCIÓN...11

JAVA 7 Los fundamentos del lenguaje Java

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Arquitectura Java Web. Ing. Juan Zevallos Valle

Índice de Figuras 160

NÚMERO DE HORAS: 160H PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE OBJETIVO

Objetivos y Temario CURSO JAVA 7

TEMARIO ESPECÍFICO PROVISIONAL (OPE 2016) CATEGORÍA: TÉCNICO/A ESPECIALISTA INFORMÁTICA

Computación Web (Curso 2013/2014)

NOVIEMBRE Lu Ma Mi Ju Vi Sa Do 2 F.INICIO: 16:30-18: :30-18: :30-18: :30-18: :30-18: :30-18: :30-18:00

SEGURIDAD Y ALTA DISPONIBILIDAD

Temario Programación Web para Web

Seguridad aplicaciones (Solución RASP).

Motor de tramitación Informe de pruebas Oracle Versión: v01r00 Fecha: 11/06/2014

Programa Formativo. Código: Curso: Lenguaje PHP y Cake PHP Framework Modalidad: ONLINE Duración: 60h.

Estudiaremos desde los fundamentos hasta conceptos más avanzados de la tecnología JSF.

Así, según el nivel de interacción podemos clasificar las web en:

LENGUAJE PHP Y CAKEPHP FRAMEWORK

Consejería de Justicia y Administración Pública. v Notas de la versión

Gestión de la Accesibilidad Web

Desarrollo Web con PHP y MySQL

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

PROGRAMACIÓN EN JAVA

Pliego de Bases Técnicas

Capítulo 1. Fundamentos de las pruebas de software...

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Framework Atlas. Introducción FRAMEWORK ATLAS INTRODUCCIÓN. Diciembre de Diciembre de 2016

Amenazas a Aplicaciones Web Ing. Mauricio Andrade Guzmán. Subdirección de Seguridad de la Información/UNAM-CERT

GUÍA DOCENTE CURSO FICHA TÉCNICA DE LA ASIGNATURA. Datos de la asignatura Nombre

Presentación del Curso Presencial. Programación en Java Nivel Básico

Administración de sistemas gestores de bases de datos

Plataforma de Desarrollo de Software

ANEXO A. FRAMEWORK SARA

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Modelos de calidad. Técnicas de prueba del software Estrategias de prueba del software. Calidad del software. Factores de Calidad. producto.

Oracle 10g: Creación de Aplicaciones J2EE

Expand SECURITY. Plataforma de Seguridad para Aplicaciones Web

Objetivos y Temario CURSO PHP Y MySQL

Tema 4g: Proceso Unificado: Implementación

PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ

Jump Start ManageEngine Asset Explorer

Plataforma de Tramitación G ONCE Manual de Integración

GUÍA DOCENTE CURSO FICHA TÉCNICA DE LA ASIGNATURA. Datos de la asignatura Nombre Programación de Aplicaciones Telemáticas

Arquitecturas Distribuidas. TEMA 3. Tecnologías de la web dinámica

Índice INTRODUCCIÓN...11 CAPÍTULO 1. SELECCIÓN DE ARQUITECTURAS Y HERRAMIENTAS DE PROGRAMACIÓN...13

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

Programación Web Tema 1.1: Introducción

Presentación de los Servicios Profesionales. broadnet. Proyecto: v01.04.a) Presentación Servicios Profesionales.

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

Las tecnologías del desarrollo Web

Programación de Aplicaciones Distribuidas

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web

ARQUITECTO DE SOFTWARE ESB TIBCO (CONSULTOR SÉNIOR ESB TIBCO)

Check-in Online - Civitfun. ICG2Checkin. ICG2Checkin v ICG Software. 1 de 18

IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión

DISEÑO E IMPLEMENTACIÓN DE APLICACIONES EMPRESARIALES CON MOVILIDAD. 1 OBJETIVOS...1

COMPUTACIÓN EN LA NUBE CON JAVA

Esquema Nacional de Seguridad en el ámbito de la Administración Electrónica «BOE»

formación CURSOS A MEDIDA ESPECIALIZACIÓN PROFESIONAL HERRAMIENTAS TIC

MANUAL DE USUARIO Plugins para maven Framework ATLAS. Versión 1.1

Desarrollo y servicios web

Ingeniería del Software de Gestión

PHP y MySQL Domine el desarrollo de un sitio Web dinámico e interactivo (3ª edición)

Sistemas Informáticos del Valle

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2017/2018

Master en Java Certificación para Programadores

TEMA 54 La arquitectura JEE

Índice general 7. Presentación 15

IMPLANTACIÓN DE APLICACIONES WEB

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

Tratamiento de la información y competencia digital. Competencia en el conocimiento y la interacción con el mundo.

Anexo 11 Hojas resumen por componente software para la migración

Curso JAVA EE

Desarrollo Seguro. Programa de Estudio.

MTIC (MEDIOS Y TECNOLOGIAS DE LA INFORMACIÓN Y COMUNICACIÓN) ADMINISTRACION DE LA PLATAFORMA DE CURSOS VIRTUALES MINERVA-ISER

Tema 6: Clases. Índice

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Oficina de Calidad Subdirección de Tecnologías de la Información y Comunicaciones. Gestión de Entregas. Procedimiento para la Entrega de Software

Presentación del Curso Presencial. Programación Web con Java J2EE

SÍNTESIS DE PROGRAMACIÓN MD PR7504 PROGRAMACIÓN

Desarrollo Software Gran Escala

1) FUNDAMENTACIÓN DE LA MATERIA DENTRO DEL PLAN DE ESTUDIOS

MANUAL DE DESPLIEGUE DE APLICACIONES J2EE EN LA PLATAFORMA DEL GOBIERNO DE CANTABRIA

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

PHP: Lenguaje de programación

Transcripción:

28 de Noviembre de 2016 Versión 1.3.4

APLICACIÓN AMAP 2.0 CONVENCIONES DE CÓDIGO EN DESARROLLO JEE Todas los ficheros están codificados en UTF-8 Se le ha asignado a la aplicación un código identificativo único Sigue la estructura de directorios especificada ESTANDAR DE CODIFICACIÓN JAVA (no aplicable a código fuente generado automáticamente) NOMENCLATURA Generalidades El idioma por defecto a la hora de dar sentido funcional al nombre de clases, variables, constantes, etc. es una mezcla entre la nomenclatura tradicional en inglés y la nomenclatura funcional adoptada. NOMENCLATURA - Paquetes El paquete base está definido como es.gobcantabria.aplicaciones.<id_app> para aplicaciones, es.gobcantabria.amap.<id_grp>.<id_app> para componentes AMAP y es.gobcantabria.trewa.<id_app> para procedimientos Trew@ Los nombres de todos los paquetes están escritos en minúsculas y sin caracteres especiales. No existe ninguna clase en el paquete base La estructura de paquetes sigue la estructura definida (ver documento) NOMENCLATURA - Interfaces Todos los nombres de los interfaces utilizan el sufijo Interface Todos los nombres de los inferfaces están escritos en formato CamelCase No se usan abreviaciones que dificultan la compresión del código NOMENCLATURA Clases Los nombres están escritos en formato CamelCase Los nombres son simples y descriptivos. Se usan palabras completas sin acrónimos y abreviaturas NOMENCLATURA Gestiones Se emplea la nomenclatura <<FuncionalidadGenerica>><<Entidad>><<Especificación de Clase>> NOMENCLATURA Métodos Los métodos son verbos en infinitivo Están en formato lowercamelcase Estándar de Codificación J2EE (Checklist) 2

No contienen caracteres especiales Los nombres son suficientemente descriptivos. NOMENCLATURA Variables Están en formato lowercamelcase (no aplicable a variables finales) No contienen caracteres especiales Los nombres son suficientemente descriptivos. ESTILO DE CODIFICACIÓN Comentarios Se evitan referencias al diseño funcional No se hace un uso abusivo de ellos Se evita el uso de caracteres especiales y gráficos en ASCII ESTILO DE CODIFICACIÓN JavaDoc Se proporciona el Javadoc de cada clase/interface, método, propiedad o constante creada. Se escribe siempre en tercera persona Los caracteres especiales como tildes, eñes, etc se codifican con su código HTML correspondiente o bien en UTF-8. ESTILO DE CODIFICACIÓN Declaraciones Se utiliza una declaración de cada vez. Se inicializan todas las variables locales (excepto si son propiedades de un bean) Las variables de avance de bucles for no son modificadas fuera de la propia sentencia del bucle. Se evita la duplicidad de los nombres de variables en diferentes niveles dentro de la misma clase. ESTILO DE CODIFICACIÓN Sentencias No hay más de una sentencia por línea de código Todo bloque de sentencias se encuentra entre llaves. Se definen las tres condiciones del bucle for La variable de avance del bucle nunca es modificada dentro del propio bucle. BUENAS PRÁCTICAS - Constantes Ninguna constante numérica se codifica directamente. BUENAS PRÁCTICAS Propiedades El acceso/modificación de las propiedades de una clase (no constantes) siempre mediante métodos de acceso get/set. Estándar de Codificación J2EE (Checklist) 3

La asignación de variables / propiedades no es consecutiva. No se utiliza el operador de asignación en sitios donde se puede confundir con el operador igualdad ni dentro de expresiones complejas. BUENAS PRÁCTICAS Métodos No se accede a un método estático desde una instancia de una clase. NOMENCLATURA Los nombres de los ficheros JSP siguen la notación lowercamelcase CÓDIGO JSP/HTML No se emplean scriptlets. No se incluyen includes dinámicos Los atributos de los tag HTML van entre comillas dobles No se utiliza Javascript para la creación de contenido No se utilizan elementos ni atributos HTML deprecated (html 4) Se usa CSS para aplicar los estilos Se evita el uso de comentarios en HTML Todos los literales están internacionalizados OTRAS CONSIDERACIONES FICHERO DE LOG Se especifica el logging-profile en el fichero MANIFEST.MF (no aplicable para procedimientos trew@) FICHERO DE PROPIEDADES Las propiedades relacionadas con sistemas se guardan en un fichero de propiedades externo a la aplicación La nomenclatura del fichero es la adecuada. La nomenclatura de las propiedades es la adecuada. LIBRERÍAS Y FRAMEWORKS Se utilizan las librerías especificadas en el FMW AMAP 2.0 (para procedimientos trew@ se permite además el uso del repositorio amap-trewa ). Quedan excluidas las aplicaciones del FMW AMAP 1.5 DATASOURCES El datasource se define vía jndi La variable jndi sigue la nomenclatura especificada VERSIONADO El software entregado especifica un número de versión y se Estándar de Codificación J2EE (Checklist) 4

corresponde con el versionado del código fuente. Esta versión deberá ser posterior a la del último despliegue en producción. En el pom.xml principal se indicará en una propiedad la versión del arquetipo que se ha utilizado. Esta propiedad es generada automáticamente al crear un proyecto con el arquetipo y no deberá ser alterada ni modificada. EMPAQUETADO El nombre del distribuible sigue la nomenclatura especificada. PRUEBAS UNITARIAS El software debe tener y ejecutar correctamente sus pruebas unitarias. CÓDIGO FUENTE Se ha proporcionado el código fuente El ear proporcionado coincide con el ear generado desde el código fuente. DOCUMENTACIÓN Existencia de DRF y Análisis con información coherente como indican las normas de AMAP Existencia de documentación de pruebas y Manual de usuario como indican las normas de AMAP (no necesario si no es despliegue de producción) En el Inventario de Aplicaciones (INVAPP) se debe indicar todos los componentes amap utilizados CONSULTAS A BASE DE DATOS Las consultas serán de un rendimiento razonable, en caso de requerirse consultas que requieran de una cantidad masiva de registros o con una mezcla de tablas poco convencional (no unida por claves ajenas, campos indexados o similares) deberán ser indicadas al grupo de arquitectura para su validación. VERSIÓN DE LOS COMPONENTES AMAP Los componentes AMAP empleados en las aplicaciones que estén recogidos en el POM padre, no deberán indicar la versión. Para los componente no recogidos en el POM padre, será recomendable el uso de un rango para indicar la versión. AMAP-GESTOR-DOCUMENTAL Se debe utilizar el gestor documental versión 2.x (indicar en el resumen el incumplimiento) CONSIDERACIONES ESPECÍFICAS PARA PROCEDIMIENTOS TREW@ Estándar de Codificación J2EE (Checklist) 5

NORMALIZACIÓN DE LA CLASE DE INTEGRACIÓN La clase de integración sigue la nomenclatura especificada UBICACIÓN DE LOS FICHEROS DE LOG Los log se almacenan en el directorio especificado. CIFRADO DE PARÁMETROS Los parámetros enviados por la Oficina Virtual y la Agenda a través de la clase de integración van encriptados usando la librería Ticket DATASOURCES Se sigue la normativa especificada en el documento Organización esquemas de base de datos de procedimientos. EMPAQUETADO Todos los recursos van empaquetados en un fichero EAR tal y como se especifica en el Manual de Integración de la Plataforma de Tramitación G ONCE. AISLAMIENTO DE CLASES Existe fichero jboss-app.xml en el META-INF del ear con la etiqueta <loader-repository>es.gobcantabria.trewa:archive=xxxx </loader-repository> Donde XXXX es el indentificador del procedimiento(ejem: A001) SEGURIDAD INYECCIÓN SQL No deben existir generación de consultas SQL basada en la concatenación directa (sin comprobación) de parámetros obtenidos de la petición. Utilizar en su lugar procedimientos preparados con variables parametrizadas. CROSS-SITE SCRIPTING (XSS) No deben existir generación de elementos de presentación (html y javascript especialmente) basada en la utilización directa (sin comprobación) de parámetros obtenidos de la petición. CROSS-SITE REQUEST FORGERY (CSRF) / PUBLICACIÓN DE INFORMACIÓN SENSIBLE Las operaciones marcadas como críticas por parte del analista/usuario (que comprometa los datos más sensibles o impliquen una operación que tenga implicaciones importantes) se añadirá a la petición un captcha, token aleatorio o mecanismo de seguridad adicional similar que será comprobado en la parte servidora, para asegurar el origen no fraudulento de la petición. Estándar de Codificación J2EE (Checklist) 6

REFERENCIAS A OBJETOS INSEGURAS Para los datos críticos indicados por el analista/usuario no debe haber parámetros (GET o POST) con información directa de la base de datos (IDs de BBDD, ficheros, directorios, claves, etc.) sin que el usuario tenga autorización suficiente para los mismos. Conexión con LDAP Comprobar que al conectar con LDAP se le pasa el usuario y contraseña para evitar Anonimous Binding * NOTA: las normas en negrita son bloqueantes Estándar de Codificación J2EE (Checklist) 7

1..1. RESUMEN Estándar de Codificación J2EE (Checklist) 8