Rome, ¡una cadena de herramientas moderna!

Rate this content
Bookmark

Los proyectos modernos de JavaScript vienen en muchas formas: sitios web, aplicaciones web, aplicaciones de escritorio, aplicaciones móviles y más. Para la mayoría de ellos, el denominador común es la deuda técnica que proviene de la configuración de herramientas: empaquetadores, suite de pruebas, análisis de código, documentación, etc. Quiero presentarte Rome, una cadena de herramientas que aspira a ser una herramienta todo en uno para la web, con una sola herramienta puedes mantener la salud de todos tus proyectos!

FAQ

Rome es una cadena de herramientas integrada destinada a reemplazar varias herramientas de desarrollo como Prettier, Lint, Webpack, entre otras. Su objetivo es simplificar la gestión de herramientas para el desarrollo, integrando funcionalidades en una sola aplicación para mejorar la salud y mantenimiento del código base.

Rome está construido en Rust, lo que facilita la eficiencia y seguridad en el manejo de las herramientas integradas.

Rome ofrece un enfoque unificado para el análisis y manejo del código, permitiendo que las operaciones como formateo y linting compartan una estructura común de datos (CST), lo que reduce la redundancia y mejora el rendimiento. Además, proporciona diagnósticos de alta calidad con descripciones detalladas para facilitar la corrección de errores.

Los esquemas JSON en Rome aportan ventajas como el autocompletado y descripciones inline en el IDE, lo que mejora la eficiencia al escribir y entender las reglas de configuración sin necesidad de consultar documentación externa.

Rome soporta JavaScript y superconjuntos como TypeScript, además de JSON, pero está en proceso de incorporar más lenguajes y mejorar sus capacidades de integración.

Rome aspira a simplificar los archivos de configuración permitiendo que un solo archivo configure todas las herramientas necesarias, reduciendo la necesidad de múltiples archivos y haciendo la configuración más gestionable.

Rome proporciona diagnósticos avanzados que incluyen detalles más explicativos y contextuales sobre los errores. Esto no solo ayuda a identificar problemas rápidamente, sino que también ofrece sugerencias de corrección directamente en el IDE, facilitando tanto a principiantes como a expertos la resolución de problemas.

Rome está diseñado para ser eficiente y estable, adecuado para proyectos grandes, gracias a su capacidad de realizar operaciones como el análisis de código de manera centralizada y compartida entre todas las herramientas, lo que minimiza la repetición de procesos y optimiza los recursos.

Emanuele Stoppa
Emanuele Stoppa
31 min
01 Jun, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Rome es una cadena de herramientas construida en Rust que tiene como objetivo reemplazar múltiples herramientas y proporcionar diagnósticos de alta calidad para el mantenimiento del código. Simplifica las interacciones de las herramientas al realizar todas las operaciones una vez, generando una estructura compartida para todas las herramientas. Rome ofrece una experiencia de formato personalizable con un formateador estable y un linter con más de 150 reglas. Se integra con VCS y VLSP, admite el análisis de errores resistente y tiene planes emocionantes para el futuro, incluida la capacidad de crear complementos de JavaScript. Rome aspira a ser una cadena de herramientas de primera categoría y da la bienvenida a las aportaciones de la comunidad para mejorar su trabajo.

Available in English: Rome, a Modern Toolchain!

1. Introducción a Rome

Short description:

Hoy hablaremos de Rome. Rome es una cadena de herramientas destinada a reemplazar muchas herramientas. Está construido en Rust y proporciona diagnósticos de alta calidad. Funciona en IDEs y CLIs. Rome tiene como objetivo proporcionar todas las herramientas para mantener la salud de tu base de código.

Hola a todos. Hoy hablaremos de Rome. ¿Has oído hablar de él? Bueno, si no lo has hecho, este es el momento.

Bueno, entonces, ciao a tutti. Hola a todos. Emmanuele, italiano. Viviendo en Irlanda durante 12 años, así que es mucho tiempo. Y estoy realmente apasionado por el código abierto. He estado trabajando en código abierto durante los últimos seis años en Webpack y ahora en Rome. Puedes llamarme Emma. No uses mi nombre completo. Es demasiado largo. Y nadie lo pronuncia correctamente. Y por supuesto soy el creador principal de Rome.

Ahora, Rome es una cadena de herramientas. Está destinado a reemplazar muchas herramientas que conoces. Pretier, Lint, Webpack, Lintstridge, y muchos más. Así que bastantes herramientas. Está construido en Rust. Y ha sido escrito por desarrolladores para vosotros, los desarrolladores.

Ahora, vamos a ello. ¿Por qué Rome? Bueno, tenemos dos cosas bastante famosas. Todos los caminos llevan a Rome. Y Rome no se construyó en un día. Así que esto tiene mucho. ¿Por qué moderno? Porque queremos proporcionar diagnósticos de alta calidad, es decir, errores significativos. Y debe funcionar en IDEs y CLIs, que son tus herramientas de trabajo diarias. ¿Y por qué una cadena de herramientas? Bueno, queremos proporcionar todas esas herramientas que te ayudan a mantener la salud de tu código base. Formateador, linter, bundler, generación de documentación, analizador en general. Así que tenemos muchas herramientas y nuestro objetivo es proporcionar la mayoría de ellas.

2. Configuración y Esquema JSON

Short description:

Sí, es mucho, pero llegaremos allí. Este es un ejemplo de un proyecto web moderno. Tienes que mantener por separado todos los archivos para cada herramienta, pero nuestro objetivo es reducirlos a solo dos archivos. Nuestro esquema JSON se genera automáticamente a partir del código fuente, proporcionando documentación y auto-completado. No somos un agregador de herramientas existentes como create React app, que puede ralentizar tu entorno de trabajo.

