Uso de Amazon Q Developer como asistente de codificación para aumentar la productividad - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de Amazon Q Developer como asistente de codificación para aumentar la productividad

Ram Kandaswamy, Amazon Web Services

Resumen

Este patrón utiliza un tic-tac-toe juego para demostrar cómo puedes aplicar Amazon Q Developer en una variedad de tareas de desarrollo. Genera código para un tic-tac-toe juego como una aplicación de una sola página (SPA), mejora su interfaz de usuario y crea scripts para implementar la AWS aplicación.

Amazon Q Developer funciona como un asistente de codificación para ayudar a acelerar los flujos de trabajo de desarrollo de software y mejorar la productividad para desarrolladores y para no desarrolladores. Independientemente de sus conocimientos técnicos, le permite crear arquitecturas y diseñar soluciones para problemas empresariales, a reforzar su entorno de trabajo, a implementar características nuevas y a generar casos de prueba para su validación. Utiliza instrucciones en lenguaje natural y funcionalidades de IA para garantizar un código coherente y de alta calidad y mitigar los desafíos de codificación, independientemente de sus habilidades de programación.

La ventaja principal de Amazon Q Developer es su capacidad para quitarle de encima las tareas de codificación repetitivas. Cuando utiliza la anotación @workspace, Amazon Q Developer ingiere e indexa todos los archivos de código, las configuraciones y la estructura del proyecto en su entorno de desarrollo integrado (IDE) y proporciona respuestas personalizadas para que se centre en la resolución creativa de problemas. Puede dedicar más tiempo a diseñar soluciones innovadoras y a mejorar la experiencia del usuario. Si no tiene conocimientos técnicos, puede utilizar Amazon Q Developer para agilizar los flujos de trabajo y colaborar de manera más eficaz con el equipo de desarrollo. La característica de explicación del código de Amazon Q Developer ofrece instrucciones y resúmenes detallados para que pueda navegar por bases de código complejas.

Además, Amazon Q Developer ofrece un enfoque independiente del lenguaje que ayuda a los desarrolladores de nivel medio y medio a ampliar sus habilidades. Puede concentrarse en los conceptos básicos y la lógica empresarial en lugar de centrarse en la sintaxis específica del lenguaje. Esto reduce la curva de aprendizaje al cambiar de tecnología.

Requisitos previos y limitaciones

Requisitos previos 

  • IDE (por ejemplo, WebStorm o Visual Studio Code) con el complemento Amazon Q Developer instalado. Para obtener instrucciones, consulte Installing the Amazon Q Developer extension or plugin in your IDE en la documentación de Amazon Q Developer.

  • Una Cuenta de AWS configuración activa con Amazon Q Developer. Para obtener instrucciones, consulte Getting started en la documentación de Amazon Q Developer.

  • npm instalado. Para obtener instrucciones, consulte la documentación de npm. Este patrón se probó con la versión 10.8 de npm.

  • AWS Command Line Interface (AWS CLI) instalado. Para obtener instrucciones, consulte la documentación de AWS CLI.

Limitaciones

  • Amazon Q Developer solo puede hacer una tarea de desarrollo a la vez.

  • Algunas Servicios de AWS no están disponibles en todas Regiones de AWS. Para conocer la disponibilidad de las regiones, consulte Servicios de AWS by Region. Para ver los puntos de conexión específicos, consulte la página Service endpoints and quotas y elija el enlace del servicio.

Tools (Herramientas)

Prácticas recomendadas

Consulte las prácticas recomendadas de codificación con Amazon Q Developer en la Guía AWS prescriptiva. Además:

  • Al enviar peticiones a Amazon Q Developer, asegúrese de que las instrucciones sean claras e inequívocas. Agregue fragmentos de código y anotaciones, por ejemplo, @workspace a la petición para proporcionar más contexto a las peticiones.

  • Incluya las bibliotecas pertinentes e impórtelas para evitar conflictos o conjeturas incorrectas por parte del sistema.

  • Si el código generado no es exacto o no es el esperado, utilice la opción Enviar comentarios y regenerar. Intente dividir las peticiones en instrucciones más pequeñas.

Epics

TareaDescripciónHabilidades requeridas

Cree un nuevo proyecto de .

Para crear un proyecto nuevo en el entorno de trabajo, ejecute el comando siguiente y acepte la configuración predeterminada para todas las preguntas:

npx create-next-app@latest
Desarrollador de aplicaciones, programador, desarrollador de software

Pruebe la aplicación base.

Ejecute el comando siguiente y confirme que la aplicación base cargó de manera correcta en el navegador:

npm run dev
Desarrollador de aplicaciones, programador, desarrollador de software

Limpie el código base.

Vaya al archivo page.tsx de la carpeta src/app y elimine el contenido predeterminado para obtener una página en blanco. Una vez eliminado, el archivo debe tener el aspecto siguiente:

export default function Home() { return (<div></div> ); }
Desarrollador de aplicaciones, programador, desarrollador de software
TareaDescripciónHabilidades requeridas

