AWS Thai Blog

แนะนำการใช้งาน Amazon Q Developer CLI ผู้ช่วย Agentic AI ที่จะช่วยเพิ่มประสิทธิภาพในการพัฒนาซอฟต์แวร์ของคุณ

บทความนี้จะมาแนะนำเครื่องมือ Agentic AI ที่จะช่วยให้นักพัฒนาทำงานได้อย่างมีประสิทธิภาพมากขึ้น คือ Amazon Q Developer CLI

ในยุคที่เทคโนโลยีมีการเปลี่ยนแปลงอย่างรวดเร็ว นักพัฒนาซอฟต์แวร์ต้องเผชิญกับความท้าทายมากมาย ทั้งการเรียนรู้เทคโนโลยีใหม่ๆ การแก้ไขปัญหาที่ซับซ้อน และการพัฒนาโซลูชันที่มีประสิทธิภาพในเวลาที่จำกัด ทำให้ Amazon Q Developer เกิดขึ้นมาเพื่อตอบโจทย์ความท้าทายเหล่านี้ โดยนำเอาพลังของ Agentic AI มาช่วยให้นักพัฒนาทำงานได้อย่างมีประสิทธิภาพมากขึ้น ช่วยให้คุณสามารถสอบถามข้อมูล แก้ไขโค้ด ดูแลระบบ และทำงานกับ AWS services ได้อย่างรวดเร็วโดยไม่ต้องออกจาก terminal ของคุณ นี่คือการปฏิวัติวิธีการทำงานของนักพัฒนา ที่ช่วยลดเวลาในการค้นหาข้อมูล และเพิ่มเวลาในการสร้างสรรค์โซลูชันได้อย่างมีประสิทธิภาพ Amazon Q Developer ไม่ใช่แค่เครื่องมือช่วยเขียนโค้ด แต่เป็นผู้ช่วยที่เข้าใจวิธีการใช้งาน AWS อย่างดี เข้าใจ​ Best Practices และสามารถให้คำแนะนำที่เหมาะสมกับ use case, คำถาม หรือปัญหาของคุณได้

นักพัฒนาไม่จำเป็นต้องจดจำทุกรายละเอียดของ AWS services ทั้งหมด หรือต้องค้นหาตัวอย่างโค้ดจากเอกสารหรือเว็บไซต์ต่างๆ อีกต่อไป Amazon Q Developer สามารถให้คำตอบที่คุณต้องการได้ทันที ช่วยให้คุณโฟกัสกับการแก้ปัญหาที่สำคัญจริงๆ แทนที่จะเสียเวลาไปกับการค้นหาข้อมูลพื้นฐาน

การพัฒนาซอฟต์แวร์ในปัจจุบันไม่ได้เป็นเพียงแค่การเขียนโค้ด แต่ยังรวมถึงการออกแบบ Archietecture การจัดการ infrastructure การทดสอบ และการ deploy แอปพลิเคชัน ซึ่ง Amazon Q Developer สามารถช่วยในทุกขั้นตอนของวงจรการพัฒนาซอฟต์แวร์ ทำให้กระบวนการทั้งหมดมีประสิทธิภาพและราบรื่นมากขึ้น

