Java

  • ¡El stacktrace sale recortado! (y cómo resolverlo)

    Una situación anormal en Java que puede resultar muy molesta: al ejecutar los tests de nuestro proyecto, el stacktrace de las excepciones que puedan surgir aparece "abreviado" (o mejor dicho, cortado: sólo aparecen las primeras 2 líneas!). Por suerte, es algo muy simple de solucionar.

  • ¿Qué es un PORTLET? ¿Cómo crear un "hola mundo" desde cero con SPRING?

     En este artículo vamos a hacer una breve introducción a los portlets. Así como también, como crear uno con spring.

  • @ResourceMapping por sobre @ActionMapping

    En esta ocasión vamos a ver que ventajas tenemos con la utilización de @ResourceMapping por sobre @ActionMapping y que trae esto como consecuencia. Vamos!

  • Apache NetBeans 11: cómo configurar el IDE para aprovecharlo al máximo

    Hace ya varias semanas está disponible el release estable de Apache NetBeans 11. Para el proyecto es un enorme avance y esfuerzo. Y con algunos detalles podemos aprovechar al máximo este IDE. Veamos como instalarlo, configurarlo y dejarlo listo para usar!

  • Arquitectura de capas

    En el post anterior vimos qué era la arquitectura de software y para qué nos sera. En este nuevo post vamos a ver más en detalle la arquitectura de capas. 

    Se destaca por ser fácil de implementar en el comienzo del proyecto y fácil de entender para principiantes en el desarrollo de software.  

  • Builders: la solución definitiva a los datos de prueba en los test

    Imaginemos el siguiente escenario: estamos codificando el test para guardar un cliente, y necesitamos que ya exista en la base de datos la empresa a la cual pertenence. ¿Qué hacemos? Una primera solución rápida es contar con datos de tests ya existentes en la base de datos, y confiar en que dichos datos sirvan para nuestro test (o, si no alcanzan, agregar los datos de tests necesarios a la base). Y sin embargo... hacer esto es el comienzo de graves problemas.

  • Cómo evitar demoras en la JVM ocasionadas por el generador de números aleatorios

    En las plataformas Linux, la JVM utiliza /dev/random para la generación de números aleatorios. Este servicio del sistema operativo necesita de cierta cantidad de "ruido" (entrada por teclado, movimiento de mouse, transferencia de red, etc) antes de retornar un resultado. Y mientras espera este "ruido aleatorio"... se bloquea. Esto puede ocasionar bloqueos en procesos que requieren de números aleatorios, como WebLogic o Apache Tomcat. Por suerte, hay una solución simple.

  • Cómo usar JUnit 5 con Spring Boot 2.1.x

    JUnit 5 es la nueva versión del framework de testing para Java, que trae muchísimos cambios y mejoras... y es muy tentandor para empezar a usar. Sin embargo, si usamos Spring Boot sabemos que todavía no hay soporte directo para JUnit 5. Por suerte, vamos a ver que con unos pequeños cambios podemos aprovechar esta nueva versión del framework.

  • Configuración centralizada de aplicaciones con Spring Cloud Config


    Cuando desarrollamos microservicios, o cualquier aplicación que durante su ciclo de vida pasa por varios entornos diferentes. El mantenimiento de estas configuraciones deja de ser una tarea trivial. En este post veremos cómo utilizar Spring Cloud Config para facilitarnos esta labor!

  • Conversión de tipos con Spring

    En Spring 3 se introduce el paquete core.convert que proporciona una manera de conversión de tipo genérica. Define un SPI (Service Provider Interface) para implementar la lógica de conversión de tipos, así como una API para ejecutar conversiones de tipo en tiempo de ejecución. Esta manera es una alternativa a PropertyEditors que se encarga de convertir las propiedades a los tipos requeridos.

  • Firma Digital en documentos PDF

    Quizá te toca desarrollar un sistema que envía facturas, comprobantes de pago, turnos o contratos, todos documentos digitales que te interesa validar que no te los alteren o falsifiquen. Si los generás en PDF y estás trabajando en JAVA, este post es para vos.

  • Introducción a Streams en Java

    Hoy vamos a ver una manera muy interesante de operar con colecciones de datos.
    ¿Querés saber que son los Streams de Java? Descubrámoslo juntos.

  • Machine Learning: Consulta a tu algoritmo inteligente por medio de un servicio REST en una aplicacion WEB en JAVA

    ¡Bienvenidos al tercer post de Machine Learning del blog! En el vamos utilizar el algoritmo inteligente creado en el anteriorpost y vamos a importarlo en un aplicación Web en JAVA. Para terminar vamos a exponer un servicio REST al cual vamos a consultarlo para realizar predicciones. Así que ¡Manos a la obra!

  • Pruebas de carga con JMeter

    Las pruebas de carga se realizan para conocer la capacidad máxima de un sistema bajo una carga determinada y poder dar con las causas que puedan condicionar su rendimiento. Algo fundamental cuando queremos mejorar la experiencia del usuario en nuestra aplicación.
    Para esto una herramienta muy recomendada es Apache JMeter. Por eso hoy vamos a ver de qué trata y cómo usarla, ¡adelante!

  • Refactor: ¿por dónde empezar?

    Recuerdo una vez que me encontré desarrollando una historia de usuario que requería cambiar un método que había hecho hace mucho tiempo atrás. Inmediatamente antes de arrancar noté que algo me hacía ruido, no me gustaba, no me convencía. Me di cuenta que tardé más de lo que me hubiese gustado en entender qué hacia realmente ese método. Inmediatamente pensé "mmm... ¡creo que esto amerita un refactor!".

    Es probable que te haya pasado algo similar en algún momento y que, como yo, te parezca que el código parece ser muy complejo para cambiar y no sabés por dónde empezar. En este post te voy a dar cinco consejos para que puedas hacerlo.

  • Spring Data Projections

    Normalmente los métodos de Spring Data retornan una o más instancias de la entidad raíz con la que tipamos el repositorio. Sin embargo, en algunas ocasiones necesitamos obtener proyecciones de estas entidades.

  • Tres preguntas para entender la arquitectura de software

    El desarrollo de software busca resolver distintas problemáticas con ayuda de la tecnología. Pero estas problemáticas suelen ser variadas y distintas, por lo que nuestro producto tiene que ser acorde al problema a resolver. O sea, no es lo mismo resolver la gestión de finanzas de una empresa que resolver la integración de un sistema con la AFIP. 

    Como tenemos distintos problemas que resolver debemos suponer que no todos los problemas se resuelven de la misma manera. Pero ¿Por dónde empiezo para saber que estrategia usar para resolverlo? 

    Es ahí donde debemos emplear una de las primeras herramientas a tener en cuenta en el desarrollo de software. “La arquitectura de software”. 

  • Validaciones en Java - Parte I

    La validación de los datos ingresados por un usuario es una tarea habitual en la mayoría de las aplicaciones web. Los invito a explorar una manera de realizar las validaciones en aplicaciones java.

  • Validaciones en Java - Parte II

    En la parte I de este artículo vimos cómo usar las anotaciones de Bean Validation para validar atributos y parámetros. ¿Qué pasa si queremos hacer validaciones que no están implementadas por el estándar?