Deja de Escribir tus Rutas

Rate this content
Bookmark

Cuanto más trabajas en una aplicación, más complicado se vuelve su enrutamiento y más fácil es cometer un error. "¿Se llamaba la ruta usuarios o usuario?", "¿Tenía un parámetro id o era userId?". Si solo TypeScript pudiera decirte cuáles son los nombres y parámetros posibles. Si solo no tuvieras que escribir una sola ruta más y dejar que un complemento lo haga por ti. En esta charla repasaremos lo que se necesitó para traer rutas automáticamente tipadas para Vue Router.

This talk has been presented at Vue.js London 2023, check out the latest edition of this JavaScript Conference.

FAQ

Una API (Interfaz de Programación de Aplicaciones) es crucial porque actúa como un puente entre diferentes software. Un buen diseño de API facilita el desarrollo al ser intuitiva y robusta, reduciendo la probabilidad de errores y mejorando la eficiencia del desarrollo.

Los principales desafíos incluyen manejar la compatibilidad con versiones anteriores, la facilidad de uso, la seguridad y la capacidad de manejar adecuadamente los errores, así como considerar la evolución de la API sin interrumpir a los usuarios actuales.

Un mal diseño puede hacer que sea fácil cometer errores, lo que lleva a frustraciones y pérdida de tiempo. Esto puede disminuir la productividad y aumentar la curva de aprendizaje para nuevos desarrolladores.

El enrutamiento basado en archivos permite definir rutas a través de la estructura de carpetas y nombres de archivos en un proyecto, eliminando la necesidad de configurar explícitamente cada ruta, lo que simplifica la gestión de rutas y reduce el código repetitivo.

Desconectando View Router es una propuesta para mejorar el enrutamiento en aplicaciones Vue mediante la automatización de la generación de tipos y la configuración de rutas, lo que facilita el mantenimiento y mejora la productividad al reducir errores y repetición de código.

La ergonomía de API se refiere a qué tan fácil y intuitivo es utilizar una API. Una buena ergonomía permite a los desarrolladores usar funciones comunes sin dificultades y adivinar correctamente cómo usarlas, lo que mejora la eficiencia del desarrollo y la experiencia del usuario.

Eduardo San Martin Morote
Eduardo San Martin Morote
30 min
12 May, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Diseñar APIs es un desafío y es importante considerar el lenguaje utilizado y las diferentes versiones de la API. La ergonomía de la API se centra en la facilidad de uso y los compromisos. El enrutamiento es un aspecto mal entendido del diseño de la API y el enrutamiento basado en archivos puede simplificarlo. Desconectar View Router proporciona rutas tipadas y elimina la necesidad de pasar rutas al crear el enrutador. La carga y manipulación de datos se pueden mejorar con cargadores de datos y rutas predecibles. También se discuten las rutas protegidas y los archivos de índice e ID.
Available in English: Stop Writing Your Routes

1. Diseño de APIs: Desafíos y Consideraciones

Short description:

Diseñar una API es realmente difícil. Es uno de los mayores desafíos de cualquier biblioteca de código abierto. Una buena API dificulta cometer errores y evita cambios de contexto. Es importante escribir diferentes versiones de una API y considerar el lenguaje utilizado. El proceso de aprendizaje de una API es subjetivo.

