Mejorando la Felicidad del Desarrollador con IA

Rate this content
Bookmark

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 Labs

Tomaré ejemplos del ecosistema de React y mostraré cómo podemos solucionar vulnerabilidades de seguridad y problemas de accesibilidad en algunos componentes.

Senna Parsa
Senna Parsa
29 min
02 Jun, 2023

Video Summary and Transcription

GitHub Copilot es una herramienta de autocompletado que proporciona sugerencias basadas en el contexto. La investigación ha demostrado que los desarrolladores que utilizan Copilot se sienten menos frustrados, pasan menos tiempo buscando externamente y experimentan menos esfuerzo mental en tareas repetitivas. Copilot puede generar código para diversas tareas, como agregar modales, realizar pruebas y refactorizar. Es una herramienta útil para mejorar la productividad y ahorrar tiempo, especialmente para desarrolladores junior y aquellos que trabajan en dominios desconocidos. Se han abordado las preocupaciones de seguridad con el intercambio de datos opcional y diferentes versiones para individuos y empresas.

Available in English

1. Introducción y Experiencia Personal

Short description:

Soy un ingeniero de soluciones en GitHub y estoy emocionado de hablar sobre este tema candente. Recuerdo mi primera interacción con React, refactorizando un proyecto JavaScript masivo en React. Ahora, años después, estoy hablando en la Cumbre de React en Ámsterdam.

Estoy realmente emocionado de estar aquí hoy. Mi nombre es Senna, y soy un ingeniero de soluciones en GitHub, y estoy emocionado de hablar sobre esto porque sé que es un tema candente en la mente de todos. Sé que realmente podría haber utilizado algunas de estas herramientas cuando estaba comenzando en el desarrollo. Recuerdo mi primera interacción con React fue en mi primer trabajo, uno de mis primeros proyectos tenía que ver con refactorizar esta biblioteca JavaScript casera realmente masiva de un proyecto en React. Y mi equipo y yo íbamos a los entrenamientos de React de Ryan France en un edificio de Yahoo en San José. Así que es bastante gracioso que siete u ocho años después, esté hablando en la Cumbre de React en Ámsterdam. Así que ahora vivo aquí. Pero sí.

2. Introducción a las Herramientas y Copilot

Short description:

Presentaré diferentes tipos de herramientas utilizadas por los usuarios de GitHub, centrándome en GitHub Copilot. Discutiré la investigación detrás de Copilot y sus beneficios y desafíos. También mostraré algunas características nuevas de Copilot. Las herramientas de programación emparejada con IA y las experiencias estilo chatGPT están ganando popularidad. Copilot es una herramienta de autocompletado que proporciona sugerencias basadas en el contexto.

Tengo muchas cosas que quiero abordar hoy. Así que una agenda rápida. Haré una introducción a algunos de los diferentes tipos de herramientas que veo que las personas utilizan cuando hablo con clientes que usan GitHub. GitHub Copilot es el que más conozco por mi trabajo allí. También quiero hablar sobre la investigación que hemos realizado detrás de Copilot. Y qué significa realmente ser productivo y qué tipos de problemas estamos resolviendo aquí.

Luego hablaré sobre algunos beneficios y desafíos de usar estas herramientas. Y mostraré algunas demostraciones de algunas características nuevas de Copilot en las que estamos trabajando. Y al final, tendremos tiempo para preguntas y respuestas.

Entonces, muy rápidamente... ¿Qué son las herramientas de programación emparejada con IA? Si buscas programación emparejada con IA en un IDE, como VS Code, verás que aparecen muchas de estas opciones. Y solo por curiosidad, ¿cuántos de ustedes están usando una de estas herramientas de programación emparejada con IA en la parte superior? Vale, genial. ¿Y qué hay de GitHub Copilot? Vale, genial. Así que muchos de ustedes están familiarizados. Hablo con la gente de esto todo el tiempo. Estoy emocionado al respecto. Sé que muchas otras personas también lo están. Pero también hay estas agradables experiencias estilo chatGPT que estamos viendo. Donde puedes tener más una conversación. Hacer más descubrimientos. Tal vez lanzar algunos prototipos. Así que hay muchas tecnologías interesantes tanto de Microsoft como de Google y Open AI. Muchas herramientas en este espacio. Y todos los días siento que hay algo nuevo.

