Table of Contents
Seguimos con nuestra serie de entrevistas (anteriormente habíamos entrevistado a Diego Ojeda – Android Lead en Apiumhub, Serhii Zabolennyi – QA Automation engineer en Apiumhub, Javier Gomez – backend developer en Apiumhub y Cuong Le – Backend developer en Apiumhub. Hoy entrevistamos a Oriol Saludes – desarrollador de Backend en Apiumhub y hablamos de las principales lecciones aprendidas en la arquitectura de Backend.
Entrevista con Oriol Saludes – Desarrollador Fullstack
1. Enumera tu TOP 5 de frameworks de backend y explica por qué
1.- Symfony – php
Symfony es un framework para PHP con una gran evolución en los últimos años. Ha evolucionado hacia un estilo de componentización y ahora algunos componentes de Symfony pueden ser utilizados como librerías independientes en cualquier proyecto PHP. Con esta idea en mente, incluso cerraron el proyecto Silex, un microframework basado en Symfony que la misma comunidad mantenía, ya que desde la versión 4, cuando se construye una nueva aplicación, se puede optar por empezar a utilizar todo el framework o una mínima parte si se está construyendo un microservicio o una simple API.
Además, por defecto utiliza Doctrine como su ORM, que es uno de los mejores del ecosistema PHP.
Y si el código del proyecto sigue un estilo antiguo donde el php devuelve el html, el equipo de Symfony ha construido su propio motor de plantillas: Twig. Es muy cómodo y fácil dividir el código y la vista.
2.- Slim
Slim es un micro framework para PHP muy práctico cuando la aplicación no necesita toda la complejidad de un framework completo como Symfony por ejemplo. Tiene todo lo básico de un framework: enrutamiento, controladores, eventos… Desde una simple API hasta un gran sitio web se puede hacer con Slim. Al igual que con Symfony, Doctrine y Twig pueden ser utilizados también.
3-. Spring boot
El framework más maduro de la lista, en este caso para la familia JVM, permite escribir aplicaciones en Java, Kotlin o Groovy indistintamente. Spring boot, como se autodenomina, es una configuración de la plataforma Spring que permite ejecutar las aplicaciones desde el primer momento. Con Spring initializr se puede construir fácilmente un nuevo proyecto eligiendo unas pocas configuraciones como la herramienta de automatización de la construcción (Maven o Gradle), el lenguaje, unos pocos ajustes como el nombre del paquete y también añadiendo las dependencias de las diversas librerías de terceros que son fácilmente configurables. A partir de ahí, es muy sencillo empezar a codificar tu propia aplicación.
4-. Nestjs.com
Tras años de evolución, alrededor de nodeJS han crecido algunos frameworks como nestJS que da la potencia de los mejores frameworks como la inyección de dependencias, la configuración sencilla… Se puede escribir en Javascript o Typescript.
5.- Micronaut
Micronaut es otro framework JVM con la idea de microservicios o serverless en mente. Eso significa que su tiempo de arranque es increíblemente corto (especialmente si lo comparamos con spring boot) y el consumo de memoria también es menor que el de otros frameworks.
2. ¿Cuándo y por qué utilizar NodeJS para el desarrollo de Backend?
Algunos equipos que tienen más conocimientos en algunas tecnologías de frontend pueden sentirse más cómodos trabajando con una pila que ya conocen. En este caso, elegir NodeJS para el desarrollo de backend puede ser una excelente opción para ellos ya que no hay necesidad de aprender una nueva tecnología. Como resultado final, un nuevo producto puede ser entregado más rápidamente, lo que puede ser muy importante para tu éxito.
Además, hay otros puntos a tener en cuenta. Puede ser muy conveniente para la comunicación del cliente y su API. Los DTOs pueden ser compartidos entre ambas partes y una vez que una nueva variable es añadida o eliminada de un DTO desde un lado, la otra parte se verá afectada inmediatamente evitando algunos errores tontos como cuando la API renombra una variable pero el cliente no se ha dado cuenta hasta que aparece el error. Para compartir el DTO, pero también algunos otros posibles componentes, el proyecto puede ser construido usando un monorepo (diferentes partes del proyecto se mantienen en el mismo repositorio). Algunos de los monorepos con los que hemos trabajado son Nx o Lerna.
Otra consideración importante es su excelente rendimiento, ya que utiliza llamadas de I/O no bloqueantes que pueden manejar varias conexiones al mismo tiempo.
Para el manejo de la base de datos hay algunos grandes ORM como typeorm o sequelize.
Y por último, porque se puede escribir en Typescript. Aunque node fue escrito en JS, debemos aprovechar la potencia que nos aporta Typescript que nos permite escribir código con menos bugs.
3. ¿Por qué usar Kotlin y Spring boot?
Como ya hemos comentado, el framework de Spring tiene una gran madurez y robustez: lleva años evolucionando, por lo que se pueden encontrar multitud de librerías (conectores a todo tipo de bases de datos, cachés… ) y está listo para ser utilizado sin demasiados dolores de cabeza. Hay mucha documentación y como hay una gran comunidad alrededor del proyecto se mejora y actualiza continuamente.
Kotlin trata de resolver algunos de los problemas comunes que tenía Java (no es necesario, por ejemplo, incluir Lombok) y eliminar un montón de boilerplate que Java necesita para construir cosas.
Es completamente compatible con el código Java, lo que hace que la transición de un código Java a Kotlin sea muy suave (no es necesario hacerlo todo de una vez, y puedes introducir un archivo kotlin dentro de tu proyecto Java)
¡Si necesitas ayuda con el desarrollo del Backend, háznoslo saber! ¡Somos expertos en este campo!
Author
-
Experienced Full Stack Engineer with a demonstrated history of working in the information technology and services industry. Skilled in PHP, Spring Boot, Java, Kotlin, Domain-Driven Design (DDD), TDD and Front-end Development. Strong engineering professional with a Engineer's degree focused in Computer Engineering from Universitat Oberta de Catalunya (UOC).
Ver todas las entradas
More to Explore