Así que sí, mi nombre es Eduardo. Buenos días, Londres. Feliz de estar aquí otro año. Como miembro de Querty pero también como desarrollador y amante del código abierto, he estado desarrollando muchas bibliotecas, casi durante siete años, creo. No solo PNIA y Vue Router, sino también algunas de las bibliotecas que son adyacentes a Vue en sí. Y he estado dedicando mucho tiempo a pensar cómo diseñar las APIs para estas bibliotecas. A veces, cometiendo errores, mejorándolos después, por supuesto. Pero lo más importante es que diseñar una API es realmente difícil, ¿vale? Y creo que no hace falta decir que este es uno de los mayores desafíos de cualquier biblioteca de código abierto porque tienes que tener en cuenta muchos factores diferentes. Desde cómo cambia esta API, espera, lo siento, necesito cambiar la cosa. Esto va a ser doloroso. Vale. Así que tienes que tener en cuenta muchos factores diferentes, desde, espera, mi software se rompió aquí y pienso, ¿cómo lo hago? Vale, tengo que hacer todo de memoria. Dios, no tengo ninguna nota cuando, se supone que debemos tener notas, muy difícil. Así que tienes que tener en cuenta muchos factores diferentes. ¿Vas a tener en cuenta a los usuarios que tienes? ¿Estás construyendo una nueva API? ¿No estás construyendo una nueva API? Y cómo se siente la API para los usuarios, porque al final, una API buena o mala es muy subjetiva. Y te voy a mostrar por qué. Así que una de las cosas que considero muy importante en una buena API es que sea difícil cometer errores. Ahora, puede ser obvio para algunos y completamente nuevo para otros, pero si usas una biblioteca donde cometer errores es fácil, te hace sentir tonto. Ahora, a nadie le gusta sentirse tonto cuando está usando algo, ¿verdad? Así que definitivamente es un factor importante en mi opinión de cómo puede ser buena o no una API. Otro gran aspecto es evitar el cambio de contexto. Ahora, cuando pensamos en las APIs, primero pensamos en el código que necesitamos escribir. Pero si la API real va más allá del código que escribimos, no solo los archivos, la carpeta que tenemos, sino que también podemos pensar en muchas otras cosas que forman parte de la API porque cuando escribimos código, cuando desarrollamos un programa, no solo estamos escribiendo código en sí. Y luego tenemos que adaptarlo a diferentes experiencias de usuario.

Ahora, esto es muy vago, para ser honesto, pero no es lo mismo escribir una V1 de una API, donde solo tienes nuevos usuarios, que escribir una V2 de una API donde tienes usuarios existentes que están acostumbrados a algo. También tienes que pensar en qué lenguaje estás escribiendo, no es lo mismo escribir una API en Java o Rust que en JavaScript o TypeScript, donde las cosas evolucionan muy rápido. Y me gusta referirme a esta pequeña broma, la curva de aprendizaje del usuario. Entonces, lo que sucede es nuestra experiencia al aprender algo, que también es parte de una API, el proceso de aprendizaje es diferente y es subjetivo. Así que, la broma

2. Diferentes Herramientas y Ergonomía de API

Short description:

Diferentes herramientas tienen diferentes niveles de eficiencia y productividad. Notepad es rápido pero no eficiente. Pico permite más funcionalidad. Visual Studio tiene muchos atajos pero puede disminuir la productividad. Vee, Veeam y Nveam requieren aprendizaje pero resultan en alta productividad. Emacs y Spacemacs son herramientas poderosas. Esto forma la base de la ergonomía de la API.