Entonces sí, Copilot es el que más conozco. Es una herramienta de autocompletado realmente útil. Lo que haces es proporcionarle contexto y el contexto es básicamente donde está tu cursor en el archivo en el que estás trabajando, así como qué otras pestañas tienes abiertas. Por lo tanto, es capaz de sintetizar la mejor sugerencia posible para ti. Sí. Basado en lo que estás haciendo y lo que estás tratando de lograr.

3. Investigación y Marco SPACE

Short description:

Y esto funciona si estás utilizando uno de nuestros IDEs compatibles. El título de mi charla trata sobre cómo mejorar la felicidad del desarrollador con IA. Hemos realizado mucha investigación para comprender cómo las personas lo están utilizando y si les ayuda a sentirse más productivas. Nuestro equipo de investigación entrevistó a alrededor de 2,000 desarrolladores y utilizó el marco SPACE para investigar diferentes aspectos de la productividad. El estudio incluyó datos cualitativos y cuantitativos, con hallazgos interesantes sobre cuándo las personas aceptan sugerencias. SPACE significa satisfacción, bienestar, eficiencia y flujo.

Y esto funciona si estás utilizando uno de nuestros IDEs compatibles en la parte inferior izquierda. Y, sí, el título de mi charla trata sobre cómo mejorar la felicidad del desarrollador con IA. Así que quería hablar sobre parte de la investigación que hemos realizado que ha demostrado algunas de las hipótesis que hemos tenido. Y hemos realizado mucha investigación tanto para informar cómo construimos el producto como para comprender cómo las personas lo están utilizando.

Y este artículo de investigación es bastante interesante, porque creo que es uno de los únicos artículos de investigación académica sobre este tipo de herramienta de programación emparejada con IA. Entonces, una de nuestras primeras hipótesis es que está ayudando a las personas a sentirse más productivas. Y los informes iniciales de los usuarios han confirmado eso. Pero queríamos comprenderlo probándolo y viendo cómo realmente está ayudando a las personas. Así que nuestro equipo de investigación entrevistó a alrededor de 2,000 desarrolladores basados en Estados Unidos. Esta es una combinación de desarrolladores profesionales, estudiantes y profesores, así como algunas personas que son más aficionadas. Pero queríamos analizar la productividad de manera más integral. Y para ello utilizamos algo llamado marco SPACE para comprender qué aspectos de la productividad queremos investigar. Así que hablaré de eso a continuación. Pero este estudio incluyó una combinación de datos cualitativos. Cómo las personas perciben que están siendo más productivas. Además de datos cuantitativos sobre qué tan rápido están haciendo las cosas las personas. Cuántas sugerencias aceptan en comparación con las sugerencias que ignoran. Así que hay muchos estudios interesantes aquí. Y queríamos evaluar los efectos en los escenarios de desarrollo cotidianos. Así que hay algunos hallazgos interesantes. Como que muchas personas aceptaban cosas con más frecuencia después del día de trabajo o durante los fines de semana. Y realmente no estamos seguros de por qué. Pero es una de las razones por las que deberías consultar el artículo académico. Y también vamos a publicar más hallazgos al respecto. Pero muy rápidamente, ¿qué es SPACE? Es un acrónimo de un marco que abarca varios aspectos del comportamiento. Queríamos centrarnos en la satisfacción. Por lo tanto, la S y la E. Satisfacción y bienestar, así como eficiencia y flujo. Ambas dimensiones son bastante críticas, creemos. A veces se pasan por alto y a veces las personas se centran en métricas individuales como cuántos commits están realizando las personas. He estado en esa situación antes.

4. Understanding Productivity and Flow

Short description:

Realizamos una encuesta para comprender qué significa la productividad para los desarrolladores. Las personas desean mantenerse enfocadas, lograr un progreso significativo y sentir una sensación de logro. Romper el estado de flujo puede tener un impacto negativo en la productividad. Nuestra investigación se centra en mantenerse en el flujo y sentirse satisfecho con las tareas completadas.

