20 Prompt Sát Thủ Cho Dân IT & Lập Trình Viên: Pair Programming Đỉnh Cao

Coding and IT AI Prompts

Ảnh minh hoạ bởi Unsplash

Có một sai lầm chết người mà nhiều Junior Developer (Lập trình viên mới) hay mắc phải khi dùng AI: Bê nguyên một mớ yêu cầu mơ hồ ném vào ChatGPT và mong đợi nó nhả ra đoạn code hoàn hảo chạy được ngay. Kết quả là gì? Code chạy đầy lỗi (bug), không đúng Design Pattern, và cuối cùng bạn mất nhiều thời gian để Debug phần code của AI hơn là tự tay viết từ đầu.

AI như GPT-4 hay Claude Opus là những cỗ máy viết code vĩ đại nhất, nhưng chúng cần được định hướng bởi một Tư duy Kiến trúc (Architectural Thinking) rõ ràng. Bạn phải thiết lập cho nó bối cảnh hệ thống, framework đang dùng, các quy tắc bảo mật và phong cách code (Clean Code, SOLID).

Bộ 20 Prompt dưới đây không dành cho những người học lướt. Chúng là "vũ khí bí mật" của các Senior Engineer dùng để tối ưu năng suất, tự động hóa Unit Test, và refactor những đoạn code bốc mùi (Code Smells). Hãy sao chép và biến AI thành người đồng cấp (Pair-programmer) đáng gờm nhất của bạn.

Nhóm 1: System Design & Kiến trúc Phần mềm (Architecture)

Đừng bắt AI viết code vội, hãy bắt nó thiết kế hệ thống trước. Một bản thiết kế tồi sẽ dẫn đến một đống code rác.

📌 Prompt 1: Thiết kế Kiến trúc Hệ thống (System Architecture Blueprint)

Bạn là Software Architect (Kiến trúc sư phần mềm) kỳ cựu với chuyên môn sâu về Microservices và Cloud AWS. Mục tiêu: Lập bản vẽ thiết kế hệ thống cấp cao (High-Level Design). Bối cảnh: Tôi cần xây dựng một hệ thống [Ứng dụng đặt đồ ăn trực tuyến (Food Delivery App) tương tự GrabFood]. Dự kiến Traffic: 1 triệu MAU (Người dùng hàng tháng), cao điểm vào 11h-13h. Yêu cầu: 1. Xác định các Core Services (Dịch vụ cốt lõi: Order, User, Restaurant, Payment). 2. Lựa chọn Database phù hợp cho TỪNG service (PostgreSQL vs MongoDB) và giải thích lý do (ACID hay Eventual Consistency). 3. Thiết kế luồng Message Queue (Dùng Kafka hay RabbitMQ) để xử lý bất đồng bộ khi đơn hàng tăng vọt. 4. Trình bày bằng văn bản có cấu trúc rõ ràng, kèm các điểm tắc nghẽn (Bottlenecks) tiềm ẩn.

📌 Prompt 2: Lựa chọn Tech Stack theo Constraint

Bạn là Tech Lead của một Startup. Mục tiêu: Đề xuất Tech Stack (Công nghệ) toàn diện cho dự án. Bối cảnh: Chúng tôi là một Startup 3 người. Cần làm gấp một [Sàn giao dịch NFT] trong vòng 1 tháng. Ràng buộc (Constraint): Ngân sách cực thấp, cần ra mắt MVP cực nhanh, team thiên về JS/TS, không có DevOps cứng. Yêu cầu: 1. Frontend (Framework nào? Tại sao không dùng cái kia?) 2. Backend (Node.js/Go/Python?) 3. Database & Hosting (Nên dùng Supabase/Firebase hay tự host AWS?) 4. Hãy đánh đổi (Trade-off) rõ ràng giữa "Tốc độ phát triển" (Dev Velocity) và "Khả năng mở rộng tương lai" (Scalability).

📌 Prompt 3: Phân tích & Lên luồng dữ liệu (Data Flow) ERD

Bạn là một Chuyên gia Database Administrator (DBA). Mục tiêu: Thiết kế Schema Database và phân tích xử lý Cạnh tranh (Concurrency). Bối cảnh: Tôi cần thiết kế Schema cho Database của một [Hệ thống quản lý Thư viện mượn trả sách]. Yêu cầu: 1. Định nghĩa các Bảng (Tables) cốt lõi (User, Book, Borrow_Record, Category). 2. Cung cấp mã giả (Pseudocode) chuẩn Mermaid.js để tôi có thể render ra biểu đồ ER (Entity Relationship Diagram) ngay lập tức. 3. Trong biểu đồ, phải ghi rõ kiểu dữ liệu (Data types), Khóa chính (PK), Khóa ngoại (FK) và loại quan hệ (1-n, n-n). 4. Phân tích cách xử lý bài toán Cạnh tranh (Concurrency): 2 người cùng click mượn 1 cuốn sách cuối cùng thì xử lý lock database như thế nào?

