Amazon Q CLI: Trợ lý AI cho Developer và Demo Xây dựng Game Snake

Wed, May 15, 2024 - 22 min read View Count
Amazon Q Developer Assistant

🤔 Bạn có bao giờ ước mình có một “cộng sự” AI ngay trong terminal không?

Hãy tưởng tượng: Thay vì phải Google “cách dùng git rebase” lần thứ 100, bạn chỉ cần gõ:

q chat "Tôi muốn gộp 3 commit cuối thành 1, làm thế nào?"

Demo Q Chat

Đó chính là sức mạnh của Amazon Q CLI - trợ lý AI thông minh ngay trong terminal của bạn.

✨ Tại Sao Nên Dùng Amazon Q CLI?

  • 🚀 Tiết kiệm thời gian: Không cần chuyển qua lại giữa terminal và trình duyệt
  • 🧠 Hiểu ngữ cảnh: AI biết bạn đang làm gì dựa trên thư mục hiện tại
  • 💬 Giao tiếp tự nhiên: Hỏi bằng tiếng Việt, nhận câu trả lời chi tiết
  • 🔧 Tích hợp sâu: Làm việc với Git, Docker, AWS CLI, kubectl…

🚀 Phần 1: Bắt Đầu Nhanh

Amazon Q CLI Là Gì?

Amazon Q CLI là trợ lý AI được thiết kế để tích hợp ngay trong terminal. Thay vì phải mở trình duyệt để tìm kiếm câu lệnh, bạn chỉ cần “nói chuyện” với AI ngay tại chỗ.

Điểm mạnh chính:

  • Chuyển ngôn ngữ tự nhiên thành lệnh shell/git/docker
  • Hiểu ngữ cảnh dự án hiện tại
  • Trò chuyện và giải đáp thắc mắc
  • Viết code và debug

🛠️ Cài Đặt Siêu Nhanh (Tham khảo)

Bước 1: Cài Đặt

macOS (khuyến khích):

brew install amazon-q

Linux Ubuntu:

wget https://desktop-release.q.us-east-1.amazonaws.com/latest/amazon-q.deb
sudo dpkg -i amazon-q.deb

Bước 2.1: Đăng Nhập (Miễn Phí)

q login --license free

Login