Entonces, esto es más o menos cómo informamos nuestra encuesta. Que encuestamos a desarrolladores. Lo cual me lleva a preguntar, ¿qué significa realmente ser productivo? Así que investigamos esto incluso antes del estudio de Copilot. Creo que fue en 2021, queríamos entender cómo las personas, qué piensan que significa ser productivo para ellos. Y lo que encontramos es que es algo similar a tener un buen día. Así que llamamos a esto nuestro proyecto de buen día. Estoy enlazando a otro artículo de blog sobre esto. Pero lo que la gente dijo es que quieren poder mantenerse enfocados en una tarea en particular. Sentir que están logrando un progreso significativo y sentirse mejor al final del día con el trabajo que han logrado, sintiendo que han logrado lo que se propusieron hacer. Y algo que escuchamos es que cuando rompes tu estado de flujo a lo largo del día, eso puede ser realmente perjudicial para tu propia sensación de productividad y sentir que realmente has terminado lo que tenías la intención de hacer. Entonces, gran parte de esto tiene que ver con mantenerse en el flujo y sentirse satisfecho con lo que eres capaz de completar. Estas son las cosas en las que nos propusimos investigar.

5. GitHub Copilot Study and Chat

Short description:

Los desarrolladores que utilizan Copilot informaron sentirse menos frustrados, pasar menos tiempo buscando externamente y experimentar menos esfuerzo mental en tareas repetitivas. También se sintieron más satisfechos con su trabajo y pudieron dedicar más tiempo a resolver problemas interesantes. Copilot Chat de GitHub cierra la brecha entre la autocompletación y tener una conversación en torno al código. Ayuda con tareas repetitivas de plantilla, aumenta la productividad y ahorra tiempo. Es útil para trabajar en dominios desconocidos y permite prototipado rápido. Una grabación de demostración de ejemplo muestra el uso de Copilot Chat.

Y volviendo al estudio real de Copilot. Lo que los desarrolladores nos dijeron es que la mayoría de las personas, cuando usaban Copilot, dijeron que se sentían menos frustrados al programar, pasaban menos tiempo buscando, por lo que donde de lo contrario probablemente irías a Google o leerías algunos comentarios en un sitio externo, tener todas las sugerencias y respuestas dentro de tu IDE es realmente útil para mantener en el mismo flujo.

Y luego, sí, sintieron que podían, sí, mantenerse en el mismo flujo, pasar menos tiempo buscando externamente. Y lo que también fue genial escuchar es que las personas gastaron menos esfuerzo mental en tareas repetitivas que Copilot les ayudó a hacer. La mayoría también dijo que se sentían más satisfechos con su trabajo mientras lo usaban y pudieron básicamente pasar más tiempo resolviendo problemas más interesantes, un trabajo más satisfactorio. Esto fue una buena base para nosotros para entender que está teniendo un efecto positivo en la felicidad del desarrollador.

Y luego, una de las primeras hipótesis que teníamos era que las personas pueden completar tareas más rápido, especialmente tareas repetitivas. Y también hubo algunos experimentos que hicimos donde las personas usaron Copilot para completar una tarea y lo compararon con personas que no lo hicieron. Entonces, sí. Ahora que les he hablado sobre algunos de nuestros estudios que se hicieron sobre el aspecto de autocompletado de Copilot, quiero volver a esta diapositiva, porque hay algo nuevo en lo que estamos trabajando llamado Copilot Chat de GitHub, y eso va a cerrar la brecha entre la autocompletación dentro del IDE y tener más una conversación en torno al código que tienes, como los archivos que tienes abiertos, entender, como, qué comentarios tiene, y puedes darle comentarios y animarlo aún más para ayudarte a progresar.

Y este tipo de discusiones tiene muchos casos de uso. Así que solo voy a mencionar algunos de ellos. Pero, sí, realmente te ayuda con algunas de las cosas más repetitivas de plantilla, tareas comunes como tal vez escribir una consulta SQL o incluso, como, escribir una expresión regular para algo. Pero estás viendo que está, sí, ayudando a aumentar la productividad y al final del día, ahorrándote tiempo para trabajar en resolver problemas más interesantes. Entonces, las cosas que realmente quieres hacer. Y es realmente útil para trabajar en dominios desconocidos también. Realmente puedes hacer más descubrimiento y, como, descubrir cómo hacer un prototipo de algo súper rápido.

Quiero mostrarte un ejemplo de cómo usar Copilot Chat que grabé una demostración de. También, ¿las personas están usando Copilot Chat? Otra muestra de manos. ¿Es algo a lo que las personas tienen acceso? De acuerdo. No muchas. Pero lo que hice es cuando estaba construyendo esta demo, fui a... esto es muy, como, pero fui al festival de tulipanes en Kuckenhof hace unas semanas. Y tomé muchas fotos de tulipanes. Fui a los campos y realmente estaba tratando de averiguar, como, cómo puedo hacer una aplicación realmente tulipanesca. Así que le pregunté a chat TBT y me ayudó a decidir qué quería hacer con eso. Así que empecé con una pizarra en blanco y voy a darle a reproducir en esto e intentar ponerlo en pantalla completa para que puedas verlo mejor. Pero en la parte inferior izquierda aquí está Copilot Chat. Sabe acerca de los archivos que tengo abiertos. Y simplemente comencé, como, usando la aplicación Create React. Simplemente comencé con una pizarra en blanco. Y lo que hice fue decir, oye, tengo estas imágenes de tulipanes en el directorio de imágenes públicas.