Aquí es muy simple en realidad. Tienes algo así como el tiempo reciente y luego cuánto puedes hacer con una herramienta. Entonces, como puedes ver, Notepad, puedes usarlo muy rápidamente y no eres muy eficiente. Luego tienes Pico, que es solo una herramienta basada en terminal y puedes hacer un poco más de cosas. Luego tienes Visual Studio, donde aprendes muchos atajos, creo, y creo que la broma es que luego empiezas a profundizar demasiado en el IDE y pasas demasiado tiempo haciendo cosas y luego te vuelves menos productivo. Y luego tienes Vee o Veeam o Nveam, que básicamente necesitas aprender mucho antes de poder usarlo en absoluto, pero luego eres muy productivo. Y luego tienes Emacs y Spacemacs, que doblan el tiempo y el espacio, creo, porque no hay forma de hacer eso en matemáticas. Y así

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Un Año en Vue 3
Vue.js London Live 2021Vue.js London Live 2021
20 min
Un Año en Vue 3
Top Content
Vue 3 has seen significant adoption and improvements in performance, bundle size, architecture, and TypeScript integration. The ecosystem around Vue 3 is catching up, with new tools and frameworks being developed. The Vue.js.org documentation is undergoing a complete overhaul. PNIA is emerging as the go-to state management solution for Vue 3. The options API and composition API are both viable options in Vue 3, with the choice depending on factors such as complexity and familiarity with TypeScript. Vue 3 continues to support CDN installation and is recommended for new projects.
Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
The Talk discusses the recent feature updates in Vue 3.3, focusing on script setup and TypeScript support. It covers improvements in defining props using imported types and complex types support. The introduction of generic components and reworked signatures for defined components provides more flexibility and better type support. Other features include automatic inference of runtime props, improved define emits and defined slots, and experimental features like reactive props destructure and define model. The Talk also mentions future plans for Vue, including stabilizing suspense and enhancing computer invalidations.
Los tipos más útiles de React
React Day Berlin 2023React Day Berlin 2023
21 min
Los tipos más útiles de React
Top Content
Today's Talk focuses on React's best types and JSX. It covers the types of JSX and React components, including React.fc and React.reactnode. The discussion also explores JSX intrinsic elements and react.component props, highlighting their differences and use cases. The Talk concludes with insights on using React.componentType and passing components, as well as utilizing the react.element ref type for external libraries like React-Select.
TypeScript y React: Secretos de un matrimonio feliz
React Advanced 2022React Advanced 2022
21 min
TypeScript y React: Secretos de un matrimonio feliz
Top Content
React and TypeScript have a strong relationship, with TypeScript offering benefits like better type checking and contract enforcement. Failing early and failing hard is important in software development to catch errors and debug effectively. TypeScript provides early detection of errors and ensures data accuracy in components and hooks. It offers superior type safety but can become complex as the codebase grows. Using union types in props can resolve errors and address dependencies. Dynamic communication and type contracts can be achieved through generics. Understanding React's built-in types and hooks like useState and useRef is crucial for leveraging their functionality.
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
TypeScript Congress 2023TypeScript Congress 2023
31 min
Haciendo Magia: Construyendo un Marco de Trabajo Primero-TypeScript
Top Content
Daniel Rowe discusses building a TypeScript-first framework at TypeScript Congress and shares his involvement in various projects. Nuxt is a progressive framework built on Vue.js, aiming to reduce friction and distraction for developers. It leverages TypeScript for inference and aims to be the source of truth for projects. Nuxt provides type safety and extensibility through integration with TypeScript. Migrating to TypeScript offers long-term maintenance benefits and can uncover hidden bugs. Nuxt focuses on improving existing tools and finds inspiration in frameworks like TRPC.
Nuxt en el Edge
Vue.js London 2023Vue.js London 2023
30 min
Nuxt en el Edge
Nuxt is a web framework with many features including server-side rendering, client-side rendering, static site generation, edge site rendering, and more. The Edge is a limited environment running on CDN nodes, such as Cloudflare network. Database options on the Edge include Postgre with Neon, Versel on Neon, Superbase, MySQL with plan scale, HyperDB, and KV with redis and Cloudflare storage. The speaker demonstrates creating a demo with a votes table, handling API requests, adding authentication, saving votes, and displaying results. The roadmap to a full stack Nuxt 3 with an edge-first experience is in progress. Copilot is a helpful tool for developers. Integrating SSO with GitHub and improving the developer experience are important considerations for Nuxt 3.

Workshops on related topic

React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Consejos y Trucos Profundos de TypeScript
Node Congress 2024Node Congress 2024
83 min
Consejos y Trucos Profundos de TypeScript
Top Content
Featured Workshop
Josh Goldberg
Josh Goldberg
TypeScript tiene un sistema de tipos poderoso con todo tipo de características sofisticadas para representar estados de JavaScript salvajes y extravagantes. Pero la sintaxis para hacerlo no siempre es sencilla, y los mensajes de error no siempre son precisos al decirte qué está mal. Vamos a profundizar en cómo funcionan muchas de las características más poderosas de TypeScript, qué tipos de problemas del mundo real resuelven, y cómo dominar el sistema de tipos para que puedas escribir código TypeScript verdaderamente excelente.
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetsov
Mikhail Kuznetsov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
React Advanced 2022React Advanced 2022
148 min
Mejores Prácticas y Consejos Avanzados de TypeScript para Desarrolladores de React
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
¿Eres un desarrollador de React tratando de obtener los máximos beneficios de TypeScript? Entonces esta es la masterclass para ti.En esta masterclass interactiva, comenzaremos desde lo básico y examinaremos los pros y contras de las diferentes formas en que puedes declarar componentes de React usando TypeScript. Después de eso, pasaremos a conceptos más avanzados donde iremos más allá de la configuración estricta de TypeScript. Aprenderás cuándo usar tipos como any, unknown y never. Exploraremos el uso de predicados de tipo, guardias y comprobación exhaustiva. Aprenderás sobre los tipos mapeados incorporados, así como cómo crear tus propias utilidades de mapa de tipo nuevo. Y comenzaremos a programar en el sistema de tipos de TypeScript usando tipos condicionales e inferencia de tipos.