🤔 Anh em có bao giờ ước mình có một "cộng sự" AI ngay trong terminal không?
Thử tưởng tượng xem: thay vì phải Google "cách dùng git rebase" lần thứ 100, bạn chỉ cần gõ một câu lệnh đơn giản:
q chat "Gộp 3 commit cuối thành 1, chỉ tao cách làm với"
Tất cả nằm gọn trong Amazon Q CLI – trợ lý AI thông minh ngay trong terminal của anh em dev.
✨ Tại sao Amazon Q CLI lại "ngon"?
- 🚀 Tiết kiệm thời gian kha khá: Không cần phải
Alt+Tab
qua lại giữa terminal và trình duyệt nữa. - 🧠 Hiểu ngữ cảnh dự án (context-aware): AI đủ thông minh để biết bạn đang làm việc trong thư mục nào, với file nào, từ đó đưa ra gợi ý chính xác hơn.
- 💬 Hỏi đáp tự nhiên bằng tiếng Việt: Giao tiếp như với một người bạn, nhận về câu trả lời chi tiết, dễ hiểu.
- 🔧 Tương thích tốt với các công cụ quen thuộc: "Chơi" được với Git, Docker, AWS CLI, kubectl và nhiều hơn thế nữa.
🚀 Phần 1: Cài Đặt & Trải Nghiệm Lần Đầu
Amazon Q CLI là gì?
Nói đơn giản, Amazon Q CLI là một trợ lý AI dành cho anh em dev, tương tác trực tiếp trong command line. Thay vì phải mò mẫm trên Stack Overflow, bạn chỉ cần "chat" với nó để giải quyết vấn đề, từ việc tìm một câu lệnh shell phức tạp, debug code, cho đến viết script tự động.
Nó có thể:
- Chuyển yêu cầu tự nhiên (tiếng Việt/Anh) thành các lệnh shell, git, docker...
- Hiểu ngữ cảnh dự án để đưa ra gợi ý phù hợp.
- Trò chuyện, giải đáp thắc mắc về lập trình.
- Hỗ trợ viết code và debug.
🛠️ Cài đặt trong một nốt nhạc (Tham khảo docs)
Bước 1: Cài đặt
macOS (khuyến khích):
brew install amazon-q
Linux (Ubuntu/Debian):
wget https://desktop-release.q.us-east-1.amazonaws.com/latest/amazon-q.deb
sudo dpkg -i amazon-q.deb
Bước 2: Đăng nhập (Hoàn toàn miễn phí)
q login --license free
Lệnh này sẽ mở trình duyệt để bạn đăng nhập bằng AWS Builder ID (tài khoản này miễn phí và không cần thẻ tín dụng).
Bước 2.1 (Optional nhưng nên làm): Tắt telemetry và chia sẻ dữ liệu
Để đảm bảo Amazon Q không sử dụng dữ liệu từ terminal của bạn cho việc training model, mình khuyến khích chạy hai lệnh sau:
q settings telemetry.enabled false
q settings codeWhisperer.shareCodeWhispererContentWithAWS false
Bước 3: Bắt đầu "tám" với AI
q chat
🎉 Xong! Giờ thì hỏi AI bất cứ điều gì bạn muốn!
3 Lệnh "Tủ" Cần Nắm Vững
Lệnh | Mục Đích | Ví Dụ |
---|---|---|
q chat |
Chat chit, hỏi đáp, viết code | q chat "Viết hàm sắp xếp mảng trong Python" |
q translate |
Dịch ngôn ngữ tự nhiên ra command | q translate "tìm file .py sửa trong tuần này" |
/help |
Xem danh sách các lệnh có sẵn | Gõ /help ngay trong session chat |
💡 Phần 2: Ứng Dụng Thực Tế Hàng Ngày
🤔 Amazon Q CLI vs. Amazon Q trong IDE - Dùng cái nào, khi nào?
Cả hai đều là "anh em một nhà" nhưng phục vụ cho những mục đích khác nhau.
Amazon Q CLI (Terminal) 👍 Khi nào dùng?
- Khi bạn là "dân" terminal chính hiệu, sống và làm việc phần lớn thời gian trên command line.
- Cần "bịa" nhanh một câu lệnh shell, git, docker phức tạp.
- Đang SSH vào server và cần trợ giúp ngay tại chỗ.
- Ví dụ: "Tạo cho tôi một bash script để backup database MySQL."
Amazon Q trong IDE 👍 Khi nào dùng?
- Khi bạn đang trong luồng viết code, cần tập trung cao độ.
- Cần refactor những đoạn code lớn, phức tạp.
- Debug và viết unit test ngay trong môi trường IDE.
- Ví dụ: "Refactor class này theo design pattern MVC giùm tôi."
💼 Vài tình huống quen thuộc
🏢 Bạn là Backend Developer
> Tôi cần tạo một API endpoint để lấy danh sách user, có phân trang, dùng Python và Django.
🎓 Bạn là sinh viên đang học code
> Giải thích cho tôi sự khác biệt giữa var, let, và const trong JavaScript một cách dễ hiểu nhất.
🚀 Bạn là DevOps đang deploy ứng dụng
> Viết cho tôi một Dockerfile để đóng gói ứng dụng Python Django, có file requirements.txt nhé.
🎯 Khám phá các lệnh hay ho
Các lệnh cơ bản trong session chat
# Bắt đầu một session chat mới
q chat
# Trong lúc chat:
> /help # Xem tất cả các lệnh
> /clear # Dọn dẹp màn hình chat
> /editor # Mở editor để gõ các prompt dài, phức tạp
> /quit # Thoát khỏi session chat
Dùng q translate
- "Ma thuật" thực sự là đây
Đây là tính năng mình cực kỳ thích. Nó biến những yêu cầu đời thường thành những câu lệnh chính xác.
# Tìm file Python được sửa gần đây
q translate "tìm tất cả file Python được sửa trong tuần qua"
# Kết quả: find . -name "*.py" -mtime -7
translate
để tìm file Python đã sửa trong tuần qua
# Thao tác với Git chưa bao giờ dễ hơn
q translate "tạo branch git mới tên là 'feature/login' từ nhánh main"
# Kết quả: git checkout -b feature/login main
translate
để tạo branch Git mới, không cần nhớ lệnh
# Chạy Docker container
q translate "chạy container Docker image 'nginx' và map port 8080 của máy host vào port 80 của container"
# Kết quả: docker run -p 8080:80 nginx
translate
để tạo lệnh chạy container Docker
🔧 Phần 3: Tinh Chỉnh Nâng Cao
Quản lý Ngữ cảnh (Context) - Dạy AI "hiểu" dự án của bạn
Cung cấp Context cho AI
# Bắt đầu session chat
q chat
# "Mớm" cho AI biết về các file quan trọng trong dự án
> /context add ./requirements.txt ./snake_game.py
# Kiểm tra xem AI đang "biết" những gì
> /context show
# Xóa context để bắt đầu một chủ đề mới
> /context clear
Tại sao context
lại quan trọng đến vậy? Khi AI hiểu được cấu trúc và các thành phần chính của dự án, câu trả lời của nó sẽ không chung chung nữa mà cực kỳ chính xác và phù hợp.
Quản lý Profile - Tách biệt các dự án
Nếu bạn làm nhiều dự án cùng lúc, profile
sẽ giúp bạn giữ mọi thứ ngăn nắp.
# Tạo profile cho từng dự án
> /profile create frontend-react
> /profile create backend-python
> /profile create devops-aws
# Chuyển qua lại giữa các profile
> /profile set backend-python
# Mỗi profile có context riêng biệt, không lẫn lộn
> /context add ./main.py
<img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qvgfuvy0gdtfu2gz9n6x.png" alt="Quản lý profile">
<figcaption>Hình: Quản lý profile để tách biệt các ngữ cảnh công việc</figcaption>
Những "Chiêu" Hay Ho Khác
Các lệnh hữu ích trong session chat
Lệnh | Công Dụng | Ví dụ |
---|---|---|
/tools trust fs_write |
Cho phép AI tự động ghi file mà không cần hỏi lại. | Khi bạn muốn AI tự tạo file config, code... |
/compact |
Tóm tắt cuộc trò chuyện dài để tiết kiệm token. | Khi cuộc trò chuyện đã quá dài. |
/save session.json |
Lưu lại toàn bộ session chat. | Backup công việc đang dang dở. |
/load session.json |
Tải lại session chat đã lưu. | Tiếp tục công việc từ lần trước. |
Mẹo và thủ thuật
-
!{command}
: Chạy lệnh shell ngay trong cửa sổ chat mà không cần thoát ra. Cực kỳ tiện lợi!
> !ls -la
> !git status
-
Ctrl + J
: Mở editor để viết những prompt dài hơi, nhiều dòng. -
Ctrl + S
: Tìm kiếm nhanh trong lịch sử chat và context hiện tại.
🕹️ Phần 4: Case Study - Xây Dựng Game Rắn Săn Mồi Cùng "Đồng Nghiệp" AI
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 chiến. Bây giờ, hãy cùng mình tái hiện lại hành trình "pair-programming" với Amazon Q CLI, từ một thư mục trống đến một game Snake hoàn chỉnh.
🐣 Level 0: Nền Móng Đầu Tiên - Từ Ý Tưởng đến Game Chơi Được
Mọi chuyện bắt đầu từ một thư mục trống (mình tạo sẵn 1 file snake_game.py demo chỉ start pygame)và một ý tưởng. Mục tiêu của mình rất đơn giản: có một phiên bản game cơ bản nhất, chạy được ngay lập tức.
Bước 1: Phác thảo ý tưởng
Đầ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
Để đưa ra một yêu cầu hoàn chỉnh, mình dùng lệnh /editor
. Nó mở ra một trình soạn thảo 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.
👨💻 Mình:
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. Cửa sổ game kích thước 800x600 pixel.
2. Rắn bắt đầu với độ dài 1 khúc.
3. Điều khiển rắn bằng các phím mũi tên.
4. "Mồi" xuất hiện ngẫu nhiên.
5. Khi rắn ăn "mồi", nó dài ra và "mồi" mới xuất hiện.
6. Game kết thúc nếu rắn đâm vào tường hoặc tự cắn vào thân.
Vui lòng cung cấp toàn bộ code để 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ỉ vứt ra một cục 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. Code đượ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 chính, sự kiện, và trạng thái game. -
Class
Snake
: Xử lý logic di chuyển, ăn mồi, kiểm tra va chạm của rắn. -
Class
Food
: Chịu trách nhiệm tạo và đặt lại vị trí mồi.
Mình chỉ việc đồng ý:
Allow this action? [y/n/t]:
> y
Bước 3: Hoàn thiện "hệ sinh thái" của dự án
Một lập trình viên chuyên nghiệp biết rằng code không phải là tất cả. Và 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 easy to install the nêcsary dependencies:
🛠️ Using tool: fs_write
⋮
● Path: requirements.txt
pygame==2.5.2
🤖 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...
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:
✅ Kích thước window game 800x600 pixel.
✅ Rắn bắt đầu với 1 khúc.
✅ Điều khiển bằng phím mũi tên.
✅ "Mồi" xuất hiện ngẫu nhiên.
✅ Rắn dài ra khi ăn mồi.
✅ Phát hiện va chạm (tường và thân).
🎁 Tính năng bonus:
- Theo dõi điểm số.
- Màn hình Game Over với tùy chọn chơi lại.
- Gameplay mượt mà ở 10 FPS.
🚀 Cách chạy:
# Cài đặt dependencies
pip install -r requirements.txt
# Chạy game
python snake_game.py
💡 Điểm sáng ở đây là gì?
- Hiểu sâu bối cảnh: Chỉ từ một prompt, Q đã nắm bắt toàn bộ yêu cầu.
- 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.
-
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 ngay từ đầu. - Code chất lượng: Mã nguồn sạch, 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, nhưng giao diện còn khá "thô". 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 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.
snake_game.py
vào ngữ cảnh của Amazon Q
👨💻 Mình gõ trong editor:
Cải thiện giao diện cho game Snake của tôi:
1. Thêm background gradient chuyển từ xanh đậm đến xanh nhạt.
2. Tạo hiệu ứng đổ bóng (shadow) cho con rắn.
3. Làm cho "mồi" có hiệu ứng nhấp nháy.
4. Thêm viền (border) 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
...
+ 22: LIGHT_BLUE = (173, 216, 230)
+ 23: DARK_BLUE = (25, 25, 112)
+ 24: GOLD = (255, 215, 0)
+ 25: SHADOW_COLOR = (0, 0, 0, 100)
...
AI ngay lập tức đề xuất sửa đổi file snake_game.py
, thêm các hằng số màu sắc mới và các hàm để vẽ hiệu ứng.
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 muốn thử thách AI một chút.
👨💻 Mình:
Thêm âm thanh vào game Snake:
1. Âm thanh khi ăn mồi.
2. Âm thanh khi game over.
3. Nhạc nền.
4. Nút bật/tắt âm thanh (phím M).
Yêu cầu đặc biệt: **Không dùng file âm thanh có sẵn, hãy tự tạo ra âm thanh bằng code Python**.
🤖 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 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 mà mình không cần phải tự tìm hiểu.
sound_generator.py
để tạo âm thanh từ code
Bước 3: Gặp lỗi và cùng AI "bắt bệnh" (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:
Đây là 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:
Sửa lỗi này giúp tôi với:
Could not initialize sounds: Array must be 2-dimensional for stereo mixer
🤖 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 không chỉ sửa lỗi. Nó 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. Cực kỳ cẩn thận!
🎉 Kết quả: Sau khi Q đã fix, mình chạy lại game và mọi thứ hoạt động hoàn hảo!
🎓 Bài học từ Level 1
- Phát triển lặp: Xây dựng từng lớp 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 cực kỳ 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 nguyên nhân, đề xuất giải pháp, và thậm chí 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
👨💻 Mình:
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 class mới như PowerUp
, Obstacle
và cập nhật Game
class với logic phức tạp để quản lý tất cả, bao gồm cả hệ thống hẹn giờ và hiệu ứng hình ảnh cho từng loại.
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 khá khó chịu. Mình quyết định thay đổi nó.
👨💻 Mình:
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 và thay thế nó bằng logic mới. 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.
Kết quả
🏆 Level 3: Nâng Cấp "Pro" - Hệ Thống High Score & Bảng Xếp Hạng
Để game có tính cạnh tranh và lôi cuốn hơn, không thể thiếu hệ thống lưu điểm cao.
Bước 1: Yêu cầu hệ thống high score hoàn chỉnh
👨💻 Mình:
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:
🛠️ Using tool: fs_write
⋮
● Path: high_score_manager.py
● Path: leaderboard_screen.py
● Path: name_input_screen.py
Đây chính là tư duy của một kỹ sư có kinh nghiệm. Thay vì nhồi nhét tất cả vào một file, AI đã tách code thành các module có trách nhiệm rõ ràng.
Bước 2: Tích hợp và hoàn thiện
Sau khi tạo các module trên, AI tiếp tục cập nhật file snake_game.py
để tích hợp chúng vào luồng game chính, đồng thời cập nhật cả README.md
để hướng dẫn về các tính năng mới. 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. 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 rất chuyên nghiệp.
🏆 Các tính năng High Score đã implement:
✅ Lưu trữ Local: Tự động lưu top 10 điểm và thống kê vào file JSON.
✅ Leaderboard Động: Màn hình bảng xếp hạng với huy chương (🥇, 🥈, 🥉).
✅ Theo Dõi Thống Kê: Ghi lại lịch sử chơi game chi tiết.
✅ Export ra CSV: Xuất bảng xếp hạng 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ễ bảo trì và mở rộng.
📚 Level 4: Bước Cuối Cùng - Hoàn Thiện Documentation Như Dân Chuyên
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 thành một sản phẩm mã nguồn mở hoàn chỉnh.
Bước 1: Yêu cầu bộ tài liệu đầy đủ
👨💻 Mình:
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ồ:
-
Thiết lập nền tảng Sphinx: Tạo toàn bộ cấu trúc thư mục
docs/
với các file cấu hình. -
Tự động viết nội dung: Sinh ra hàng loạt file
.rst
với nội dung chi tiết cho từng phần. -
Tạo script hỗ trợ: Viết script Python (
scripts/generate_screenshots.py
) để tự động chạy game và chụp lại các màn hình cần thiết để minh họa. -
Thiết lập CI/CD: Tạo file
.github/workflows/docs.yml
để tự động build và deploy tài liệu lên GitHub Pages mỗi khi có commit mới.
Bước 3: Thành quả không tưở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.
📖 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
🎓 Tổng Kết & Đúc Rút Kinh Nghiệm
Qua hành trình này, mình đã hình thành một workflow làm việc cực kỳ hiệu quả với Amazon Q CLI:
- Bắt đầu đơn giản: Khởi đầu với một yêu cầu cốt lõi.
- Phát triển lặp: 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.
- Tin tưởng vào AI: Đừng chỉ xem nó là công cụ viết code. Hãy giao cho nó cả việc thiết kế kiến trúc, tự động hóa và viết tài liệu.
- Từ ý tưởng đến sản phẩm: Chỉ từ những cuộc hội thoại bằng ngôn ngữ tự nhiên, mình đã đi từ một thư mục trống đến một sản phẩm mã nguồn mở hoàn chỉnh.
Đây không chỉ là một trợ lý, mà thực sự là một "đồng nghiệp" AI đắc lực. Amazon Q CLI đã thay đổi hoàn toàn cách mình tiếp cận các dự án cá nhân, giúp mình hiện thực hóa ý tưởng nhanh hơn bao giờ hết.
Chúc anh em cài đặt thành công và có những trải nghiệm thú vị
Top comments (0)