6. Creating a Gallery and Exploring Components

Short description:

Pedí una galería simple y obtuve un punto de partida con una matriz de imágenes. Necesitaba reducir el tamaño de las imágenes y recibí sugerencias sobre cómo hacerlo. También descubrí la biblioteca de componentes estilizados, que hizo que mi galería fuera más estéticamente agradable. Luego exploré otros componentes, incluyendo modales, y recibí orientación sobre cómo implementarlos.

¿Puedes hacerme una galería simple? Y lo que hizo es que me dio un buen punto de partida. Fue como aquí tienes tu matriz de imágenes que puedes definir y aquí es cómo puedes hacer un bucle sobre eso y básicamente agregar etiquetas de imagen para cada imagen de tulipán que quieras usar. Así que este fue un buen punto de partida. Solo copié y pegué eso.

Y lo que me dio fueron versiones muy ampliadas. Esta es una bonita foto de un tulipán llamado Tequila Sunrise en la Feria de Flores. Pero lo que necesitaba era que estuviera un poco más reducido. Así que pensé, hey, estas imágenes son muy grandes, ¿puedes reducir un poco su tamaño? Así que en realidad puedes darle retroalimentación y decirle que itere en las sugerencias que te está haciendo. Entonces lo siguiente que hice fue pedirle que lo arreglara por mí y me dijo, hey, puedes hacer esto con un atributo de altura y ancho para las imágenes. Y me sugirió comenzar con 300 píxeles. Así que hice eso. Y luego, bueno, se ve un poco mejor. Pero quería averiguar qué bibliotecas podría usar para hacer que se vea un poco más estéticamente agradable. Así que a lo largo de este proceso recibí muchas sugerencias de diferentes bibliotecas de react. Y la que encontré más fácil de usar fue la de react componentes estilizados. Así que en realidad sugirió de inmediato cuando le pregunté qué podía usar para hacerlo más bonito. Sugirió que usara componentes estilizados, y lo que hizo fue sugerirme, sí, como, aquí están los tipos de componentes que te dará que están listos para que los uses. Puedes usar el contenedor de la galería de imágenes. Puedes usar el componente de imagen. Ya está estilizado para ti. Me da el CSS que necesito. Así que una vez que seguí esa sugerencia, actualicé mi aplicación. Voy a ir un poco más rápido por el bien del tiempo. Pero terminó dándome más de lo que estaba buscando. Ahora tengo esta galería de cajas bien distribuida para todos mis tulipanes.

Lo siguiente que quería hacer era aprender sobre otros componentes que podría usar. Así que quería hacer un modal. Una de las cosas que hice fue preguntarle sobre otros componentes estéticamente agradables, como, ¿cómo puedo agregar encabezados, cómo puedo agregar algunos puntos de referencia más? Y luego le pregunté sobre modales, como, ¿los componentes estilizados tienen soporte para modales, y me dijo que sí. Aquí te muestro cómo puedes crear un nuevo archivo y definir tu componente de modal y aquí es cómo puedes hacer referencia a él en otro ejemplo básico de una galería de imágenes. Así que seguí esa sugerencia y trabajé con ella.

7. Using Copilot for Modals, Testing, and Refactoring

Short description:

Copilot pudo generar código para agregar un modal a la galería de imágenes, incluyendo el manejo de los estados de clic y cerrado, pasando props y hechos desde una matriz. Tomó alrededor de 30 minutos completarlo y me ha inspirado a comenzar mi propio blog de fotos y sitio web. Copilot también ha sido útil al sugerir marcos de prueba, generar casos de prueba y ayudar con la refactorización y traducción de código.