Sí, es mucho, pero llegaremos allí. Entonces, tomando todas estas definiciones, ahora veamos qué significa realmente. Entonces, en primer lugar, un archivo de configuración a través del modo. Este es un ejemplo de un proyecto web moderno. Como puedes ver, tenemos muchos archivos para cada herramienta, ptr, eslint, tailwind, tsconfig. Quiero decir, ya sabes a qué me refiero y hay mucho en marcha, ya sabes.

Tienes que mantener todos ellos por separado y queremos reducirlos todos y tener solo dos archivos, eventualmente también el log. Eso es a lo que aspiramos. Y es un ejemplo de tu archivo de configuración. Como puedes ver, desde un archivo puedes configurar todas las herramientas, todo allí, formateador, linter. También tenemos un esquema JSON, que consideramos realmente importante porque va a darte muchas ventajas, como, por ejemplo, auto-completado.

Entonces, esta es una captura de pantalla donde estoy tratando de escribir una regla dentro del grupo de estilo. Y como puedes ver, obtengo el auto-completado. Y también, obtengo una pequeña descripción que me dice de qué se trata la regla. Así que no necesitas ir al sitio web y entender de qué se trata la regla. tu IDE y, quiero decir, ve a DX. Lo bueno también es que nuestro esquema JSON se genera automáticamente a partir del código fuente code. Así que logramos documentar todo en nuestro código fuente code y difundir la documentation a través de diferentes canales, y el esquema JSON es uno de ellos. Así que este es un ejemplo, la línea con, verifica las descripciones. Y tenemos las mismas descripciones exactas en nuestro archivo RUST. Eso es un comentario de documentation. Es un comentario especial en la base de código RUST. Y es como un metadato que se adjunta a ese tipo, el lenguaje. Y con ese metadato, somos capaces de proporcionar la documentation para el esquema JSON. Y no somos un agregador de herramientas existentes. Un ejemplo de un agregador de herramientas existentes es create React app. Agrega muchas herramientas e intentan mejorarlas para nosotros. Pero es difícil porque todos tienen diferentes necesidades y configuraciones. Así que consume mucha energía y ralentiza tu entorno de trabajo. ¿Y por qué? Bueno, te diré por qué.

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

El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Nuestra comprensión del rendimiento y la experiencia del usuario ha evolucionado mucho a lo largo de los años. Las herramientas de desarrollo web necesitan evolucionar de manera similar para asegurarse de que sean centradas en el usuario, accionables y contextuales donde se refiere a las experiencias modernas. En esta charla, Addy te guiará a través de cómo Chrome y otros han estado pensando en este problema y qué actualizaciones han estado haciendo a las herramientas de rendimiento para reducir la fricción para construir grandes experiencias en la web.
Componentes de Servidor con Bun
Node Congress 2023Node Congress 2023
7 min
Componentes de Servidor con Bun
Top Content
Un vistazo temprano al uso de componentes de servidor a través del nuevo empaquetador de Bun, con y sin React.
Mejorando la Felicidad del Desarrollador con IA
React Summit 2023React Summit 2023
29 min
Mejorando la Felicidad del Desarrollador con IA
GitHub Copilot es un programador en pareja de IA que puede ayudarte a escribir código más rápido y pasar menos tiempo escribiendo código repetitivo. Esta sesión cubrirá algunos casos de uso interesantes para Copilot que podrían revelar sus posibilidades. Esto va desde pedirle a Copilot que sugiera una función basada en un comentario, aprender a usar un nuevo marco de trabajo, abordar un error de seguridad o accesibilidad, documentar mejor tu código, traducir código de un lenguaje a otro, etc.Agenda:
Introducción a Copilot
- ¿Qué es Copilot?
- Cómo puedes usarlo
- Cómo puede ayudarte a escribir código más rápido
- Características experimentales de Copilot LabsTomaré ejemplos del ecosistema de React y mostraré cómo podemos solucionar vulnerabilidades de seguridad y problemas de accesibilidad en algunos componentes.
Análisis estático en JavaScript: Lo fácil y lo difícil
JSNation 2023JSNation 2023
23 min
Análisis estático en JavaScript: Lo fácil y lo difícil
Todos usamos herramientas de análisis estático como ESLint todos los días para garantizar una mejor calidad de nuestro código. ¿Cómo funciona y qué es complicado en JavaScript, lo que hace que escribir una regla adecuada a menudo no sea trivial?
Cómo automatizar cambios de código para 100 repositorios: Introducción a los Codemods
React Day Berlin 2022React Day Berlin 2022
28 min
Cómo automatizar cambios de código para 100 repositorios: Introducción a los Codemods

Workshops on related topic

Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
JSNation 2023JSNation 2023
44 min
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
WorkshopFree
Ryan Albrecht
Ryan Albrecht
¿Conoces ese molesto error? ¿El que no aparece localmente? Y no importa cuántas veces intentes recrear el entorno, no puedes reproducirlo. Has revisado las migas de pan, leído la traza de pila y ahora estás jugando al detective para unir los tickets de soporte y asegurarte de que sea real.
Únete al desarrollador de Sentry, Ryan Albrecht, en esta charla para aprender cómo los desarrolladores pueden utilizar la Reproducción de Sesiones, una herramienta que proporciona reproducciones de video de las interacciones de los usuarios, para identificar, reproducir y resolver errores y problemas de rendimiento más rápido (sin golpear tu cabeza contra el teclado).