Obtenga información general de los pasos.

  1. En el IDE, abra el proyecto y elija el icono de Amazon Q para abrir el panel de chat.

  2. En el panel de chat de Amazon Q Developer, solicite información general sobre cómo crear una aplicación de una sola página (SPA). Por ejemplo:

    I would like to create a single-page application involving Next.js React framework for tic-tac-toe game. What are the steps?
Desarrollador de aplicaciones, programador, desarrollador de software

Genera código para tic-tac-toe.

En el panel de chat, inicie una tarea de desarrollo mediante el comando /dev seguido de la descripción de la tarea. Por ejemplo:

/dev Create a React-based single-page application written in TypeScript for a tic-tac-toe game with the following specifications: 1. Design an aesthetically pleasing interface with the game grid centered vertically and horizontally on the page. 2. Include a heading and clear instructions on how to play the game. 3. Implement color-coding for X and O marks to distinguish them easily.

Amazon Q Developer genera código según sus instrucciones.

Desarrollador de aplicaciones, programador, desarrollador de software

Inspeccione y acepte el código generado.

Inspeccione visualmente el código y elija Aceptar código para reemplazar automáticamente el archivo page.tsx.

Si tiene problemas, elija Enviar comentarios y regenerar y describa el problema que encontró.

Desarrollador de aplicaciones, programador, desarrollador de software

Corrija los errores de linting.

El tic-tac-toe juego de ejemplo incluye una cuadrícula. El código que genera Amazon Q Developer podría utilizar el tipo predeterminado any. Para agregar seguridad tipográfica, haga una petición a Amazon Q Developer de la manera siguiente:

/dev Ensure proper TypeScript typing for the onSquare Click event handler to resolve any 'any' type issues.
Desarrollador de aplicaciones, programador, desarrollador de software

Agregue atractivo visual.

Puede dividir el requisito original en fragmentos más pequeños. Por ejemplo, puede mejorar la IU del juego con las peticiones siguientes en las tareas de desarrollo. Esta petición mejora los estilos de Cascading Style Sheets (CSS) y exporta la aplicación para su implementación.

/dev Debug and fix any CSS issues to correctly display the game grid and overall layout. Simplify the code by removing game history functionality and related components. Implement static file export to an 'out' directory for easy deployment. The solution should be fully functional, visually appealing, and free of typing errors or layout issues.
Desarrollador de aplicaciones, programador, desarrollador de software

Vuelva a probar.

  1. Ahora que completó el ciclo de vida de desarrollo, pruebe el código para confirmar que funciona según lo previsto. Para ejecutar la aplicación localmente, utilice el comando:

    npm run dev
  2. Si la aplicación funciona según lo previsto, utilice el comando build para exportar toda la aplicación a la carpeta de salida como preparación para la implementación:

    npm run build
Desarrollador de aplicaciones, programador, desarrollador de software
TareaDescripciónHabilidades requeridas

Cree carpetas y archivos para su implementación.

En el proyecto del entorno de trabajo, cree una carpeta de implementación con dos archivos en su interior: pushtos3.sh y cloudformation.yml

mkdir deployment && cd deployment touch pushtos3.sh && chmod +x pushtos3.sh touch cloudformation.yml
Desarrollador de aplicaciones, programador, desarrollador de software

Genere código de automatización.

  1. En el panel de chat de Amazon Q Developer, proporcione la petición siguiente:

    /dev Generate a Cloudformation template that creates two resources: tictactoe artifact bucket and CloudFront. CloudFront should be configured with this bucket as origin. Add cache policy appropriate for Amazon S3 and default root object as index.html. Ensure that origin access control is used and no public bucket is created. Output all the resources and their ARNs.
  2. Revise y acepte el código generado. El cloudformation.yml archivo que creó anteriormente ahora debería rellenarse con un CloudFormation script que cree los recursos para el Nube de AWS.

Administrador de AWS, AWS DevOps, desarrollador de aplicaciones

Genere el contenido del script.

Para crear un script de implementación, utilice la petición siguiente:

/dev Modify the pushtos3 shell script so that it can use AWS CLI commands to create a CloudFormation stack named tictactoe-stack if it does not exist already, and use cloudformation.yml as the source template. Wait for the stack to complete and sync the contents from the out folder to the S3 bucket. Perform invalidation of the CloudFront origin.
Desarrollador de aplicaciones, programador, desarrollador de software

Implemente la aplicación en la Nube de AWS.

  1. Configure el entorno de trabajo con AWS credenciales válidas.

  2. Ejecute el script de shell para implementar el tic-tac-toe juego completamente funcional en Nube de AWS.

Administrador de AWS DevOps, arquitecto de nube, desarrollador de aplicaciones

Resolución de problemas

ProblemaSolución

La creación no crea una aplicación de una sola página ni la exporta a la carpeta de salida.

Mire el contenido del archivo next.config.mjs:

Si el código tiene la configuración siguiente de manera predeterminada:

const nextConfig = {};

modifíquelo de la manera siguiente:

const nextConfig = { output: 'export', distDir: 'out', };

Recursos relacionados