Algo que también noté es que me sugirió un ejemplo muy genérico. Así es como importas el modal. Realmente no se aplicaba a mi archivo, así que quería aprovechar esa oportunidad para preguntarle algo más específico. Así que pensé, ¿puedes... Permíteme avanzar un poco. Pero le pregunté, ¿puedes ayudarme a agregar un modal a mi galería de imágenes en particular? Y luego decidí poner, como, algunos hechos aleatorios dentro del modal, así que fui más específico diciendo, hey, cada modal debería usar una, como, esta matriz de hechos aleatorios de tulipanes que generó para mí. Solo quería tener un párrafo de un hecho de tulipán dentro de cada modal. Y, sí, esto te muestra nuevamente que, cuanto más específico puedas indicarle algo, puede generar algo realmente fácil para que lo copies y pegues allí. Así que voy a avanzar un poco más rápido aquí también. Porque básicamente estoy copiando y pegando diferentes cosas aquí. Pudo manejar todos los estados de clic y cerrado para el modal. Pudo pasar todos los props y los hechos reales de esta matriz de hechos que me ayudó. Así que si avanzo un poco más rápido, porque creo que me queda un minuto más o menos. Sí. Pudo poner algo allí para mí. Y probé esto varias veces, por cierto, y me llevó alrededor de 30 minutos desde el inicio hasta el final. Así que estaba bastante emocionado por eso, ya que no había hecho realmente nada en React en mucho tiempo. Pero ahora realmente quiero comenzar mi propio blog de fotos y mi propio sitio web que he estado queriendo hacer durante mucho tiempo. Así que sí. Esto es bastante emocionante para mí. Y quiero revisar algunos otros casos de uso también. Hemos visto muchos patterns interesantes surgir después de su lanzamiento. También está ayudando a las personas a escribir pruebas. Ese es otro caso en el que puede ayudar a sugerir qué tipo de marco. Como Jest, por ejemplo, sería un buen marco de testing. Puede darte los casos de prueba que puedes usar para funciones particulares. Es realmente útil para la refactorización de código. Puedes seleccionar fragmentos completos de texto, indicarle que lo refactorice de cierta manera. O traducir algo a un idioma diferente.

8. Depuración y Documentación

Short description:

La depuración y la documentación también son características útiles. Puede ayudar a identificar y resolver errores y proporcionar explicaciones para el código. Esto ayuda a comprender el proceso de pensamiento del código.

La depuración también fue bastante útil. Conoce el archivo que tienes abierto. Y si le dices, oye, esta situación está generando este tipo de error, puede ayudarte a superarlo. Y la documentation también es algo que encontré útil hacer. Puedes pedirle que escriba documentación para todo el código que tienes en un archivo, así como explicar diferentes aspectos del código. Si resaltas algo y dices, oye, ¿puedes explicarme esto? Puede darte paso a paso en inglés lo que algo está haciendo. Y esto puede ayudarte a comprender cómo realmente piensa sobre el código.

9. Implicaciones y Conclusiones

Short description:

GitHub Copilot X puede generar un resumen y una solicitud de extracción. Verifica las sugerencias y sé escéptico con las respuestas. Es útil para tareas comunes, pero no para funciones complejas. Ten en cuenta las sugerencias desactualizadas y la necesidad de estándares de calidad de código y seguridad. Copilot es una herramienta para ayudar a los desarrolladores a hacer las cosas más rápido. No pretende reemplazar trabajos, sino ser una parte estándar de la cadena de herramientas. Es útil para comenzar en un nuevo lenguaje y para desarrolladores junior. Ahorra tiempo y elimina la necesidad de buscar en Stack Overflow o Google.

Y luego hay otras implicaciones para esto también. Así que estamos trabajando en agregar estas pequeñas partes útiles de Copilot en Copilot X. Puede generar un resumen y una solicitud de extracción de todo lo que estás haciendo. Eso es lo que pude hacer usando Copilot para las solicitudes de extracción.

Pero también quería cubrir rápidamente algunas cosas de las que debes estar consciente y el resumen de esta lista de cosas en las que estas herramientas pueden no ser tan buenas, es que debes ser escéptico con las respuestas y verificar las sugerencias que te da. Es útil para realizar tareas comunes, pero si estás tratando de hacer algo más complejo o generar una función completa, no será 100% preciso. Está diseñado para ayudarte a automatizar las partes antes de llegar a ese punto y ayudarte a tener un punto de partida.