![Cấp quyền] (https://dev-to-uploads.s3.amazonaws.com/uploads/articles/88y6icroatq1z7vcrdxt.png)

Thành quả

Bước 2.2: Bảo vệ dữ liệu cá nhân

Để tránh việc để Amazon Q CLI sử dụng sử liệu các nhân của bạn cho việc training. Hãy sử dụng command sau:

q settings telemetry.enabled false
q settings codeWhisperer.shareCodeWhispererContentWithAWS false

Bước 3: Bắt Đầu Chat

q chat

🎉 Xong! Giờ bạn có thể hỏi AI bất cứ điều gì!

3 Lệnh Đầu Tiên Phải Biết

LệnhMục ĐíchVí Dụ
q chatBắt đầu trò chuyện với AIq chat "Viết hàm sắp xếp array"
q translateDịch yêu cầu thành lệnhq translate "tìm file Python sửa đổi tuần này"
/helpXem tất cả lệnh có sẵn/help trong phiên chat

💡 Phần 2: Sử Dụng Hàng Ngày

🤔 Amazon Q CLI vs Amazon Q trong IDE - Chọn Cái Nào?

Amazon Q CLI (Terminal) 👍 Khi nào dùng?

  • Bạn “sống và làm việc” hàng giờ bằng terminal
  • Cần tạo lệnh shell/git/docker nhanh
  • Làm việc với server qua SSH
  • Ví dụ: “Tạo script backup database MySQL”

Amazon Q trong IDE 👍 Khi nào dùng?

  • Viết code nhiều hơn chạy lệnh
  • Cần refactor code lớn
  • Debug và test trong IDE
  • Ví dụ: “Refactor class này theo design pattern MVC”

💼 Tình Huống Thực Tế

🏢 Bạn là Backend Developer tại một startup

> Tôi cần tạo API endpoint để lấy danh sách user với phân trang, dùng Python và Django

🎓 Bạn là sinh viên học lập trình

> Giải thích cho tôi hiểu sự khác biệt giữa var, let và const trong JavaScript

🚀 Bạn làm DevOps cần deploy ứng dụng

> Viết Dockerfile cho ứng dụng Python Django với requirements.txt

🎯 Demo Các Lệnh Phổ Biến

Lệnh Cơ Bản Trong Chat

# Bắt đầu chat
q chat
 
# Trong phiên chat:
> /help          # Xem tất cả lệnh
> /clear         # Xóa lịch sử chat
> /editor        # Mở trình soạn thảo cho prompt dài
> /quit          # Thoát

Ví dụ sử dụng /help Ví dụ sử dụng /help

Sử Dụng q translate - “Ma Thuật” Thực Sự

# Từ tiếng Việt thành lệnh
q translate "tìm tất cả file Python được sửa trong tuần qua"
# Kết quả: find . -name "*.py" -mtime -7

Tìm file trong tuần

q translate "tạo branch git mới từ main"  
# Kết quả: git checkout -b new-branch main

Tạo branch

q translate "chạy container Docker với port 3000"
# Kết quả: docker run -p 3000:3000 <image-name>

Chạy container


🔧 Phần 3: Nâng Cao và Tùy Chỉnh

Quản Lý Ngữ Cảnh - Làm Cho AI Hiểu Dự Án

Cung Cấp Ngữ Cảnh Cho AI

# Thêm file vào ngữ cảnh
> /context add ./requirements.txt ./snake_game.py
 
# Xem ngữ cảnh hiện tại
> /context show
 
# Xóa ngữ cảnh
> /context clear

Quản lý context

Tại sao quan trọng? Khi AI biết bạn đang làm dự án gì, câu trả lời sẽ chính xác và phù hợp hơn nhiều.

Quản Lý Profile - Tách Biệt Công Việc

# Tạo profile cho dự án khác nhau
> /profile create frontend-react
> /profile create backend-python
> /profile create devops-aws
 
![Quản lý profile](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qvgfuvy0gdtfu2gz9n6x.png)
 
 
# Chuyển đổi profile
> /profile set backend-python
 
# Mỗi profile có ngữ cảnh riêng
> /context add ./main.py

Các Tính Năng Thông Minh

Lệnh Trong Chat Session

LệnhCông DụngVí Dụ
/tools trust fs_writeCho phép AI ghi file không cần hỏiTự động tạo file config
/compactTóm tắt đoạn chat dài để tiết kiệm bộ nhớKhi chat quá 100 dòng
/save session.jsonLưu phiên chatBackup công việc
/load session.jsonTải lại phiên chatTiếp tục từ lần trước

Mẹo Và Thủ Thuật Hay Ho

  • !{command}: Chạy lệnh shell ngay trong chat

    > !ls -la
    > !git status

command in chat

  • Ctrl + J: Viết prompt nhiều dòng
  • Ctrl + S: Tìm kiếm nhanh trong lịch sử và ngữ cảnh

🕹️ Phần 4: Hành Trình Thực Tế - Xây Dựng Game Snake với Amazon Q

Lý thuyết là vậy, nhưng sức mạnh thực sự của một công cụ chỉ thể hiện qua thực hành. Bây giờ, hãy cùng mình tái hiện lại toàn bộ quá trình mình đã “trò chuyện” với Amazon Q CLI để xây dựng game Rắn săn mồi (Snake) từ một thư mục trống đến một sản phẩm hoàn chỉnh.

🐣 Level 0: Nền Móng Đầu Tiên - Từ Ý Tưởng đến Game Chơi Được

Mọi dự án lớn đều bắt đầu từ những bước nhỏ. Mục tiêu đầu tiên của mình là có được một phiên bản game cơ bản nhất nhưng phải chơi được ngay.

Bước 1: Ý tưởng ban đầu & Yêu cầu chi tiết

Đầu tiên, mình vào thư mục dự án và khởi động Amazon Q.

cd ~/Self-Project/AWS-Builder/snake-game-with-amazon-q
q chat

Thay vì gõ từng yêu cầu nhỏ lẻ, mình muốn đưa ra một bản mô tả hoàn chỉnh. Lệnh /editor là lựa chọn hoàn hảo cho việc này, nó mở ra một trình soạn thảo văn bản ngay trong terminal, giúp mình viết các prompt dài và phức tạp một cách thoải mái.

👨‍💻 Developer:

Hãy giúp tôi tạo một trò chơi Rắn (Snake) đơn giản bằng Python và thư viện `pygame`.

**Yêu cầu cốt lõi:**
1. Trò chơi có kích thước 800x600 pixel.
2. Rắn bắt đầu dài 1 ô.
3. Điều khiển rắn bằng các phím mũi tên (Lên, Xuống, Trái, Phải).
4. Thức ăn xuất hiện ngẫu nhiên trên màn hình.
5. Khi rắn ăn thức ăn, nó sẽ dài ra và một miếng thức ăn mới xuất hiện.
6. Trò chơi kết thúc nếu rắn đâm vào tường hoặc chính thân mình.

Vui lòng cung cấp toàn bộ mã nguồn có thể chạy ngay.

Bước 2: AI bắt tay vào việc

🤖 Amazon Q: I’ll help you create a simple Snake game using Python and pygame. Let me create a complete, runnable Snake game that meets all your requirements.

Ngay lập tức, AI đề xuất tạo một file mã nguồn:

🛠️  Using tool: fs_write
 ⋮ 
 ● Path: snake_game.py

Điều đáng kinh ngạc là AI không chỉ viết vài dòng code. Nó hiển thị một bản diff chi tiết, cho thấy nó sẽ tạo ra một file snake_game.py hoàn chỉnh với 212 dòng code. Mã nguồn này được tổ chức rất chuyên nghiệp theo hướng đối tượng (OOP):

  • Class Game: Quản lý vòng lặp game, sự kiện, và trạng thái chung.
  • Class Snake: Xử lý logic di chuyển, ăn mồi, và kiểm tra va chạm của con rắn.
  • Class Food: Chịu trách nhiệm tạo và đặt lại vị trí mồi.

Coding Diff

Mình chỉ việc đồng ý:

Allow this action? [y/n/t]:
> y

Bước 3: Hoàn thiện “hệ sinh thái” dự án

Một lập trình viên giỏi biết rằng code không phải là tất cả. Amazon Q cũng vậy! Nó không dừng lại ở việc tạo file mã nguồn.

🤖 Amazon Q: Now let me create a requirements file to make it easy to install the necessary dependencies:

🛠️  Using tool: fs_write
 ⋮ 
 ● Path: requirements.txt

pygame==2.5.2

Auto add requirements

🤖 Amazon Q: Let me also create a README file with instructions on how to run the game:

🛠️  Using tool: fs_write
 ⋮ 
 ● Path: README.md

AI tự động điền vào file README các mục quan trọng như hướng dẫn cài đặt, cách chạy, luật chơi và các tính năng.

Q tạo Readme

Bước 4: Thành quả đầu tiên

Chỉ sau vài phút, AI báo cáo kết quả:

🤖 Amazon Q: Perfect! I’ve created a complete Snake game that meets all your requirements. Here’s what I’ve built for you:

🎮 Các tính năng đã implement:

800x600 pixel game window - Exactly as requested
Snake starts with 1 segment - Positioned in the center
Arrow key controls - Up, Down, Left, Right arrows
Random food generation - Red squares appear randomly
Snake growth - Snake grows by one segment each time it eats
Collision detection - Game ends when hitting walls or body

🎁 Bonus features:

  • Score tracking (10 points per food)
  • Game over screen with restart option
  • Smooth 10 FPS gameplay
  • Visual feedback với màu sắc khác nhau

🚀 Cách chạy:

# Cài đặt dependencies
pip install -r requirements.txt
 
# Chạy game
python snake_game.py

Kết Quả

Chạy thử pygame

💡 Điều tuyệt vời ở đây là gì?

  1. 🎯 Hiểu sâu bối cảnh: Chỉ từ một prompt, Q đã hiểu rõ toàn bộ yêu cầu.
  2. 🚀 Chủ động hành động: Q không hỏi vặt, nó bắt tay vào code và tạo ra sản phẩm hoàn chỉnh.
  3. 📁 Tư duy hệ thống: Q không chỉ đưa code, nó tạo ra cả một “hệ sinh thái” (requirements.txt, README.md) để dự án trở nên chuyên nghiệp và dễ sử dụng.
  4. 💻 Code chất lượng: Mã nguồn sạch, có cấu trúc tốt và chạy được ngay mà không có lỗi.

🎨 Level 1: “Tút Tát” Giao Diện & Thêm “Hồn” Cho Game

Game đã chạy được, nhưng giao diện còn khá đơn điệu. Giờ là lúc làm cho nó “đã mắt, đã tai” hơn.

Bước 1: Thêm hiệu ứng đồ họa (Visual Effects)

Mình muốn game của mình trông hiện đại và bắt mắt hơn. Mình cung cấp file snake_game.py làm context và đưa ra yêu cầu mới.

Add context

👨‍💻 Developer gõ trong editor:

Hãy cải thiện giao diện cho game Snake của tôi:

1. Thêm background gradient từ xanh đậm đến xanh nhạt.
2. Tạo hiệu ứng đổ bóng (shadow) cho rắn.
3. Làm thức ăn có hiệu ứng nhấp nháy.
4. Thêm viền (border) đẹp cho khu vực chơi.
5. Tạo màn hình tiêu đề (title screen) có hiệu ứng động.

🤖 Amazon Q: I’ll help you improve the visual interface of your Snake game with all the requested enhancements. Let me create an enhanced version with gradient background, shadow effects, blinking food, beautiful borders, and an animated title screen.

🛠️  Using tool: fs_write
 ⋮ 
 ● Path: snake_game.py

   1,  1: import pygame
   2,  2: import random
   3,  3: import sys
+      4: import math
   4,  5: 
   5,  6: # Initialize pygame
   ...
+     22: LIGHT_BLUE = (173, 216, 230)
+     23: DARK_BLUE = (25, 25, 112)
+     24: GOLD = (255, 215, 0)
+     25: SHADOW_COLOR = (0, 0, 0, 100)
+     26: BORDER_COLOR = (255, 255, 255)
+     27: FOOD_BRIGHT = (255, 100, 100)
+     28: FOOD_DARK = (200, 50, 50)

Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:

AI ngay lập tức đề xuất sửa đổi file snake_game.py, thêm vào các hằng số màu sắc mới và các hàm để vẽ hiệu ứng. Sau khi mình đồng ý, nó đã cập nhật code để:

  • Vẽ nền gradient mượt mà.
  • Thêm hiệu ứng đổ bóng 3D cho rắn.
  • Làm cho miếng mồi “tỏa sáng” và nhấp nháy.
  • Tạo màn hình tiêu đề và màn hình game over với hiệu ứng chuyên nghiệp.

Add Color

Bước 2: Thổi hồn bằng âm thanh (Sound Effects)

Một game hay không thể thiếu âm thanh. Điều thú vị là mình không muốn dùng file âm thanh có sẵn.

👨‍💻 Developer:

Thêm âm thanh vào game Snake:

1. Âm thanh khi ăn mồi (beep ngắn).
2. Âm thanh khi game over (buồn bã).
3. Nhạc nền nhẹ nhàng.
4. Âm thanh khi rắn di chuyển.
5. Nút bật/tắt âm thanh.

Hãy dùng `pygame.mixer` và **tự tạo ra các file âm thanh bằng code**.

🤖 Amazon Q: I’ll help you add sound effects to your Snake game using pygame.mixer and create simple sound files programmatically.

Đây là lúc AI thể hiện sự thông minh vượt trội. Nó không chỉ sửa file game, mà còn tạo ra một file hoàn toàn mới:

🛠️  Using tool: fs_write
 ⋮ 
 ● Path: sound_generator.py

File sound_generator.py này chứa code Python sử dụng thư viện numpy để tạo ra các sóng âm (dạng array) cho từng hiệu ứng, sau đó lưu chúng lại. Đây là một kỹ thuật lập trình âm thanh rất hay.

Sau đó, AI cập nhật snake_game.py để gọi các hàm tạo âm thanh này và tích hợp chúng vào game, kèm theo phím M để bật/tắt.

Add sound

Bước 3: Gặp lỗi và cùng AI sửa lỗi (Troubleshooting)

Trong quá trình phát triển, gặp lỗi là chuyện bình thường. Khi mình chạy game, console báo lỗi:

Error Sound

Đây là một cơ hội tuyệt vời để thử khả năng debug của Amazon Q. Mình chỉ cần copy-paste lỗi vào cho nó:

👨‍💻 Mình:

Hãy sửa lỗi này giúp tôi:
Could not initialize sounds: Array must be 2-dimensional for stereo mixer

fix sound

🤖 Amazon Q: I see the issue! The problem is with the audio array format for pygame’s sound system. Let me fix the sound generator to properly handle stereo/mono audio formats.

AI ngay lập tức đề xuất sửa lại file sound_generator.py. Nó thông minh đến mức tự thêm vào đoạn code kiểm tra xem mixer đang ở chế độ mono hay stereo, và tự động chuyển đổi cho phù hợp.

Không chỉ vậy, AI còn chủ động tạo ra một script test_sounds.py để mình có thể kiểm tra hệ thống âm thanh một cách độc lập trước khi chạy toàn bộ game.

Image description

🎉 Kết quả: Sau khi Q đã fix, mình chạy script test và mọi thứ hoạt động hoàn hảo!

Add Visual

🎓 Bài học từ quá trình này

  • Phát triển lặp: Xây dựng từng phần tính năng (đồ họa, âm thanh) dựa trên nền tảng đã có.
  • Sức mạnh của context: Cung cấp file code hiện tại giúp Q đưa ra các đề xuất sửa đổi chính xác.
  • Debug hiệu quả: Chỉ cần đưa ra thông báo lỗi, Q có thể phân tích, tìm ra nguyên nhân và đề xuất giải pháp, thậm chí còn tạo cả script để testing.

🎮 Level 2: Nâng Tầm Gameplay

Game đã đẹp và có âm thanh, giờ là lúc làm cho nó hấp dẫn và có chiều sâu hơn về lối chơi.

Bước 1: Thêm Power-ups và Chướng ngại vật

👨‍💻 Developer:

Thêm các yếu tố mới vào game:

**Power-ups (tỷ lệ xuất hiện 5%):**
- 🍒 Cherry: +20 điểm, rắn không dài ra.
- ⚡ Lightning: Tăng tốc trong 5 giây.
- 🛡️ Shield: Bất tử trong 3 giây.
- 💎 Diamond: +50 điểm và đóng băng thời gian 2 giây.

**Chướng ngại vật:**
- 🧱 Các khối tường xuất hiện ngẫu nhiên.
- 🕳️ Lỗ dịch chuyển (vào một lỗ, ra lỗ còn lại).

Hiển thị thời gian đếm ngược cho các power-up đang kích hoạt.

🤖 Amazon Q: I’ll help you add these exciting new elements to your Snake game! Let me implement the power-ups, obstacles, and timer system.

AI lại tiếp tục công việc refactor và bổ sung code. Nó tạo ra các class mới như PowerUp, Obstacle và cập nhật Game class với hàng trăm dòng code mới để quản lý tất cả logic phức tạp này, bao gồm cả hệ thống hẹn giờ và hiệu ứng hình ảnh cho từng loại.

Them power-up

Bước 2: Cải thiện trải nghiệm với “Xuyên Tường”

Cơ chế “chết khi đâm vào tường” ở phiên bản đầu tiên khá khó chịu. Mình quyết định thay đổi nó.

👨‍💻 Developer:

Cải thiện gameplay: khi rắn đi xuyên tường, nó sẽ không chết mà xuất hiện ở cạnh đối diện.

🤖 Amazon Q: *Tôi sẽ cải thiện gameplay bằng cách cho phép rắn xuyên qua tường và xuất hiện ở phía đối diện thay vì chết khi va vào tường. Đây là một tính năng rất hay để làm game thú vị hơn! *

AI nhanh chóng xác định phần code xử lý va chạm tường, xóa nó đi và thay bằng một phương thức mới tên là wrap_around_walls(). Thay đổi này nhỏ nhưng làm cho trải nghiệm chơi game mượt mà và chiến thuật hơn rất nhiều.

Xuyen Tuong

Kết quả

Image description

🎓 Bài học từ quá trình phát triển Level 2

  • Xây dựng theo lớp: Bằng cách thêm từng lớp tính năng (gameplay, power-ups) một cách có hệ thống, dự án phát triển một cách vững chắc và dễ quản lý.
  • Từ ý tưởng đến tính năng: Amazon Q giúp chuyển hóa những ý tưởng gameplay phức tạp thành code một cách nhanh chóng.

🏆 Level 3: Phát triển thêm tính năng lưu High Scores

Sau khi có một gameplay hoàn chỉnh, bước tiếp theo là tạo một hệ thống để người chơi có thể lưu lại thành tích của mình. Đây là lúc mình biến một game đơn giản thành một trải nghiệm có tính cạnh tranh và lôi cuốn hơn.

Bước 1: Thêm Bảng Xếp Hạng và Thống Kê

👨‍💻 Mình: Mình muốn game có chiều sâu hơn. Mình sẽ yêu cầu AI xây dựng một hệ thống high score đầy đủ tính năng.

> /editor

👨‍💻 Developer:

Tạo hệ thống high score hoàn chỉnh:

1. **Local storage:**
   - Save top 10 scores vào JSON file
   - Include: name, score, date, level reached

2. **Leaderboard screen:**
   - Hiển thị ranking với animation
   - Input name khi đạt high score
   - Export leaderboard to CSV

3. **Statistics:**
   - Total games played
   - Average score
   - Best streak
   - Time played

🤖 Amazon Q: Tôi sẽ tạo hệ thống high score hoàn chỉnh cho Snake game của bạn. Hãy bắt đầu với việc tạo các file cần thiết:

AI bắt đầu một cuộc “cách mạng” về kiến trúc code bằng cách tách logic ra các module riêng biệt:

🛠️  Using tool: fs_write
 ⋮ 
 ● Path: high_score_manager.py
 ● Path: leaderboard_screen.py
 ● Path: name_input_screen.py

🤖 Amazon Q giải thích:

  • high_score_manager.py (181 dòng): Module này sẽ xử lý toàn bộ logic dữ liệu: đọc/ghi file JSON, quản lý top 10, tính toán thống kê và export CSV.
  • leaderboard_screen.py (288 dòng): Module này chịu trách nhiệm hiển thị bảng xếp hạng, bao gồm animations, medals, và panel thống kê.
  • name_input_screen.py (237 dòng): Module này tạo ra một màn hình nhập tên đẹp mắt với hiệu ứng chúc mừng khi người chơi đạt high score.

Bước 2: Tích hợp vào game chính

🤖 Amazon Q tiếp tục cập nhật file game chính:

Tiếp theo, AI tích hợp các module mới này vào snake_game.py. Quá trình này bao gồm:

  • Import các class mới: HighScoreManager, LeaderboardScreen, NameInputScreen.
  • Thêm các game state mới: "leaderboard", "name_input".
  • Cập nhật event loop (handle_events) để xử lý các phím bấm mới (như L để xem leaderboard, E để export).
  • Cập nhật logic game (update) để kiểm tra high score khi game over và chuyển sang màn hình nhập tên.
  • Cập nhật hàm render (draw) để hiển thị các màn hình mới.

🤖 AI cũng không quên cập nhật các file phụ trợ:

  • requirements.txt: Được cập nhật để đảm bảo phiên bản tương thích.
  • README.md: Được bổ sung chi tiết về hệ thống high score, hướng dẫn sử dụng các tính năng mới và cấu trúc file dự án.

Bước 3: Kết quả cuối cùng

🤖 Amazon Q: Tuyệt vời! Tôi đã tích hợp thành công hệ thống high score hoàn chỉnh vào game của bạn. Hệ thống này không chỉ lưu điểm mà còn cung cấp một trải nghiệm người dùng chuyên nghiệp.

High

Status

🏆 Các tính năng High Score đã implement:🗄️ Local Storage: Tự động lưu top 10 high scores và toàn bộ thống kê vào file high_scores.jsongame_stats.json. ✅ 📊 Dynamic Leaderboard: Màn hình bảng xếp hạng với animation, huy chương (🥇, 🥈, 🥉) và panel thống kê chi tiết. ✅ 📈 Theo Dõi Thống Kê: Ghi lại tổng số game đã chơi, điểm trung bình, chuỗi thắng, tổng thời gian chơi và nhiều hơn nữa. ✅ 📤 Export ra CSV: Cho phép người chơi xuất bảng xếp hạng ra file CSV chỉ bằng một phím bấm. ✅ 🧩 Kiến Trúc Module: Tách biệt logic rõ ràng (data, UI, game logic), giúp dự án dễ dàng bảo trì và mở rộng.


📚 Level 4: Triển Khai Documentation Chuyên Nghiệp

Một dự án tốt không thể thiếu tài liệu hướng dẫn chi tiết. Đây là bước cuối cùng để biến dự án game thành một sản phẩm mã nguồn mở hoàn chỉnh, thân thiện với cả người dùng và các nhà phát triển khác.

Bước 1: Xây Dựng Trang Tài Liệu Hoàn Chỉnh

👨‍💻 Mình: Đã đến lúc hoàn thiện dự án với một bộ tài liệu đầy đủ.

> /editor

👨‍💻 Developer:

Tạo documentation hoàn chỉnh:

**Developer docs:**
- Code architecture explanation
- API documentation với Sphinx
- Contributing guidelines
- Setup development environment

**User manual:**
- Interactive tutorial in-game
- Strategy guide với screenshots
- FAQ section
- Troubleshooting guide

**Video content:**
- Screen recording của gameplay
- Development timelapse
- Tutorial videos

Tạo GitHub Pages site cho documentation.

🤖 Amazon Q: Tôi sẽ tạo documentation hoàn chỉnh cho Snake game của bạn. Hãy bắt đầu với việc tạo cấu trúc documentation và các file cần thiết

Bước 2: AI tạo hệ thống documentation

AI đã thực hiện một khối lượng công việc khổng lồ để tạo ra bộ tài liệu này:

1. 🤖 Thiết lập nền tảng Sphinx: AI tạo ra toàn bộ cấu trúc thư mục docs/ với các file cấu hình cần thiết như conf.py, index.rst, Makefile, make.bat và file CSS tùy chỉnh _static/custom.css để trang docs có giao diện mang phong cách của game.

Image description

2. 🤖 Bắt đầu viết nội dung tài liệu: AI tự động sinh ra hàng loạt file .rst với nội dung chi tiết cho từng phần:

  • User Guide: installation.rst, strategy_guide.rst, faq.rst, troubleshooting.rst.
  • Developer Docs: architecture.rst, contributing.rst, development_setup.rst.
  • Tutorials: interactive_tutorial.rst - một hướng dẫn từng bước cực kỳ chi tiết. Image description

Image description

3. 🤖 Tạo script hỗ trợ cho media và build: Để tự động hóa việc tạo media, AI đã viết các script Python:

  • scripts/generate_screenshots.py: Tự động chạy game, tạo ra các kịch bản cụ thể (ví dụ: màn hình game over, màn hình leaderboard) và chụp lại ảnh màn hình.
  • scripts/record_gameplay.py: Ghi lại video gameplay để làm video tutorial hoặc timelapse.
  • scripts/build_docs.py: Một script tổng hợp để chạy tất cả các bước: tạo media, build Sphinx docs và chuẩn bị cho deployment.

generate_screenshots

4. 🤖 Thiết lập CI/CD để tự động deploy: AI tạo file .github/workflows/docs.yml, một workflow cho GitHub Actions. Mỗi khi có commit mới vào nhánh main, workflow này sẽ tự động build toàn bộ trang docs và deploy lên GitHub Pages.

Image description

Bước 3: Kết quả cuối cùng

🤖 Amazon Q: Hệ thống documentation của bạn đã sẵn sàng. Nó không chỉ là các file văn bản, mà là một trang web hoàn chỉnh, có thể được host miễn phí trên GitHub Pages.

Image description

📖 Các thành phần của bộ Documentation:👨‍💻 Dành cho Developer:

  • Code Architecture: Giải thích sâu về cấu trúc class, luồng game state, hệ thống render.
  • API Reference: Tài liệu API được tự động sinh ra từ docstrings bằng Sphinx, chi tiết từng class và method.
  • Contributing Guide: Hướng dẫn chi tiết cách đóng góp, code style, quy trình pull request.

👤 Dành cho Người dùng:

  • Interactive Tutorial: Một guide siêu chi tiết gồm 6 bài học, từ cách di chuyển cơ bản đến chiến thuật nâng cao, có cả bài tập thực hành.
  • Strategy Guide: Phân tích chuyên sâu về cách sử dụng power-up, né chướng ngại vật và tối ưu điểm số.
  • FAQ & Troubleshooting: Giải đáp mọi thắc mắc thường gặp và hướng dẫn sửa lỗi.

🎥 Media và Tự động hóa:

  • Tự động tạo Screenshot: Script giúp tạo ra hình ảnh minh họa nhất quán cho tài liệu.
  • Tự động quay Video: Script giúp ghi lại các đoạn video gameplay cho tutorials.
  • Tự động Deploy: Nhờ GitHub Actions, trang docs sẽ luôn được cập nhật với phiên bản mới nhất của code.

🌐 Trang GitHub Pages chuyên nghiệp:

  • Giao diện được tùy chỉnh với màu sắc của game.
  • Cấu trúc điều hướng rõ ràng, dễ tìm kiếm.
  • Tối ưu cho cả desktop và mobile.

Một số hình ảnh demo screenshoot được chụp từ script generate_screenshots.py

title Screen

ui_elements

gameplay_active

obstacles_teleports

obstacles_walls

powerup_cherry_example

powerup_diamond_example

powerup_lightning_example

powerup_shield_example

game_over_screen

name_input_screen

leaderboard_screen


🎓 Tổng Kết Hành Trình Phát Triển

💡 Workflow hiệu quả với Amazon Q CLI

  1. Start Simple: Bắt đầu với một yêu cầu đơn giản (game cơ bản).
  2. Iterative Development: Xây dựng từng lớp tính năng một cách tuần tự: Giao diện → Âm thanh → Gameplay → High Score → Documentation.
  3. Trust the Tool: AI không chỉ viết code mà còn có khả năng thiết kế kiến trúc (tách module), tự động hóa (tạo script, CI/CD) và viết tài liệu.
  4. From Idea to Product: Chỉ từ các câu prompt bằng ngôn ngữ tự nhiên, mình đã đi từ một ý tưởng game đơn giản đến một sản phẩm mã nguồn mở hoàn chỉnh, có tài liệu và sẵn sàng để cộng đồng tham gia.

🚀 Quy trình phát triển hoàn chỉnh

Game cơ bản → Enhanced UI → Sound System → Advanced Features → High Scores → Documentation
     ↓           ↓             ↓              ↓                 ↓              ↓
   Working    Beautiful    Immersive    Strategic           Competitive    Professional

🎯 Những gì đã đạt được

  • 🎮 Game hoàn chỉnh với graphics, sound và gameplay phong phú
  • 🏆 Hệ thống high score chuyên nghiệp với leaderboard và thống kê
  • 📚 Documentation đầy đủ từ user guide đến developer docs
  • 🔧 CI/CD pipeline tự động deploy documentation
  • 📁 Kiến trúc modular dễ bảo trì và mở rộng

Đây chính là sức mạnh của Amazon Q CLI - từ một ý tưởng đơn giản, với những cuộc hội thoại bằng ngôn ngữ tự nhiên, mình đã có được một sản phẩm hoàn chỉnh sẵn sàng cho cộng đồng.