ความสามารถหลักของ Amazon Q Developer

  • การช่วยเหลือด้านการเขียนโค้ด – Amazon Q สามารถช่วยเขียนโค้ดในภาษาต่างๆ มากกว่า 15 ภาษา สิ่งที่ทำให้ Amazon Q แตกต่างจาก AI Assistant อื่นๆ คือความเข้าใจอย่างลึกซึ้งเกี่ยวกับ AWS SDK และ API ต่างๆ ทำให้สามารถสร้างโค้ดที่ทำงานกับบริการของ AWS ได้อย่างถูกต้องและมีประสิทธิภาพ และยังสามารถช่วยในการ refactor โค้ดเดิม การเพิ่ม unit tests การแก้ไขบั๊ก และการอัปเกรดโค้ด ช่วยให้นักพัฒนาสามารถปรับปรุงคุณภาพของโค้ดได้อย่างรวดเร็วและมีประสิทธิภาพ
  • การให้คำแนะนำเกี่ยวกับ AWS Services – คุณสามารถถามคำถามเกี่ยวกับวิธีการใช้งาน ข้อแตกต่าง ข้อดีข้อเสีย และแนวทาง Best Practices สำหรับแต่ละบริการได้
  • การทำงานกับไฟล์และระบบ – สามารถช่วยในการสร้าง แก้ไข และวิเคราะห์ไฟล์ต่างๆ ได้ ไม่ว่าจะเป็นการสร้างไฟล์เอกสาร เช่น Requirement, Design document, Test cases และทำการสร้างโค้ดจากไฟล์, configuration ไฟล์ เป็นต้น
  • การสร้าง Infrastructure as Code – สามารถช่วยคุณสร้าง CloudFormation templates, Terraform, AWS CDK และ ณฟแ อื่น ๆ ได้อีกมากมาย พร้อมคำอธิบายและแนวทาง​ Best Practices
  • การแก้ไขปัญหาและการวิเคราะห์ – สามารถวิเคราะห์ Error message และ Log file ได้อย่างละเอียด และให้คำแนะนำที่เฉพาะเจาะจงสำหรับการแก้ไขปัญหา ไม่ว่าจะเป็นปัญหาเกี่ยวกับโค้ด ปัญหาเกี่ยวกับการตั้งค่า หรือปัญหาเกี่ยวกับ infrastructure ที่อยู่บน AWS Account
  • การจัดการและ Deploy Resources บน AWS – สามารถตั้งค่า AWS credentials และ Deploy resources ขึ้น AWS หรือสามารถจัดการ Resources บน AWS โดยจะทำการสร้าง CLI และติดต่อกับ AWS Services

วิธีการติดตั้งและใช้งาน

การเริ่มต้นใช้งาน Amazon Q Developer CLI นั้นง่ายมาก คุณสามารถติดตั้งผ่านการดาวน์โหลด package หรือ ผ่าน command line ก็ได้ ซึ่งรองรับทั้ง macOS Windows Subsystem for Linux (WSL)  Linux AppImage Ubuntu

หลังจากที่ติดตั้งเรียบร้อยแล้ว เราก็สามารถ Login ได้ ผ่าน Terminal โดยในตัวอย่างนี้จะพิมพ์ใน Teminal ของ VSCode โดยพิมพ์

q login

ผู้เริ่มต้นสามารถเลือก login ผ่าน Builder ID ได้ โดยเลือก Option Use for Free with Builder ID

สามารถดูรายละเอียดได้ในวิธีการสร้าง Builder ID

หลังจากที่เรียบร้อยแล้ว เราก็สามารถเข้าใช้งาน Amazon Q Developer CLI โดยพิมพ์

q chat

เพียงเท่านี้คุณก็สามารถสนทนากับ Amazon Q ในรูปแบบ interactive mode ทำให้คุณสามารถถามคำถาม ขอความช่วยเหลือ หรือแม้แต่ขอให้ช่วยเขียนโค้ดได้

ตัวอย่างที่ 1 การช่วยเหลือด้านการเขียนโค้ด

Amazon Q สามารถสร้างโค้ด เช่น เกมส์ html ง่าย ๆ โดยพิมพ์

ฉันอยากจะสร้างเกมส์ minesweeper บน html ง่าย ๆ ช่วยสร้างให้หน่อย

หรือจะพิมพ์เป็นภาษาอังกฤษก็ได้ เช่น

I want to create minesweeper game on simple html web. Can you help?

Amazon Q Developer CLI จะใช้ความสามารถของ Agentic ในการวิเคราะห์คำถามและจะดำเนินการตามคำสั่ง

ถ้าหากว่าจะต้องมีการสร้างหรือ execute คำสั่งใด ๆ Amazon Q Developer CLI จะอนุญาตโดยการให้เราพิมพ์ y หรือ n หรือ t ก่อนทุกครั้ง โดยในตัวอย่างนี้จะใช้ t เพื่ออนุญาตตลอดกระบวนการ

ในตัวอย่างนี้เป็นการสร้างเกมส์ Minesweeper บน html ง่าย Amazon Q Developer CLI ก็จะสามารถสร้างไฟล์ html ออกมาได้

เราสามารถเปิดไฟล์ html บนเว็บเบราว์เซอร์ก็จะได้เกมส์ Minesweeper ออกมา

ถ้าเราพบข้อผิดพลาดของเกมส์ เราก็สามารถให้ Amazon Q Developer CLI แก้ไขได้ โดยการพิมพ์ปัญหาที่เจอ เช่น

ฉันไม่สามารถกดเพื่อเปิดช่องว่างโดยอัติโนมัติหลังจากปักธง ช่วยแก้ไขให้หน่อย

หรือ

I found that sometimes I cannot Left-click on cells to reveal number. Please help to check and fix

เราจะเห็นว่า Amazon Q จะพยายามหาข้อผิดพลาดและแก้ไขตามคำอธิบายของเรา

เทคนิคหนึ่งในการทำให้ Amazon Q สามารถให้ผลลัพธ์ได้อย่างแม่นยำมากขึ้นการให้ Context ที่เพียงพอ เช่น ถ้าเราให้ Context เกี่ยวกับเกมส์ที่ละเอียดขึ้น ตามตัวอย่าง Prompt ด้านล่าง

I want to create minesweeper game on simple html web. Can you help?
Minesweeper is a game where mines are hidden in a grid of squares. Safe squares have numbers telling you how many mines touch the square. You can use the number clues to solve the game by opening all of the safe squares. If you click on a mine you lose the game!
Windows Minesweeper always makes the first click safe. You open squares with the left mouse button and put flags on mines with the right mouse button. Pressing the right mouse button again changes your flag into a questionmark. When you open a square that does not touch any mines, it will be empty and the adjacent squares will automatically open in all directions until reaching squares that contain numbers. A common strategy for starting games is to randomly click until you get a big opening with lots of numbers.
If you flag all of the mines touching a number, chording on the number opens the remaining squares. Chording is when you press both mouse buttons at the same time. This can save you a lot of work! However, if you place the correct number of flags on the wrong squares, chording will explode the mines.
The three difficulty levels are Beginner (8x8 or 9x9 with 10 mines), Intermediate (16x16 with 40 mines) and Expert (30x16 with 99 mines). The game ends when all safe squares have been opened. A counter shows the number of mines without flags, and a clock shows your time in seconds. Minesweeper saves your best time for each difficulty level.

อ้างอิงจาก Minesweeper Rules

Amazon Q จะสามารถให้ผลลัพธ์ที่ดีขึ้น ตามรูปภาพด้านล่าง


ตัวอย่างที่ 2 การให้คำแนะนำเกี่ยวกับ AWS Services

Amazon Q สามารถอธิบายคำถามเกี่ยวกับ AWS Services ต่าง ๆ ได้อย่างละเอียด พร้อมตัวอย่างการใช้งานและ Best Practices เช่น

ขอวิธีการที่จะให้ S3 Bucket จะสามารถเรียกผ่านได้จาก Lambda ที่อยู่คนละ AWS Account จะต้องทำอย่างไรบ้าง

ซึ่งจะเห็นว่า Amazon สามารถให้คำแนะนำตามเป็นขั้นตอนอย่างละเอียดที่เราสามารถนำไปปรับใช้ได้


ตัวอย่างที่ 3 การสร้าง Infrastructure as Code (IaC)

เราสามารถให้ Amazon Q สร้าง Resource บน AWS ผ่าน IaC ได้ ในตัวอย่างนี้เป็นตัวอย่างในการสร้าง Serverless application ที่ประกอบไปด้วย Amazon API Gateway, AWS Lambda, Amazon DynamoDB ผ่าน AWS CDK รวมถึงการสร้างโค้ดของ AWS Lambda ด้วย