Al lidiar con APIs complicadas, es posible que no te dé exactamente lo que estás buscando. Algo que noté con las funciones de chat, ya sea el chat de Copilot o el chat de GPT, es que puede darte sugerencias desactualizadas basadas en bibliotecas. En realidad, quería hacer esta demostración con GitHub primer, que es nuestro sistema de diseño con componentes React, pero me seguía dando componentes obsoletos, así que fui en otra dirección y terminé usando styled components, así que eso es algo de lo que también debes estar consciente. Y estas herramientas nunca reemplazarán tus estándares de calidad de código y seguridad. Siempre debes seguir realizando análisis de calidad. Es como hacer programación en pareja con otra persona, solo debes asegurarte de que encaje y tenga sentido en tu proyecto.

Y otra cosa a tener en cuenta es que esto es realmente útil para comenzar en un nuevo lenguaje Es excelente para desarrolladores junior, pero si no entiendes el código que estás escribiendo y no comprendes lo que estás intentando construir, es posible que no puedas verificar las respuestas correctamente. Así que es como un intercambio y algo de lo que debes estar consciente. Y esto me lleva a mi conclusión. Mucha gente me pregunta si esto va a reemplazar los trabajos de las personas. Como ser humano en esta época, soy un poco cauteloso con la IA y la forma en que la pienso pero creo que estas solo serán herramientas que probablemente en algún momento serán una parte estándar de la cadena de herramientas de un desarrollador. Están diseñadas para ayudarte a hacer las cosas más rápido y ayudarte a aprovechar mejor tu tiempo, y no están escribiendo software completo. Realmente están destinadas a ayudarte en lo que estás haciendo. A mí, personalmente, me gustan mucho. No sé cómo hacía las cosas antes de Copilot, ahora que lo he estado usando durante un año. Solo puedo pensar en todo el tiempo que podría haber ahorrado buscando ansiosamente comentarios en Stack Overflow o buscando cómo hacer algo en Google. Así que sí, realmente espero poder comenzar mi pequeño blog de fotos y mi sitio personal finalmente. Pero sí, eso me lleva al final de mi charla. Así que quiero dejarlo abierto para preguntas y respuestas si hay alguna pregunta. Gracias por su tiempo. Eso fue genial. Tenemos muchas preguntas, así que en lugar de leerlas individualmente, he detectado un par de temas. Como con muchos temas de IA, las personas todavía son un poco escépticas o necesitan más aclaraciones.

10. Preocupaciones de seguridad y uso compartido de datos

Short description:

Existen dos tipos de Copilot: uno para individuos y otro para empresas. Para los individuos, hay una función opcional de uso compartido de datos que se puede utilizar para mejorar el producto, pero se puede desactivar para garantizar que no se conserven las sugerencias. Para las empresas, no hay disponible un modo de uso compartido de datos, lo que garantiza que no se utilicen datos para entrenar ningún modelo.

Muchas personas han mencionado preocupaciones de seguridad o de propiedad intelectual y cómo se podría convencer a las empresas que han prohibido Copilot por ese tipo de cosas. Sí, puedo hablar primero sobre las preocupaciones de seguridad. Hemos agregado algo para las personas, especialmente hay dos tipos de Copilot que se pueden usar. Hay uno para individuos y luego está Copilot para empresas. Entonces, para los individuos, hay algo llamado uso compartido de datos donde las sugerencias que proporcionas al servicio, que es un archivo que tienes abierto o, nuevamente, las otras pestañas que tienes abiertas, se pueden utilizar para ayudar a mejorar el producto. Creo que está desactivado de forma predeterminada. Pero si lo desactivas, ninguna de esas sugerencias se conservará. Y luego, para las empresas, que son las compañías con las que hablamos que quieren usar Copilot, no hay disponible un modo de uso compartido de datos. Por lo tanto, puedes estar seguro de que nada se utiliza para entrenar ningún modelo, al menos para las empresas. Esa es la principal, eso es lo primero de lo que solemos hablar.

11. Copilot para JetBrains y Soporte IDE

Short description:

Actualmente puedes usar el autocompletado de Copilot con JetBrains, pero Copilot X y sus características solo están disponibles en la vista previa técnica de VS Code. Se espera un mayor soporte IDE antes de su disponibilidad general, pero el cronograma para las características de chat y X es incierto.

Eso es bueno saberlo. Gracias. También hay un conjunto de preguntas sobre Copilot para JetBrains, cuándo estará disponible Copilot para él y Copilot para otras IDE, y ese tipo de cosas. Sí. Ahora puedes usar el autocompletado normal de Copilot con JetBrains. Pero en cuanto a Copilot X y esa visión de características, en la vista previa técnica solo está disponible en VS Code. No sé cuándo podremos implementarlo en otras IDE que admitimos, como JetBrains. Pero puedo suponer que antes de que esté disponible de manera general, tendremos un mayor soporte para IDEs. Pero sí, no sé cuándo se agregarán las características de chat y X allí. Bastante justo. Sí.

12. Context and Prompt Engineering

Short description:

Agregar más contexto con pestañas abiertas ha mejorado las sugerencias de Copilot. No considera el repositorio, solo los archivos que tienes abiertos. La ingeniería de las indicaciones y hacer preguntas específicas puede llevar a respuestas más refinadas.

Un par de personas tenían preguntas sobre cómo las pestañas abiertas proporcionan contexto. ¿Y tienes algún otro consejo para proporcionar un mejor contexto a Copilot? Sí. Hay una publicación de blog que lanzamos recientemente, desde que agregamos soporte para agregar más contexto con otras pestañas abiertas además de la que tienes abierta. Realmente ha mejorado mucho y los tipos de sugerencias que puede hacer. No tiene ningún concepto de repositorio. Solo sabe lo que le estás indicando con los archivos que tienes abiertos. Así que sí, mucha gente está escribiendo publicaciones interesantes sobre la ingeniería de las indicaciones y cómo puedes indicarle con un mejor contexto. Porque realmente, todo está en la forma en que le haces preguntas y puedes obtener respuestas más refinadas. Así que digo, cuanto más contexto, mejor con la forma en que le preguntas cosas. Y luego hay un par de preguntas logísticas que llegaron durante la charla. Así que tal vez puedas repasar. ¿Cuándo estarán más ampliamente disponibles Copilot Chat y CopilotX? Y también, ¿Copilot Chat formará parte de la licencia normal o será una opción de nivel superior o complemento? Eso, creo que todavía lo estamos ajustando. No sé cómo dar una buena respuesta sobre si estará en niveles superiores. Sí, tampoco estoy seguro... No sé si alguien de mi equipo sabe cuándo se lanzará fuera de la vista previa técnica. Así que, lo siento. Sé que es como, lanzamos esta visión y cosas que puedes usar. Aún no sabemos cuándo, pero mantente atento. Y mi última pregunta antes de seguir adelante es un poco más filosófica. Supongo que hay un par de menciones de cómo sientes que Copilot o qué sientes que es su papel en ayudar o tal vez embotar la creatividad y la innovación y la exploración. Sí, quiero decir, sé que personalmente siento que solo ayuda. Entonces, si estás tratando de pensar en una idea o algo en lo que quieres trabajar, siento que realmente te pone en la dirección correcta al darte todas estas ideas que podrías usar. También he escuchado que a algunas personas les resulta abrumador, como si lo tuvieras abierto en un archivo y simplemente te sugiere constantemente cosas mientras escribes y tú solo quieres hacer algo por tu cuenta. Así que a veces la gente lo desactiva. También estamos investigando cómo puedes ignorar ciertos archivos si no quieres que te sugiera cosas en un cierto tipo de ruta. Así que estoy muy emocionado por los casos de uso y creo que está destinado a mejorar tu experiencia y ayudarte a hacer lo que quieres hacer más rápido. Pero sí, esa es mi opinión al respecto. Bueno, me encanta Copilot. No sabía que se podían ignorar archivos. Tal vez todo mi código basura. Estamos trabajando en eso. Genial. Sí. Gracias por tu tiempo. Muchas gracias. Sanna estará en el puesto de los oradores. Una vez más, gracias. Gracias.

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

