El desarrollo moderno de JavaScript puede ser abrumador.

Al trabajar en un proyecto, te puedes preguntar si toda la maquinaria e instrumentación moderna es necesaria.

¿Qué hacen herramientas como Webpack y SystemJS? O ¿qué significa AMD, UMD o CommonJS?  ¿Qué relación tienen entre ellas? y ¿porqué, siquiera, las necesitas?

En esta entrada aprenderemos las diferencias entre módulos JavaScript, formatos de módulo, cargadores de módulo y empaquetadores de módulos.

No se trata de una guía en profundidad de ninguna de las herramientas o patrones individuales, sino de una aproximación que permita entender rápidamente los conceptos del JavaScript moderno.

Lee el resto de esta entrada »

Anuncios

Maven

Maven 2.1.0+ soporta la encriptación de contraseñas de servidor.  Los principales casos de uso que abarca esta solución son:

  • múltiples usuarios comparten el mismo equipo (servidor, equipo de IC)
  • algunos usuarios tienen privilegios para desplegar artefactos Maven en repositoros y otros no.  Esto se aplicat también a operaciones de servidor, que requieran autorización, no solo a despliegues.
  • settings.xml se comparte entre usuarios.

La solución implementada añade las siguientes capacidades:

  • lo usuarios autorizados tienen un fichero settings-security.xml adicional en su carpeta ~/.m2
  • el fichero contiene o bien una contraseña maestra, usada para encriptar otras contraseñas o bien contiene una referencia a la ubicación de otro fichero, posiblemente en un sistema de almacenamiento extraible, que contendrá la contraseña maestra.  Esta contraseña se crea antes usando CLI
  • las entradas server de settings.xml contienen contraseñas y/o passhrases de almacenes de claves encriptadas – esto se realiza usando CLI después de haber creado la contraseña maestra y de haberla almacenado en la ubicación apropiada

Lee el resto de esta entrada »

Maven

Si tienes un proyecto maven multi-módulo y quieres construir solamente uno de los submódulos, puedes utilizar las opciones avanzadas del reactor, más concretamente:

  • -pl, –projects
    Construye solamente los proyectos del reactor especificados en vez de construir todos
  • -am, –also-make
    Si se especifica una lista de proyectos, también se construyen los proyectos requeridos por la lista

Así, si nos situamos en el el directorio P del proyecto padre y ejecutamos:

mvn install -pl B -am

esto construirá B y los módulos requeridos por B.

via

jpa-mini-logo

Introducción

Supongamos que tenemos las siguientes tablas con sus correspondientes relaciones:

tablas

Lee el resto de esta entrada »

jpa-mini-logo

Introducción

Cuando se introdujo JPA 2 en el 2009, incluía la nueva criteria API. El propósito de este API era alejarse del uso de los strings JQL (JPA Query Language) en tu código. Aunque JQL parece una buena idea para “apalancarte” en tus conocimientos de SQL, en el mundo de la OO (Orientación a Objetos) tiene una grave desventaja: no existe la comprobación de las query strings en tiempo de compilación. La primera vez que tienes constancia de algo mal escrito o sintácticamente incorrecto en tu query string es en tiempo de ejecución. Esto puede hacer que baje mucho el rendimiento si los desarrolladores tienen que corregir, compilar y redesplegar para continuar.

Los test unitarios pueden ayudar a solucionar este problema pero un área donde no ayudan los test unitarios es en la refactorización. La mayoría de las herramientas de refactorización no se llevan bien con las cadenas de texto y acabas teniendo que ejecutar de nuevo los test y teniendo que corregir manualmente cada string en cada iteración de test hasta que todo está correcto.

Con la JPA Criteria API es posible tener consultas type safe (con comprobación de tipado) que se comprueben en tiempo de ejecución y que permitan una refactorización mucho más eficiente.

Lee el resto de esta entrada »

hibernate_logo

Cuidado con usar SQL Queries con Hibernate

Como nuevo usuario de Hibernate, te puede sorprender agradablemente ver que soporta la ejecución de consultas SQL mediante el método createSQLQuery() del objeto Session de Hibernate.

Inicialmente parece beneficioso utilizar las viejas y sencillas sentencias SQL para generar las consultas en tus DAO’s. Después de todo, ya conoces SQL, así que porque perder el tiempo aprendiendo HQL (Hibernate Query Language) o el Hibernate Criteria API. Además, con SQL podemos probar fácilmente las consultas en herramientas de edición de base de datos como DBVisualizer y en el caso “raro” de que lo pudiera necesitar, un DBA no familiarizado con Hibernate podría mantener y mejorar mis consultas de un modo sencillo.

Parece la solución.

Lee el resto de esta entrada »

MAVEN Lifecycle

10/06/2016

Maven

Fundamentos básicos del ciclo de vida de la construcción

Maven se fundamenta en el concepto central de ciclo de vida de construcción (build lifecycle). Esto significa que el proceso de construcción y distribución de un artifact (artefacto = proyecto) concreto está definido claramente.

Para la persona que quiera construir un proyecto significa que solamente es necesario aprender un pequeño conjunto de comandos para construir cualquier proyecto Maven, y el POM se asegurará de que obtenga los resultados deseados.

Existen tres ciclos de vida en el sistema: default, clean y site. El ciclo de vida default controla el despliegue de tu proyecto, el ciclo de vida clean controla la limpieza de tu proyecto, mientras que el ciclo de vida site controla la creación del site de documentación de tu proyecto.

Lee el resto de esta entrada »

A %d blogueros les gusta esto: