Java Forensics

Todos hemos desarrollado aplicaciones y, en general, siempre creemos que lo hemos hecho bien. Luego aprendemos, avanzamos en nuestra profesión, y nos damos cuenta de las cosas que podemos mejorar. Se trata de un aprendizaje continuo, que refina nuestro código y hace que nuestras aplicaciones funcionen mejor.

Por desgracia, o quizá por fortuna, este proceso no es tan natural como puede parecer. Las prisas, los proyectos estimados muy por debajo de su valor e incluso el desconocimiento de lo que es realmente desarrollar un software decente provocan que muchos proyectos se derrumben como un castillo de naipes.

Las consecuencias son graves. Primero, el prestigio de la empresa queda en entredicho. Y quizás también el tuyo. No es solo el dinero que se ha dejado de ganar con ese proyecto, o los proyectos que ya no se harán con ese cliente. Puede convertirse en una mancha demasiado visible, que se recuerde, y puede afectar a la adquisición de nuevos clientes. En segundo lugar, las consecuencias legales. Esto es especialmente grave con empresas grandes, que aplican sanciones por cada día de retraso en la entrega del proyecto, y establecen condiciones de aceptación basadas en métricas objetivas, como por ejemplo % de CPU o tiempo de respuesta de la aplicación. Esto está cada vez más presente por consecuencia de la adopción de técnicas Cloud, que engordan la factura en función de los recursos utilizados (Amazon EC2, Azure, Bluemix, etc…)

Por desgracia, o quizá por fortuna, desarrollar software de calidad, y óptimo, no está al alcance de cualquiera. Es necesario conocimiento, y experiencia. Y pasión.

En este curso profundizaremos en los problemas más habituales en aplicaciones Java. Exploraremos las causas, y encontraremos las soluciones, a través de ejemplos prácticos, con código real. Nunca un curso tan práctico sobre rendimiento y técnicas de performance.

Talk is cheap. Show me the code.

Del 18 Abr 2017 hasta el 02 Mayo 2017
Duración: 20 horas
Horario: Martes y jueves de 16 a 20h horas
Lugar: Instituto Tecnológico de Informática (ITI). Ciudad Politécnica de la Innovación, Edificio 8G, Cuarta Planta
Precio: 360€
Período de inscripción: Del 06 Mar 2017 hasta el 07 Abr 2017
Objetivos:

Los alumnos deberán adquirir las siguientes competencias:

·         Conocer las causas por las cuales una aplicación tiene un rendimiento indeseable

·         Analizar un proyecto Java y encontrar las causas concretas que provocan el problema.

·         Corregir una implementación de rendimiento deficiente

·         Utilizar técnicas para el aumento del rendimiento y software que apoye en la búsqueda y en el análisis

Público objetivo:

Profesionales técnicos, administradores gestores/jefes de proyecto , analistas, consultores técnicos y desarrolladores interesados en desarrollar aplicaciones altamente eficientes y en detectar los problemas de rendimiento en aplicaciones ya existentes.

Observaciones:

Profesionales con conocimientos básicos de programación y del lenguaje Java, conocimientos básicos de bases de datos, especialmente modelo relacional. Se recomienda tener conocimientos sobre el ecosistema Java (Spring, JPA, Hibernate, etc.) aunque no es indispensable para la correcta realización del curso.

Programa:

1. Introducción a Java Forensics

   a. Do or do not. There is no try

   b. El Performance Cycle

   c. Mega Construcciones que salieron mal. Casos prácticos

   d. El ecosistema Java

   e. Problemas más comunes en aplicaciones Java

   f. La filosofía Trust no-one

   g. Herramientas de diagnóstico libres y comerciales

2. Procesador

   a. Uso de CPU de aplicaciones JAVA

   b. Cómo escribir “código performante” enfocado al uso de CPU

   c. Cómo encontrarlos (Análisis y herramientas)

   d. Cómo solucionarlos

   e. Ejemplo práctico

3. Memoria

   a. Esquema de memoria de Java

   b. El Garbage Collector

   c. Configuración de la JVM

   d. Cómo escribir “código performante” enfocado a la memoria

   e. Cómo encontrarlos (Análisis y herramientas)

   f. Cómo solucionarlos

   g. Ejemplo práctico

4. Bases de datos y ORMs.

   a. Conceptos previos

   b. JPA vs JDBC

   c. Configuración y obtención de métricas

   d. Tipos de bases de datos

   e. Buenas prácticas en JPA

      i. Weaving y el problema N+1

      ii. Interbloqueos

      iii. Paginación

      iv. Bulk operations y Caché

   f. Cómo encontrarlos (Análisis, medición y herramientas)

   g. Cómo solucionarlos

   h. Ejemplo práctico

5. Arquitectura

6. Conclusiones

 

Dirección de contacto: formacion@iti.es
Más información:

Todos los cursos de ITI pueden ser subvencionados a través de los créditos de formación que ofrece la Fundación Tripartita. Infórmate aquí.

El precio indicado deberá incrementarse con el correspondiente IVA (21%).

Número mínimo de alumnos para realizar un curso: 8.