Don't Solve Problems, Eliminate Them
React Advanced Conference 2021React Advanced Conference 2021
39 min
Don't Solve Problems, Eliminate Them
Top Content
Humans are natural problem solvers and we're good enough at it that we've survived over the centuries and become the dominant species of the planet. Because we're so good at it, we sometimes become problem seekers too–looking for problems we can solve. Those who most successfully accomplish their goals are the problem eliminators. Let's talk about the distinction between solving and eliminating problems with examples from inside and outside the coding world.
Using useEffect Effectively
React Advanced Conference 2022React Advanced Conference 2022
30 min
Using useEffect Effectively
Top Content
Can useEffect affect your codebase negatively? From fetching data to fighting with imperative APIs, side effects are one of the biggest sources of frustration in web app development. And let’s be honest, putting everything in useEffect hooks doesn’t help much. In this talk, we'll demystify the useEffect hook and get a better understanding of when (and when not) to use it, as well as discover how declarative effects can make effect management more maintainable in even the most complex React apps.
Design Systems: Walking the Line Between Flexibility and Consistency
React Advanced Conference 2021React Advanced Conference 2021
47 min
Design Systems: Walking the Line Between Flexibility and Consistency
Top Content
Design systems aim to bring consistency to a brand's design and make the UI development productive. Component libraries with well-thought API can make this a breeze. But, sometimes an API choice can accidentally overstep and slow the team down! There's a balance there... somewhere. Let's explore some of the problems and possible creative solutions.
React Concurrency, Explained
React Summit 2023React Summit 2023
23 min
React Concurrency, Explained
Top Content
React 18! Concurrent features! You might’ve already tried the new APIs like useTransition, or you might’ve just heard of them. But do you know how React 18 achieves the performance wins it brings with itself? In this talk, let’s peek under the hood of React 18’s performance features: - How React 18 lowers the time your page stays frozen (aka TBT) - What exactly happens in the main thread when you run useTransition() - What’s the catch with the improvements (there’s no free cake!), and why Vue.js and Preact straight refused to ship anything similar
The Future of Performance Tooling
JSNation 2022JSNation 2022
21 min
The Future of Performance Tooling
Top Content
Our understanding of performance & user-experience has heavily evolved over the years. Web Developer Tooling needs to similarly evolve to make sure it is user-centric, actionable and contextual where modern experiences are concerned. In this talk, Addy will walk you through Chrome and others have been thinking about this problem and what updates they've been making to performance tools to lower the friction for building great experiences on the web.
TypeScript and React: Secrets of a Happy Marriage
React Advanced Conference 2022React Advanced Conference 2022
21 min
TypeScript and React: Secrets of a Happy Marriage
Top Content
TypeScript and React are inseparable. What's the secret to their successful union? Quite a lot of surprisingly strange code. Learn why useRef always feels weird, how to wrangle generics in custom hooks, and how union types can transform your components.

Workshops on related topic

React Performance Debugging Masterclass
React Summit 2023React Summit 2023
170 min
React Performance Debugging Masterclass
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
React Hooks Tips Only the Pros Know
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
React Hooks Tips Only the Pros Know
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
The addition of the hooks API to React was quite a major change. Before hooks most components had to be class based. Now, with hooks, these are often much simpler functional components. Hooks can be really simple to use. Almost deceptively simple. Because there are still plenty of ways you can mess up with hooks. And it often turns out there are many ways where you can improve your components a better understanding of how each React hook can be used.You will learn all about the pros and cons of the various hooks. You will learn when to use useState() versus useReducer(). We will look at using useContext() efficiently. You will see when to use useLayoutEffect() and when useEffect() is better.
React, TypeScript, and TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript, and TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS is wildly popular and thus wildly supported. TypeScript is increasingly popular, and thus increasingly supported.

The two together? Not as much. Given that they both change quickly, it's hard to find accurate learning materials.

React+TypeScript, with JetBrains IDEs? That three-part combination is the topic of this series. We'll show a little about a lot. Meaning, the key steps to getting productive, in the IDE, for React projects using TypeScript. Along the way we'll show test-driven development and emphasize tips-and-tricks in the IDE.
Designing Effective Tests With React Testing Library
React Summit 2023React Summit 2023
151 min
Designing Effective Tests With React Testing Library
Top Content
Featured Workshop
Josh Justice
Josh Justice
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests.
Table of contents- The different kinds of React application tests, and where component tests fit in- A mental model for thinking about the inputs and outputs of the components you test- Options for selecting DOM elements to verify and interact with them- The value of mocks and why they shouldn’t be avoided- The challenges with asynchrony in RTL tests and how to handle them
Prerequisites- Familiarity with building applications with React- Basic experience writing automated tests with Jest or another unit testing framework- You do not need any experience with React Testing Library- Machine setup: Node LTS, Yarn
AI on Demand: Serverless AI
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
Next.js 13: Data Fetching Strategies
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Data Fetching Strategies
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introduction- Prerequisites for the workshop- Fetching strategies: fundamentals- Fetching strategies – hands-on: fetch API, cache (static VS dynamic), revalidate, suspense (parallel data fetching)- Test your build and serve it on Vercel- Future: Server components VS Client components- Workshop easter egg (unrelated to the topic, calling out accessibility)- Wrapping up