{"id":71222,"date":"2024-02-05T07:30:00","date_gmt":"2024-02-05T06:30:00","guid":{"rendered":"https:\/\/entelgy.com\/sin-categoria\/como-mejorar-el-desarrollo-de-software-con-la-ia-de-copilot\/"},"modified":"2025-09-02T13:49:00","modified_gmt":"2025-09-02T11:49:00","slug":"como-mejorar-el-desarrollo-de-software-con-la-ia-de-copilot","status":"publish","type":"post","link":"https:\/\/entelgy.com\/en\/present\/como-mejorar-el-desarrollo-de-software-con-la-ia-de-copilot\/","title":{"rendered":"C\u00f3mo mejorar el Desarrollo de Software con la IA de Copilot"},"content":{"rendered":"<p><img fetchpriority=\"high\" decoding=\"async\" class=\" size-full wp-image-33690\" src=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/4c0def314804b1125d2744fa491010ce.jpg\" alt=\"\" width=\"900\" height=\"506\" srcset=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/4c0def314804b1125d2744fa491010ce.jpg 900w, https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/4c0def314804b1125d2744fa491010ce-300x169.jpg 300w, https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/4c0def314804b1125d2744fa491010ce-768x432.jpg 768w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Te contamos c\u00f3mo aprovechar la IA Generativa aplicada a c\u00f3digo usando Github Copilot como estrategia para aumentar la productividad de los equipos de programaci\u00f3n.<\/p>\n<p><!--more--><\/p>\n<p><em>Por Jorge Herrero, Head of Technology &amp; AI<\/em><\/p>\n<p><em><img decoding=\"async\" class=\" size-full wp-image-33691\" src=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Jorge-Herrero-EAT-Entelgy.jpg\" alt=\"Jorge Herrero Entelgy\" caption=\"false\" width=\"700\" height=\"207\" srcset=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Jorge-Herrero-EAT-Entelgy.jpg 700w, https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Jorge-Herrero-EAT-Entelgy-300x89.jpg 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/em><\/p>\n<p><strong>GitHub Copilot<\/strong> es una herramienta basada en<strong> Inteligencia Artificial<\/strong> que integrada en el IDE de Desarrollo, asiste, ayuda y aumenta las capacidades de programaci\u00f3n mediante un sistema de sugerencias inteligentes que automatizan las tareas de codificaci\u00f3n y organizaci\u00f3n del c\u00f3digo, ayudando a ser m\u00e1s productivos.<\/p>\n<p>Esta Inteligencia Artificial se basa en <strong>modelos de aprendizaje autom\u00e1tico de Machine Learning sobre Chat GPT4<\/strong> pero entrenado para dar una respuesta especialista basada en programaci\u00f3n, apoyados en el an\u00e1lisis de enormes vol\u00famenes de informaci\u00f3n de los repositorios de c\u00f3digo de Github, recuperando de este origen los fragmentos y construyendo las secuencias de c\u00f3digo integradas en nuestra programaci\u00f3n y que haciendo un uso correcto, enfocado y con sentido cr\u00edtico por parte de los perfiles de programaci\u00f3n entrenados en su utilizaci\u00f3n, conseguiremos grandes ventajas que r\u00e1pidamente aumentar\u00e1n la velocidad de codificaci\u00f3n y la calidad del entregable reduciendo los errores de programaci\u00f3n.<\/p>\n<p>Para alcanzar el m\u00e1ximo aprovechamiento es necesario entender que el uso debe hacerse desde un <strong>criterio guiado por la experiencia<\/strong> suficiente para discriminar y ser cr\u00edtico, para detectar realmente la adecuaci\u00f3n y conveniencia de esta sugerencia de c\u00f3digo y que sea realmente v\u00e1lida y aplique. Su uso por parte de profesionales m\u00e1s juniors o con menor experiencia, posiblemente sea un acelerador de la entrega, pero no una garant\u00eda de la calidad.<\/p>\n<p>Copilot puede ayudarnos con la<strong> generaci\u00f3n y validaci\u00f3n de c\u00f3digo en diferentes lenguajes<\/strong>, donde atendiendo a las siguientes recomendaciones y pr\u00e1cticas, podremos aprovecharlo para tener esos beneficios:<\/p>\n<table>\n<tbody>\n<tr>\n<td><span>{rsform 144}<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><strong>Sintaxis Predictiva Aumentada (autocompletado de c\u00f3digo):<\/strong><\/h3>\n<p>Lo primero que podemos observar, es que tras su instalaci\u00f3n que se resuelve con la configuraci\u00f3n de un plugin sobre el IDE, es que de inmediato obtenemos un nivel de asistencia en la escritura de manera contextual a nuestro c\u00f3digo de manera similar al que ya obtenemos con otros plugins de autocompletado. Sin embargo, el nivel de asistencia se encuentra aumentado, no s\u00f3lo asistiendo a la propia sintaxis y tabulado para la presentaci\u00f3n y ordenado del c\u00f3digo en pantalla, sino que completa bloques, adelantando y sugiriendo tambi\u00e9n secuencias de c\u00f3digo completos.<br \/>Su uso va a requerir cierta adaptaci\u00f3n para conseguir un aprovechamiento completo, ya que marca o propone cierto ajuste del c\u00f3digo y formato de escritura diferente al que probablemente sea el que personalmente cada programador est\u00e9 acostumbrado a utilizar de manera m\u00e1s personal. Al principio puede resultar algo raro, es como una sensaci\u00f3n de hablar y escucharse a s\u00ed mismo o escuchar a otro contando a la vez lo que va a suceder varios minutos despu\u00e9s. Nos hace desviar la vista para leer los fragmentos que est\u00e1 a\u00f1adiendo en tiempo real y requiere de adquirir cierto entrenamiento para confiar y validar esas secuencias para que queden integradas en nuestra programaci\u00f3n y validemos esos bloques, acelerando as\u00ed su escritura.<\/p>\n<h3><strong>C\u00f3digo Generativo:<\/strong><\/h3>\n<p>El otro gran bloque de funcionalidad que aporta, es la escritura autom\u00e1tica de bloques reutilizables, la entrega e integraci\u00f3n de unidades completas de c\u00f3digo totalmente operativo. Para lograr una adecuada respuesta, es necesario aprender a construir correctamente los prompts, a formular de manera \u00f3ptima la descripci\u00f3n de la petici\u00f3n solicitada al chat<\/p>\n<p>Aqu\u00ed ciertamente llama mucho la atenci\u00f3n y genera gran entusiasmo inicial ver la aparente inteligencia que aporta la respuesta a una solicitud funcional simple y la entrega de c\u00f3digo compatible con esa necesidad, pero tambi\u00e9n hay ciertos criterios que condicionan esta ventaja y que deberemos gestionar para conseguir unos buenos resultados.<\/p>\n<p>Por un lado aporta secuencias programadas, que compilan y funcionan directamente, pero tambi\u00e9n identifica librer\u00edas de c\u00f3digo y recursos que importar y configurar dentro del proyecto de manera autom\u00e1tica, lo que siempre acelera mucho, resuelve instant\u00e1neamente algo que normalmente lleva algo de rato y requiere experiencia.<\/p>\n<p>Sabemos que esta generaci\u00f3n de c\u00f3digo la est\u00e1 realizado en base a la indexaci\u00f3n y aprendizaje que hace de contenidos que existen ya en Github, recursos que de manera manual tambi\u00e9n podemos encontrar y siempre hemos venido usando como fuente de informaci\u00f3n los equipos de desarrollo, pero en este caso la incorpora de manera instant\u00e1nea y con acierto. Precisamente de esa inclusi\u00f3n surge un primer riesgo y es el de que la coincidencia de uso la hace con respecto al ejemplo que encuentra y en algunos casos esta corresponde con sintaxis de c\u00f3digo deprecado o librer\u00edas obsoletas y discontinuadas.<\/p>\n<p>Gestionando el anterior problema, en caso de que el programador tenga la habilidad avanzada de identificarlo, tambi\u00e9n es posible solicitarle que busque y actualice un c\u00f3digo ya escrito adaptado a una versi\u00f3n de librer\u00edas m\u00e1s actuales, o pedirle que lo haga de otro modo.<\/p>\n<p>Lo que m\u00e1s llama la atenci\u00f3n, no es la incorporaci\u00f3n de ejemplos de uso, sino la capacidad que tiene para adaptar el ejemplo para construir una unidad de negocio completamente v\u00e1lida desde el punto de vista funcional y adaptada a la programaci\u00f3n y caso de uso concreto que se le pide. Para lograrlo, requiere de entrenamiento del programador en la construcci\u00f3n de estas peticiones para que entreguen el contenido adaptado al esperado mediante peticiones consecutivas que afinen la respuesta.<\/p>\n<p>Esto no es infinito, al contrario, es incluso algo limitado y debemos saber que termina reutilizando y entregando contenidos y respuestas repetidas aun reformulando la condici\u00f3n.<\/p>\n<p>Por todo ello, y buscando la calidad del entregable, es recomendable para evitar riesgos que puedan luego tener consecuencias graves o dif\u00edciles de reprogramar cuando se integren con otras partes de las aplicaciones, aplicar cierto sentido cr\u00edtico en el gobierno del desarrollo por parte de alguien con experiencia y criterio, para tomar las decisiones de uso y de integraci\u00f3n final del c\u00f3digo generado autom\u00e1ticamente, para su uso dentro de nuestro desarrollo.<\/p>\n<p><img decoding=\"async\" class=\" size-full wp-image-33692\" src=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-2.jpg\" alt=\"Desarrollo de Software con GitHub Copilot\" width=\"701\" height=\"394\" caption=\"false\" srcset=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-2.jpg 900w, https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-2-300x169.jpg 300w, https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-2-768x432.jpg 768w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/p>\n<h3><strong>Refactorizaci\u00f3n de C\u00f3digo:<\/strong><\/h3>\n<p>Copilot tambi\u00e9n nos puede ayudar a la ordenaci\u00f3n y adaptaci\u00f3n de nuestro c\u00f3digo en base al uso de patrones de dise\u00f1o buscando una comprensi\u00f3n mucho m\u00e1s efectiva de esas secuencias de c\u00f3digo, haciendo que sea m\u00e1s mantenible al ser m\u00e1s f\u00e1cil de interpretar.<\/p>\n<p>Podemos pedirle que realice esa gesti\u00f3n por nosotros y con ello nos liberarnos de esa tediosa reprogramaci\u00f3n y ganar tiempo, pero s\u00f3lo podremos tener seguridad de que la actividad entregada es la adecuada, desde el conocimiento operativo del programador de que las estructuras y la gesti\u00f3n que se realiza sobre ellas responden a lo que realmente \u00e9l conoce y busca obtener, no elimina ni podemos esperar que sea confiable sin esa supervisi\u00f3n.<\/p>\n<h3><strong>Depuraci\u00f3n de C\u00f3digo:<\/strong><\/h3>\n<p>Esta actividad es de alt\u00edsimo valor en las actividades de programaci\u00f3n y de mantenimiento, dado que permite gestionar grandes bloques de c\u00f3digo pidi\u00e9ndole que analice y encuentre no s\u00f3lo mejoras y optimizaciones, sino que encuentre inconsistencias o redundancias de c\u00f3digo proponi\u00e9ndonos soluciones a los problemas encontrados o mejoras de eficiencia, incluso la eliminaci\u00f3n de secuencias obsoletas o heredadas que ya no aplican y que nunca se ejecutan.<\/p>\n<p>Un caso particular de alt\u00edsimo valor es la recomendaci\u00f3n de aprovechar la capacidad que tiene para trabajar con la generaci\u00f3n de algoritmos, donde podemos proponerle que valore la idoneidad de la atenci\u00f3n de las condiciones y flujos programados y nos entregue una versi\u00f3n mucho m\u00e1s optimizada, de especial inter\u00e9s para bucles anidados, control de condiciones de salidas en iteraciones o en anidamiento de llamadas de funciones, donde nos va a sugerir algoritmos mucho m\u00e1s eficientes y r\u00e1pidos de ejecuci\u00f3n.<\/p>\n<p>Finalmente, podemos utilizar esta estrategia para ayudar a entender de manera m\u00e1s clara el c\u00f3digo, de modo que nos ayude en su documentaci\u00f3n, en el an\u00e1lisis y descubrimiento del comportamiento de secuencias complejas, que probablemente ni siquiera hayan sido programadas por nosotros y nos resulten dif\u00edciles de entender, donde podemos pedirle que nos evidencie, explique y documente la ejecuci\u00f3n de cada l\u00ednea o proceso que realiza el c\u00f3digo para facilitarnos su interpretaci\u00f3n y mantenimiento.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-33693\" src=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-3.jpg\" alt=\"C\u00f3mo mejorar el Desarrollo de Software con GitHub Copilot \" caption=\"false\" width=\"701\" height=\"394\" srcset=\"https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-3.jpg 900w, https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-3-300x169.jpg 300w, https:\/\/entelgy.com\/wp-content\/uploads\/2024\/02\/Cmo-mejorar-el-Desarrollo-de-Software-con-la-IA-de-Copilot-3-768x432.jpg 768w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/p>\n<h3><strong>Consultas a BBDD:<\/strong><\/h3>\n<p>Usando esta IA podremos ahorrar mucho tiempo, ya que proponemos usarla para construir por nosotros las consultas a los modelos de datos, donde Copilot puede ayudar a generar el c\u00f3digo de la consulta proporcionando sugerencias para filtros, uniones, agregaciones\u2026 etc.<\/p>\n<p>Podemos utilizarlo para construcci\u00f3n autom\u00e1tica de toda la capa de operaci\u00f3n de datos, implementando las clases wrappers de objetos, DAOs o mapeo de entidades, as\u00ed como los interfaces de los beans, junto con la generaci\u00f3n del API de servicios con los m\u00e9todos y funciones b\u00e1sicas para las operaciones de lectura, escritura, transformaci\u00f3n y actualizaci\u00f3n de datos.<\/p>\n<p>Obviamente, recomendamos aprovechar tambi\u00e9n apoyarnos en la IA para la creaci\u00f3n asistida de las clases que generan nuestro pool, gestionando las conexiones con diferentes fuentes u or\u00edgenes de datos o motores de persistencia.<\/p>\n<h3><strong>Casos de Prueba:<\/strong><\/h3>\n<p>Es posible delegar en Copilot la creaci\u00f3n del conjunto de casos de pruebas unitarias de nuestro c\u00f3digo que se utilicen para asegurar la validez y mantengan la integridad de todos los fragmentos de c\u00f3digo y funciones de nuestro desarrollo, probados de manera continua.<\/p>\n<p>Tambi\u00e9n podemos pedirle que nos genere cat\u00e1logos de datos con los que alimentar funcionalmente las pruebas m\u00e1s avanzadas.<\/p>\n<hr \/>\n<p>{rsform 144}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Te contamos c\u00f3mo aprovechar la IA Generativa aplicada a c\u00f3digo usando Github Copilot como estrategia para aumentar la productividad de [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":65936,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_lock_modified_date":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[8654,8653],"tags":[8674],"class_list":["post-71222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","category-present","tag-entelgy-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/posts\/71222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/comments?post=71222"}],"version-history":[{"count":1,"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/posts\/71222\/revisions"}],"predecessor-version":[{"id":75918,"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/posts\/71222\/revisions\/75918"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/media\/65936"}],"wp:attachment":[{"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/media?parent=71222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/categories?post=71222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/entelgy.com\/en\/wp-json\/wp\/v2\/tags?post=71222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}