Master
Técnicas

Tipos compartidos entre la UI y el BFF

Published: Apr 13, 2021
Apr 2021
Probar?

Con TypeScript convirtiéndose en un lenguaje común para el desarrollo de front-end, y Node.js siendo una de las tecnologías preferidas para el desarrollo de BFFs, percibimos un incremento en el uso de tipos compartidos entre la UI y el BFF. En esta técnica, un único conjunto de definiciones de tipos de datos es utilizado para definir tanto los objetos de datos devueltos por las consultas del front-end, como los datos entregados desde el servidor de back-end para satisfacer esas consultas. Normalmente, seríamos cautelosos con esta práctica debido al acoplamiento innecesario que crea a través de los límites de los procesos; pero, muchos equipos están encontrando que los beneficios de este enfoque superan cualquier riesgo de alto acoplamiento. Dado que el patrón BFF funciona mejor cuando el código de la interfaz de usuario y el del BFF son propiedad del mismo equipo, y considerando que ambos componentes conviven en el mismo repositorio con frecuencia, el par UI-BFF puede verse como un único sistema cohesionado. Cuando el BFF ofrece consultas de datos fuertemente tipados, los resultados se pueden adaptar a las necesidades específicas del front-end, en lugar de utilizar una única entidad de propósito general que deba satisfacer las necesidades de muchos consumidores y contener más campos de los que realmente son necesarios. Esto reduce el riesgo de exponer accidentalmente datos que el usuario no debería ver, previene la interpretación incorrecta del objeto de datos devuelto y hace que la consulta sea más expresiva. Esta práctica es particularmente útil cuando se implementa con io-ts para hacer cumplir la seguridad de los tipos en tiempo de ejecución.