📌 Prompt 4: API Design chuẩn RESTful

Bạn là chuyên gia API Design. Mục tiêu: Thiết kế bộ API RESTful cho một module hệ thống. Bối cảnh: Hãy thiết kế bộ API cho module [Quản lý Giỏ hàng (Cart) trong E-commerce]. Yêu cầu: 1. Liệt kê 5 Endpoint chính (Thêm, Xóa, Sửa số lượng, Xem giỏ, Clear). 2. Với mỗi Endpoint, ghi rõ: HTTP Method, URL Path, Request Body (JSON payload), và Response chuẩn (Bao gồm Status Codes 200, 400, 401, 404). 3. Hướng dẫn thiết kế API này theo chuẩn Idempotent (Nếu mạng chập chờn client gửi Request "Thêm 1 cái áo" 2 lần thì server xử lý sao để không bị cộng thành 2 cái)?

📌 Prompt 5: Review & Phản biện Ý tưởng (Devil's Advocate in Tech)

Bạn là một Principal Engineer cực kỳ khó tính. Mục tiêu: Đóng vai "Người phản biện" để chỉ trích gay gắt ý tưởng kiến trúc. Bối cảnh: Ý tưởng kiến trúc của tôi: [Dùng Redis để lưu trữ toàn bộ trạng thái Session và Giỏ hàng của người dùng. Không lưu vào DB vật lý để tối ưu tốc độ]. Yêu cầu: 1. Nêu ra 3 thảm họa có thể xảy ra ở production với ý tưởng này (Ví dụ: Redis bị crash/eviction policy thì sao?). 2. Gợi ý cho tôi giải pháp Fallback (Dự phòng) an toàn hơn nhưng vẫn đảm bảo được hiệu năng cao.

Nhóm 2: Code Generation (Tạo Mã Sinh Học Tối Ưu)

Đừng bảo AI "viết code". Hãy bảo nó "viết code theo tiêu chuẩn công nghiệp (Production-ready)".

📌 Prompt 6: Viết hàm/Component cực sâu với Constraints

Bạn là một Senior Frontend Engineer (hoặc Backend Engineer tùy ngữ cảnh). Mục tiêu: Viết một Component/Hàm cực sâu với các ràng buộc khắt khe. Bối cảnh: Ngôn ngữ: [TypeScript / React]. Yêu cầu viết một Component [Custom Search Bar có tính năng Autocomplete và Debounce]. Yêu cầu: 1. Không dùng thư viện ngoài (No external libraries như Lodash). Tự viết hàm debounce. 2. Áp dụng nguyên tắc Clean Code: Tên biến phải có ý nghĩa (Descriptive). 3. Tuân thủ Type-safety (Khai báo Interface/Type đầy đủ, tuyệt đối KHÔNG dùng 'any'). 4. Xử lý tình huống Race Condition (Khi gõ "A" rồi gõ "B", nếu API của "A" trả về chậm hơn "B" thì kết quả hiện lên phải là của "B"). 5. Chỉ in ra code, không giải thích dài dòng.

📌 Prompt 7: Chuyển đổi ngôn ngữ/Framework (Transpilation)

Bạn là một Chuyên gia Lập trình Đa ngôn ngữ (Polyglot Developer). Mục tiêu: Chuyển đổi ngôn ngữ/Framework (Transpilation) cho một đoạn code. Bối cảnh: Đây là một đoạn code xử lý thuật toán phức tạp được viết bằng [Python]: [Dán đoạn code Python]. Yêu cầu: 1. Chuyển đổi nguyên bản đoạn code này sang ngôn ngữ [Golang]. Giữ nguyên logic cốt lõi. 2. Chuyển hóa các cấu trúc dữ liệu Python (như Dictionary, List comprehension) sang cú pháp chuẩn Idiomatic Go (Map, Slice, For loop). 3. Xử lý lỗi (Error handling) chuẩn Go thay vì Try-Catch. 4. Viết kèm một hàm `main()` ngắn để test kết quả đầu ra.

📌 Prompt 8: Tạo Boilerplate theo Design Pattern

Bạn là một Software Architect (Kiến trúc sư phần mềm). Mục tiêu: Tạo Boilerplate Code chuẩn theo Design Pattern. Bối cảnh: Tôi cần khởi tạo cấu trúc cho một [Service Xử lý Thanh Toán (Payment Service)]. Ngôn ngữ: [Node.js/TypeScript]. Mục đích là hệ thống có thể dễ dàng cắm (plug-in) các cổng thanh toán khác nhau (Momo, ZaloPay, Stripe) mà không cần sửa code cũ (Nguyên tắc Open-Closed). Yêu cầu: 1. Áp dụng nghiêm ngặt Design Pattern [Factory Method và Strategy Pattern]. 2. Viết cấu trúc các Class/Interface. 3. Chỉ cần khung sườn (skeleton) và comment giải thích, không cần viết ruột xử lý logic gọi API thật.

📌 Prompt 9: Viết SQL Query nâng cao

Bạn là một Chuyên gia Database (DBA) và SQL Master. Mục tiêu: Viết một SQL Query nâng cao. Bối cảnh: Tôi đang dùng [MySQL 8.0]. Bảng 1: `Employees` (id, name, department_id, salary). Bảng 2: `Departments` (id, name). Bài toán kinh doanh: Tìm ra 3 nhân viên có lương CAO NHẤT trong MỖI phòng ban. Nếu có người lương bằng nhau thì ưu tiên người có `id` nhỏ hơn. Yêu cầu: 1. Viết code hoàn chỉnh giải quyết bài toán. 2. Phải sử dụng Window Functions (`DENSE_RANK()` hoặc `ROW_NUMBER()`). 3. Dùng CTE (Common Table Expression) để code dễ đọc. Không dùng Sub-query lồng nhau làm giảm hiệu suất. 4. Giải thích ngắn gọn chiến lược dùng hàm Window.

📌 Prompt 10: Xây dựng Regular Expression (Regex) không lỗi

Bạn là một Chuyên gia Regex (Regular Expression Expert). Mục tiêu: Xây dựng một chuỗi Regex phức tạp không lỗi. Bối cảnh: Tôi cần một chuỗi Regex dùng trong Javascript để Validate [Mật khẩu người dùng]. Yêu cầu: 1. Tuân thủ ràng buộc: - Độ dài từ 8 đến 32 ký tự. - Có ít nhất 1 chữ hoa, 1 chữ thường, 1 số. - BẮT BUỘC phải chứa ít nhất 1 ký tự đặc biệt: `@ $ ! % * ? & #`. - Tuyệt đối không cho phép chứa khoảng trắng. 2. Cung cấp chuỗi Regex tối ưu. 3. Giải thích TỪNG PHẦN (Lookahead `(?=...)`) bằng ngôn ngữ loài người. 4. Cung cấp 3 string Test Pass và 3 string Test Fail.

Nhóm 3: Debugging & Refactoring (Gỡ Lỗi & Tái Cấu Trúc)

Biến AI thành kính lúp phát hiện những dòng code "thúi" và những lỗ hổng bảo mật mà mắt thường bỏ qua.

📌 Prompt 11: Khám nghiệm tử thi lỗi (Root Cause Debugging)

Bạn là một Senior Backend Developer cực kỳ nhạy bén trong Debugging. Mục tiêu: Khám nghiệm tử thi lỗi (Root Cause Debugging) từ log. Bối cảnh: Ứng dụng [Spring Boot Java] của tôi vừa bị Crash trên Production. Dưới đây là phần Stack Trace (Log lỗi): [Dán Error Log dài thòng lòng]. Yêu cầu: 1. Xác định ngay lập tức dòng code hoặc nguyên nhân CỐT LÕI (Root Cause) gây ra lỗi `NullPointerException` hoặc `OOM`. Đừng dịch nguyên văn log, hãy chỉ ra bản chất. 2. Giải thích tại sao lỗi này ở dưới local lúc test không bị mà lên Prod lại bị? 3. Viết lại đoạn code Fix lỗi đó an toàn nhất.

📌 Prompt 12: Refactor Code bốc mùi (Clean Code/SOLID)

Bạn là một Chuyên gia Clean Code và Refactoring. Mục tiêu: Tái cấu trúc (Refactor) lại đoạn code vi phạm SOLID. Bối cảnh: Đoạn code [C# / PHP] sau đây được viết bởi một Junior Dev. Nó chạy được, nhưng vi phạm nghiêm trọng các nguyên tắc SOLID và có quá nhiều câu lệnh if-else lồng nhau (Arrow Anti-Pattern). [Dán đoạn code thảm họa]. Yêu cầu: 1. Tách hàm lớn thành các hàm nhỏ (Extract methods). 2. Xóa bỏ chuỗi if-else bằng cách dùng Early Return (Guard Clauses) hoặc Polymorphism/Dictionary. 3. Đặt lại tên biến cho rõ nghĩa. 4. So sánh độ phức tạp thời gian (Time Complexity) trước và sau khi refactor.

📌 Prompt 13: Review Security & Lỗ hổng bảo mật

Bạn là một chuyên gia CyberSecurity (Bảo mật An toàn thông tin) chuẩn OWASP Top 10. Mục tiêu: Audit (Kiểm toán bảo mật) một đoạn code chuẩn bị deploy. Bối cảnh: Tôi chuẩn bị deploy đoạn code xử lý File Upload và Database Query này: [Dán code]. Yêu cầu: 1. Tìm ra các lỗ hổng tiềm ẩn: SQL Injection, XSS (Cross-Site Scripting), Path Traversal, hoặc IDOR. 2. Với mỗi lỗ hổng tìm thấy, cung cấp đoạn code khai thác (Exploit Code) mà Hacker có thể dùng. 3. Hướng dẫn tôi cách Fix triệt để.

📌 Prompt 14: Tối ưu hiệu năng & Độ phức tạp thuật toán (Big O)

Bạn là một Chuyên gia Tối ưu hóa Thuật toán (Algorithm Optimizer). Mục tiêu: Tối ưu hiệu năng & Độ phức tạp thuật toán (Big O). Bối cảnh: Hàm [Javascript/Python] sau đây chạy rất chậm khi mảng dữ liệu đầu vào lên tới 100,000 phần tử. [Dán đoạn code có vòng lặp lồng nhau O(n^2)]. Yêu cầu: 1. Phân tích độ phức tạp thời gian (Big O Time Complexity) và không gian (Space Complexity) của đoạn code gốc. 2. Viết lại hàm này sao cho giảm độ phức tạp xuống O(n) hoặc O(n log n). Gợi ý: Sử dụng Hash Map (Object/Dict) để đánh đổi không gian lấy thời gian (Time-Space Tradeoff). 3. Chèn comment giải thích thuật toán mới.

📌 Prompt 15: Dịch Code thành Tài liệu (Documentation)

Bạn là một Technical Writer giỏi lập trình. Mục tiêu: "Dịch ngược" Code thành Tài liệu (Documentation). Bối cảnh: Tôi phải tiếp nhận một dự án Legacy (Cũ rích) từ một dev đã nghỉ việc. Không có comment nào trong code. Đây là một Class xử lý nghiệp vụ rất dài: [Dán mã nguồn]. Yêu cầu: 1. Khái quát nó đang làm nhiệm vụ gì ở tầng Business Logic. 2. Tự động sinh ra tài liệu JSDoc/Docstring cho từng hàm, mô tả rõ Parameters (Đầu vào) và Returns (Đầu ra). 3. Đưa ra Cảnh báo (Warning) nếu bạn thấy một hàm có chứa "Side Effect" ngầm (Làm thay đổi biến toàn cục hoặc mutate tham số).

Nhóm 4: DevOps, Testing & CI/CD

Viết code xong mới chỉ đi được nửa quãng đường. Nửa còn lại là làm sao để code chạy mượt mà trên Server mà không làm sập hệ thống.

📌 Prompt 16: Tự động sinh Unit Test siêu ngách (Edge Cases)

Bạn là một Software QA/Tester Engineer cấp cao. Mục tiêu: Tự động sinh Unit Test bao phủ siêu ngách (Edge Cases). Bối cảnh: Đây là một hàm [Tính toán giỏ hàng áp dụng mã giảm giá]: [Dán code hàm]. Yêu cầu: 1. Viết bộ Unit Test bằng framework [Jest / PyTest / JUnit]. Đừng chỉ viết "Happy Path" (Trường hợp lý tưởng). 2. Brainstorm 5 "Edge Cases" (Trường hợp ngoại lệ). Ví dụ: Mã giảm giá hết hạn, Tổng tiền giỏ hàng bị âm, Truyền vào số thực (Float) gây sai số. 3. Cung cấp toàn bộ Code Test Coverage 100% cho các cases trên. Dùng Mocking nếu hàm có gọi tới External API.

📌 Prompt 17: Viết file Dockerfile & Docker Compose chuẩn Production

Bạn là một DevOps Engineer dạn dày kinh nghiệm. Mục tiêu: Viết file Dockerfile & Docker Compose chuẩn Production. Bối cảnh: Tôi cần Dockerize một ứng dụng [Node.js Express backend + PostgreSQL database]. Yêu cầu: 1. Viết 1 file `Dockerfile` cho Backend và 1 file `docker-compose.yml` để chạy cả 2 dịch vụ. 2. Dockerfile phải dùng Multi-stage build để giảm kích thước Image (Dùng Alpine linux). Có cơ chế xử lý Layer Caching để npm install không bị chạy lại từ đầu vô cớ. 3. Set biến môi trường (ENV) an toàn. 4. Trong file Compose, cấu hình Volumes để DB không bị mất data, và thêm Healthcheck cho DB trước khi start Backend.

📌 Prompt 18: Lên luồng CI/CD Pipeline (GitHub Actions)

Bạn là một Kỹ sư CI/CD Chuyên nghiệp. Mục tiêu: Lên luồng CI/CD Pipeline bằng GitHub Actions. Bối cảnh: Tôi muốn tự động hóa quy trình Deploy lên máy chủ bằng GitHub Actions cho dự án [React Frontend]. Pipeline chạy khi Push hoặc Merge vào nhánh `main`. Yêu cầu: Viết file YAML workflow hoàn chỉnh gồm các bước: 1. Checkout code. 2. Install dependencies (có caching). 3. Chạy Linter và Unit Test. Nếu Test fail thì BẮT BUỘC dừng Pipeline lại. 4. Build dự án (Tạo thư mục dist/build). 5. Deploy (Copy) thư mục build đó lên AWS S3 hoặc thông qua SSH lên server Ubuntu (Dùng GitHub Secrets để bảo mật thông tin).

📌 Prompt 19: Viết kịch bản Regex cho Nginx Config / CORS

Bạn là một Chuyên gia System Admin (Quản trị Hệ thống). Mục tiêu: Viết kịch bản Regex cho Nginx Config xử lý lỗi CORS. Bối cảnh: Tôi đang bị lỗi CORS policy trên Production. Frontend ở `https://app.domain.com` gọi tới Backend ở `https://api.domain.com`. Yêu cầu: 1. Viết cấu hình Reverse Proxy bằng `nginx.conf` để xử lý triệt để lỗi này. 2. Cấu hình phải bao gồm Header `Access-Control-Allow-Origin` (chỉ cho phép đích danh domain frontend, không dùng ký tự `*`). 3. Bắt và xử lý được Preflight Request (phương thức OPTIONS). 4. Hướng dẫn tôi nên đặt file config này ở thư mục nào trên Ubuntu.

📌 Prompt 20: Tối ưu Bash Script tự động hóa Linux

Bạn là một Chuyên gia Linux SysAdmin. Mục tiêu: Viết một Bash Script tự động hóa Linux (Cronjob). Bối cảnh: Tôi quản lý một VPS Linux Ubuntu 22.04 và cần tự động chạy một số tác vụ vào lúc 2h sáng mỗi ngày. Yêu cầu: 1. Backup toàn bộ cơ sở dữ liệu MySQL (Tên DB là `my_app`). Nén file `.sql` thành định dạng `.tar.gz` kèm theo [Ngày_Tháng_Năm] trong tên file. 2. Xóa các file backup cũ hơn 7 ngày để chống đầy ổ cứng (Dùng lệnh `find`). 3. Nếu quá trình backup thất bại, dùng `curl` bắn một thông báo qua API của Telegram Bot (Cung cấp template cú pháp để tôi điền Token). 4. Viết Script hoàn chỉnh và hướng dẫn cách phân quyền thực thi `chmod`.

Hành động ngay: Đang kẹt ở một con Bug 3 ngày chưa fix xong? Copy ngay Prompt số 11 (Root Cause Debugging), ném toàn bộ log lỗi của bạn vào và xem chuyên gia Backend ảo phân tích nguyên nhân gốc rễ chỉ trong 5 giây.

Lời kết: AI không sinh ra để lấy đi công việc của Lập trình viên. AI sinh ra để triệt tiêu những công việc lặp đi lặp lại nhàm chán (Boilerplate, Config, Test coverage), trả lại cho bạn không gian để tư duy về Kiến trúc (Architecture) và Logic cốt lõi. Hãy nhớ: Ai nắm vững Prompt, người đó là Tech Lead.

Code giỏi chưa đủ, bạn còn phải biết cách quản lý một đội ngũ. Đừng bỏ lỡ bài viết: Bài 4: 20 Prompt Thực Chiến Cho Quản Trị & Vận Hành Doanh Nghiệp.

Đăng nhận xét

Mới hơn Cũ hơn