I'am developer and want to build a serverless application by using following services. 
1. An API Gateway to receive user request. Request is Firstname and Lastname
2. Route to Lambda function to process the request 
3. Record request to Dynamo DB
Build the AWS infrastructure using CDK in TypeScript. Lambda Function write in Python.

Amazon Q จะสามารถสร้างโค้ดของ AWS CDK และ AWS Lambda ที่พร้อม Deploy ลงบน AWS Account ของเรา ซึ่งเราสามารถการตั้งค่า AWS credentials ที่มีสิทธิ์ในการสร้าง Resources ต่าง ๆ ใน AWS Account ของเรา และทำการบอกให้ Amazon Q ทำการ Deploy resources ทั้งหมดผ่าน AWS CDK ได้โดยพิมพ์

deploy ลง aws ให้ด้วย

หลังจากที่ Amazon Q ทำการ Deploy เรียบร้อยแล้ว เราก็สามารถทำการทดสอบโดยการเรียก Amazon API Gateway และดูข้อมูลใน Amazon DynamoDB Table ของถูกสร้างขึ้นได้

และเรายังสามารถให้ Amazon Q สร้าง draw.io diagram ได้โดยพิมพ์

ช่วยสร้างไฟล์ draw.io ให้หน่อย

ซึ่งเราจะเห็นว่า Amazon Q จะสามารถสร้าง Diagram เบื้องต้นให้เรานำไปตกแต่งเพิ่มเติมต่อได้

นี่เป็นเพียง 3 ตัวอย่างที่แนะนำในบทความนี้ ซึ่ง Amazon Q Developer ยังมีความสามารถอื่น ๆ อีกมากมาย เช่น การเขียน README, Requirement, Design Document, Test Cases รวมถึง โค้ดของ Test Case, และยังสามารถช่วยวิเคราะห์หรือแก้ปัญหาต่าง ๆ ในไฟล์หรือ Resources ต่าง ๆ ที่อยู่บน AWS ที่ Amazon Q สามารถเข้าถึงได้

และยังมีเทคนิคการใช้งาน Amazon Q Developer อย่างมีประสิทธิภาพ เช่น การใช้คำถามที่เฉพาะเจาะจง, การใช้ Context ที่เพียงพอ, การใช้งานแบบต่อเนื่อง เพราะ Amazon Q สามารถจดจำบทสนทนาก่อนหน้าได้, การใช้งานร่วมกับเครื่องมืออื่น เช่น AWS CLI, git, docker เป็นต้น

สรุป

Amazon Q Developer เป็นเครื่องมือที่ทรงพลังสำหรับนักพัฒนาที่ต้องการเพิ่มประสิทธิภาพในการทำงาน ไม่ว่าจะเป็นการเขียนโค้ด การจัดการทรัพยากรบน AWS หรือการแก้ไขปัญหาต่างๆ Amazon Q สามารถช่วยให้คุณทำงานได้เร็วขึ้นและมีประสิทธิภาพมากขึ้น

ในยุคที่เทคโนโลยีมีการเปลี่ยนแปลงอย่างรวดเร็ว การมีผู้ช่วยอัจฉริยะอย่าง Amazon Q Developer จะช่วยให้นักพัฒนาสามารถเรียนรู้และปรับตัวได้อย่างรวดเร็ว ลดเวลาในการทำงานที่ซ้ำซ้อน และมุ่งเน้นไปที่การสร้างนวัตกรรมและการแก้ปัญหาที่ซับซ้อนได้มากขึ้น

Amazon Q Developer ไม่ได้มาแทนที่นักพัฒนา แต่เป็นเครื่องมือที่ช่วยเพิ่มประสิทธิภาพและความสามารถของนักพัฒนา ช่วยให้นักพัฒนาสามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้น และสร้างสรรค์โซลูชันที่มีคุณค่ามากขึ้น