Javier Ramirez – Full Stack Develop
Cuando se desea un desarrollo sencillo pero potente, podemos pensar en elegir estas tecnologias, las cuales serian Angular (como parte del Frontend) y en Spring Boot (como parte del Backend).
Angular es un framework de Javascript, gratuito y Opensource, creado por Google y desarrollado para la facil creación de páginas SPA (Single Page Application)
Angular nacio como AngularJS (https://angularjs.org/), un framework de JavaScript bajo el enfoque MVC (Modelo Vista Controlador) esto con el fin de impulsar el patrón MVC, donde para construir aplicaciones era necesario el uso de Controladores (como era de imaginarlo). Muchas aplicaciones a la fecha hacen uso de AngularJS (como Jquery) , con Angular se podia hacer uso de atributos en el HTML como etiquetas personalizadas, esto era por las directivas con las que AngularJS cuenta.
En el año 2016 Google lanzo Angular 2, la construcción de Angular 2 llevo alrededor de 2 años, esta nueva version fue/es version completamente diferente de AngularJS, no es una actualización, es un framework completamente nuevo esto es porque principalmente para el uso de Angular se debe aprender TypeScript
Una de los principales novedades en Angular, es el uso de componentes y la reutilizacion de los mimso, sus principales competidores son los Frameworks React y Vue, con Angular se pueden contruir diferentes tipos de aplicaciones, entre algunas aplicaciones creadas con Angular las podemos ver: https://www.madewithangular.com/, Angular al ser un framework para el Frontend pudiera adaptarse a diferentes lenguajes en el Backend, entre los comunes esta Java (Spring Boot) por medio de los Web Services / Rest API o el Stack MEAN (MongoDB, Express, Angular, Nodejs). En este articulo nos
enfocaremos en Spring.
* Como extra y/o plus, al aprender Angular se pueden construir apps
moviles gracias a Ionic
Para los que no estan familiarizados con esta tecnologia, se puede decir que Spring Boot es una herramienta que nace con la finalidad de contruir aplicaciones mucho mas sencillas bajo el core de Spring Framework ya que este se basaba en ir construyendo la aplicacion en base a configuraciones predefinidas por el desarrollador, un dolor de cabeza.. Una de las caracteristicas fundamentales de Spring es su NO configuración para la construcción de aplicaciones por parte del backend, tambien la resolución de dependencias, ya que se basan en Maven como gestor de dependencias o Gradle, al
momento de desplegar estas apps son mucho mas sencillas, primeramente porque cuenta con servidor Tomcat embeido por defecto (Claro que se puede eliminar), ademas de su facil integración con los motores de base de datos por medio de JPA.
Java Persistence API, más conocida por sus siglas JPA, es la API de persistencia desarrollada para la plataforma Java EE. Es un framework del lenguaje de programación Java que maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard y Enterprise Spring se puede integrar con diferentes motores de vista, por ejemplo Thymeleaf (es el estandar), tambien con JSP, Velocity hasta Handlerbars.
Spring provee su propio IDE, llamado Spring Tool Suite (Actualmente v4) basado en Eclipse, aunque nada impide trabajarlo con Eclipse / IntelliJ / Netbeans, aunque se pueden crear aplicaciones desde: https://start.spring.io/
Hoy por hoy, Spring se esta moviendo bajo la arquitectura de Microservicios (Excelente por sierto), tambien existe Spring Reactivo, son las ultimas caracteristicas propias de Spring (Sin olvidar las nuevas caracteristicas que poseen Java 8 / 10 / 11 / 12)
Angular: es un framework JavaScript para desarrollar aplicaciones web de una sola página (SPA – single page application), asíncronas, reactivas y escalables, creado por Google. Unos de los framework más utilizados hoy en día en la industria para crear aplicaciones web y móviles en el lado del cliente/front-end.
Spring: cuenta con IoC, Spring MVC, API RESTful, Validaciones, Spring Data JPA, Hibernate, Paginación, OAuth2 con JWT, Subida de archivos, WebSocket, STOMP, Mongo DB y más.
La integración de ambos frameworks es relativamente sencillas para quien conosca ambos lenguajes (Java / TypeScript(JavaScript)) aunque si se desea empezar el mundo de la programación bajo este Stack, es una excelente opción, muy recomendada.