Tecnologías para una nueva aplicación web
• java, java8, css, git, web apps, jax-rs, css3, html5, angujarjs
Siempre que empiezo un nuevo proyecto de aplicación web evaluo la situación, requerimientos y estado de la tecnología y acabo, para bien o mal, liándome con alguna tecnología nueva.
Estas son las tecnologías utilizadas en mi último proyecto. Por supuesto en el siguiente pueden cambiar…
Tecnologías
Back-end
- Java: Java como lenguaje de programación base para el servidor.
- Tomcat: El servidor de aplicaciones web Tomcat.
- FlyWay: Permite gestionar las versiones y migraciones de la base de datos de nuestra aplicación de una manera automatizada y ordenada.
- jOOQ: Sin ser un ORM permite generar y ejecutar código SQL asociado a nuestro esquema de datos de manera segura (type safe).
- jOOL: Expande sobre las nuevas funcionalidades de Java 8 (lambdas, streams…)
- Guava: Libreria de utilidades variadas para el lenguaje Java mantenidas por Google.
- Guice: Libreria de Google para inyección de dependencias.
- Jersey: Libreria servidor y cliente de servicios web RESTful. Implementación de referencia del API oficial de Java JAX-RS.
- Logback: Libreria para logging.
- Mailgun: <autobombo>Libreria Java para enviar correos electrónicos fácilmente utilizando el servicio Mailgun.</autobombo>
Front-end
- AngularJS: Framework cliente para aplicaciones web mantenido por Google.
- Bootstrap: Framework HTML y CSS para creación de sitios adaptables (responsive).
- Moment.js: Libreria JavaScript para trabajar con fechas.
- Font Awesome: Iconos vectoriales para la interficie de la aplicación.
Build
- Gradle: El gestor principal de las dependencias (del back-end) y el build.
- Grunt: Automatiza las tareas relacionadas con las librerias del front-end.
- Bower: Gestión de dependencias del front-end.
- Git: Gestor de repositorios de código distribuidos.
Test
- JUnit: El framework Java por excelencia para pruebas unitarias.
- Mockito: Para generar impostores y facilitar los juegos de pruebas.
- Powermock: Añade funcionalidades a Mockito.
- Karma: Ejeuctar los juegos de pruebas del front-end.
- Jasmine: Define los juegos de pruebas del front-end.
En el punto de mira…
Algunas tecnologías o versiones que aún no estan listas pero tengo en el punto de mira para futuras versiones.
- AngularJS 2: La próxima versión de Angular viene con muchas novedades.
- Bootstrap 4: Cambios significativos en la siguiente versión mayor de Bootstrap.
- Angular Material Design: Como alternativa a un diseño basado en Bootstrap me parece interesante probar un diseño web con Material Design.