Deja de Escribir Tus Rutas

Rate this content
Bookmark

Cuanto más sigues trabajando en una aplicación, más complicado se vuelve su routing, y es más fácil cometer un error. ""¿La ruta se llamaba users o era user?"", ""¿Tenía un parámetro id o era userId?"". Si tan solo TypeScript pudiera decirte cuáles son los posibles nombres y parámetros. Si tan solo no tuvieras que escribir ni una sola ruta más y dejar que un plugin lo haga por ti. En esta charla, repasaremos lo que se necesitó para traer rutas tipadas automáticamente 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 routing es un aspecto malentendido del diseño de API, y el routing basado en archivos puede simplificarlo. Desenchufar View Router proporciona rutas tipadas y elimina la necesidad de pasar rutas al crear el router. La carga y manejo de datos pueden mejorarse con cargadores de datos y rutas predecibles. También se discute el manejo de rutas protegidas y 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 la comisión de errores y evita el cambio de contexto. Es importante escribir diferentes versiones de una API y considerar el lenguaje utilizado. El proceso de aprendizaje para una API es subjetivo.

Entonces sí, mi nombre es Eduardo. Buenos días, Londres. Feliz de estar aquí otro año. Así que como miembro de Querty pero también como desarrollador y amante del código abierto, he estado haciendo mucho desarrollo de bibliotecas, casi durante siete años creo. Así que no solo PNIA y Vue Router sino también algunas de las bibliotecas que están justo al lado de Vue en sí. Y he estado pasando bastante tiempo pensando en cómo diseñamos las APIs para estas bibliotecas. A veces metiendo la pata, cometiendo errores, a veces mejorándolos después, por supuesto. Pero el punto es que diseñar una API es realmente difícil, ¿verdad? Y creo que no hace falta decir que esto es uno de los mayores desafíos de cualquier biblioteca de código abierto porque tienes que considerar muchas cosas, lo siento, tienes que tener en cuenta muchos factores diferentes. Es desde cómo cambian estas 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 creo, ¿cómo lo hago? Vale, tengo que hacer todo de memoria. Dios, no tener ninguna nota cuando, se supone que debemos tener notas, es muy difícil. Así que tienes que tener en cuenta muchas cosas diferentes. ¿Vale? Tienes que considerar 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, que una API sea buena o mala es muy subjetivo. Y voy a mostrarles por qué. Así que una de las cosas que siento que es muy importante para una buena API es hacer que los errores sean difíciles de cometer. 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án usando algo, ¿verdad? Así que definitivamente es un gran factor en mi opinión de cómo una API puede ser buena o no. Otra gran cosa 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 es solo los archivos, la carpeta que tenemos, sino que podemos pensar en muchas otras cosas que son parte de la API porque cuando escribimos código, cuando desarrollamos un programa, no estamos solo escribiendo el código en sí. Y luego tenemos que adaptarlo para 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. Además, tienes que pensar en bien, ¿en qué idioma estás escribiendo no es lo mismo escribir una API en Java o Rust, que en JavaScript o TypeScript donde las cosas están evolucionando muy rápido. Y me gusta referirme a esta pequeña broma, la curva de aprendizaje del usuario. Entonces, la cosa es que nuestra experiencia al aprender algo, que también es parte de una API, el proceso de aprendizaje es diferente y es subjetivo. Entonces, la broma

2. Different Tools and API Ergonomics

Short description:

Diferentes herramientas tienen distintos niveles de eficiencia y productividad. Notepad es rápido pero no eficiente. Pico permite más funcionalidad. Visual Studio tiene muchos atajos pero puede llevar a una disminución de 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 las API.

Tienes como el tiempo recientemente y luego cuánto puedes hacer con una herramienta. Así que, 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 siquiera poder usarlo, pero luego eres muy productivo. Y luego tienes Emacs y Spacemacs, que doblan el tiempo y el espacio, creo, porque no hay manera de hacer eso en matemáticas. Y así voy a usar esto como base para lo que llamo ergonomía de las API.

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.