feat: translate top 5 development skills (clean-code, TS, React, Python, Node)
This commit is contained in:
200
docs/vietnamese/skills/clean-code/SKILL.vi.md
Normal file
200
docs/vietnamese/skills/clean-code/SKILL.vi.md
Normal file
@@ -0,0 +1,200 @@
|
||||
---
|
||||
name: clean-code
|
||||
description: Tiêu chuẩn code thực dụng - súc tích, trực tiếp, không kỹ thuật quá mức, không có comments thừa thãi.
|
||||
allowed-tools: Read, Write, Edit
|
||||
version: 2.0
|
||||
priority: CRITICAL
|
||||
---
|
||||
|
||||
# Clean Code - Tiêu chuẩn Coding AI Thực dụng
|
||||
|
||||
> **KỸ NĂNG QUAN TRỌNG** - Hãy **súc tích, trực tiếp và tập trung vào giải pháp**.
|
||||
|
||||
---
|
||||
|
||||
## Các Nguyên tắc Cốt lõi
|
||||
|
||||
| Nguyên tắc | Quy tắc |
|
||||
|-----------|------|
|
||||
| **SRP** | Trách nhiệm Duy nhất (Single Responsibility) - mỗi hàm/lớp làm MỘT việc |
|
||||
| **DRY** | Đừng Lặp lại Chính mình (Don't Repeat Yourself) - trích xuất phần trùng lặp, tái sử dụng |
|
||||
| **KISS** | Giữ nó Đơn giản (Keep It Simple) - giải pháp đơn giản nhất có thể hoạt động |
|
||||
| **YAGNI** | Bạn Sẽ Không Cần Nó Đâu (You Aren't Gonna Need It) - đừng xây dựng tính năng chưa dùng đến |
|
||||
| **Hướng đạo sinh** | Để lại code sạch hơn lúc bạn tìm thấy nó |
|
||||
|
||||
---
|
||||
|
||||
## Quy tắc Đặt tên
|
||||
|
||||
| Thành phần | Quy ước |
|
||||
|---------|------------|
|
||||
| **Biến** | Bộc lộ ý định: `userCount` không phải `n` |
|
||||
| **Hàm** | Động từ + danh từ: `getUserById()` không phải `user()` |
|
||||
| **Booleans** | Dạng câu hỏi: `isActive`, `hasPermission`, `canEdit` |
|
||||
| **Hằng số** | SCREAMING_SNAKE: `MAX_RETRY_COUNT` |
|
||||
|
||||
> **Quy tắc:** Nếu bạn cần comment để giải thích tên, hãy đổi tên nó.
|
||||
|
||||
---
|
||||
|
||||
## Quy tắc Hàm (Function)
|
||||
|
||||
| Quy tắc | Mô tả |
|
||||
|------|-------------|
|
||||
| **Nhỏ** | Tối đa 20 dòng, lý tưởng là 5-10 dòng |
|
||||
| **Một việc** | Làm một việc, làm tốt việc đó |
|
||||
| **Một cấp độ** | Một cấp độ trừu tượng trên mỗi hàm |
|
||||
| **Ít tham số** | Tối đa 3 tham số, ưu tiên 0-2 |
|
||||
| **Không tác dụng phụ** | Không thay đổi đầu vào một cách bất ngờ |
|
||||
|
||||
---
|
||||
|
||||
## Cấu trúc Code
|
||||
|
||||
| Mẫu | Áp dụng |
|
||||
|---------|-------|
|
||||
| **Guard Clauses** | Return sớm cho các trường hợp biên |
|
||||
| **Phẳng > Lồng nhau** | Tránh lồng nhau sâu (tối đa 2 cấp) |
|
||||
| **Kết hợp (Composition)** | Các hàm nhỏ kết hợp lại với nhau |
|
||||
| **Đặt cùng nhau (Colocation)** | Giữ code liên quan ở gần nhau |
|
||||
|
||||
---
|
||||
|
||||
## Phong cách Coding của AI
|
||||
|
||||
| Tình huống | Hành động |
|
||||
|-----------|--------|
|
||||
| Người dùng yêu cầu tính năng | Viết nó trực tiếp |
|
||||
| Người dùng báo lỗi | Sửa nó, đừng giải thích lòng vòng |
|
||||
| Không rõ yêu cầu | Hỏi, đừng giả định |
|
||||
|
||||
---
|
||||
|
||||
## Anti-Patterns (KHÔNG NÊN)
|
||||
|
||||
| ❌ Mẫu | ✅ Cách sửa |
|
||||
|-----------|-------|
|
||||
| Comment mỗi dòng | Xóa comment hiển nhiên |
|
||||
| Helper cho code 1 dòng | Viết thẳng code (Inline) |
|
||||
| Factory cho 2 objects | Khởi tạo trực tiếp |
|
||||
| utils.ts với 1 hàm | Đặt code ở nơi sử dụng |
|
||||
| "Đầu tiên chúng ta import..." | Chỉ viết code thôi |
|
||||
| Lồng nhau sâu | Dùng Guard clauses |
|
||||
| Số ma thuật (Magic numbers) | Dùng hằng số có tên |
|
||||
| Hàm thần thánh (God functions) | Tách nhỏ theo trách nhiệm |
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Trước khi Sửa BẤT KỲ File nào (HÃY NGHĨ TRƯỚC!)
|
||||
|
||||
**Trước khi thay đổi một file, hãy tự hỏi:**
|
||||
|
||||
| Câu hỏi | Tại sao |
|
||||
|----------|-----|
|
||||
| **Cái gì import file này?** | Chúng có thể bị hỏng |
|
||||
| **File này import cái gì?** | Thay đổi Interface |
|
||||
| **Test nào bao phủ file này?** | Test có thể fail |
|
||||
| **Đây có phải component chia sẻ?** | Nhiều nơi bị ảnh hưởng |
|
||||
|
||||
**Kiểm tra Nhanh:**
|
||||
```
|
||||
File cần sửa: UserService.ts
|
||||
└── Ai import nó? → UserController.ts, AuthController.ts
|
||||
└── Họ có cần thay đổi không? → Kiểm tra chữ ký hàm (function signatures)
|
||||
```
|
||||
|
||||
> 🔴 **Quy tắc:** Sửa file + tất cả các file phụ thuộc trong CÙNG một task.
|
||||
> 🔴 **Không bao giờ để lại import hỏng hoặc thiếu cập nhật.**
|
||||
|
||||
---
|
||||
|
||||
## Tóm tắt
|
||||
|
||||
| Nên | Không Nên |
|
||||
|----|-------|
|
||||
| Viết code trực tiếp | Viết hướng dẫn (tutorials) |
|
||||
| Để code tự tài liệu hóa | Thêm comment hiển nhiên |
|
||||
| Sửa lỗi ngay lập tức | Giải thích cách sửa trước |
|
||||
| Inline những thứ nhỏ | Tạo file không cần thiết |
|
||||
| Đặt tên rõ ràng | Dùng viết tắt |
|
||||
| Giữ hàm nhỏ | Viết hàm dài hơn 100 dòng |
|
||||
|
||||
> **Hãy nhớ: Người dùng muốn code chạy được, không phải một bài học lập trình.**
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Tự Kiểm tra Trước khi Hoàn thành (BẮT BUỘC)
|
||||
|
||||
**Trước khi nói "nhiệm vụ hoàn tất", hãy xác minh:**
|
||||
|
||||
| Kiểm tra | Câu hỏi |
|
||||
|-------|----------|
|
||||
| ✅ **Đạt mục tiêu?** | Tôi đã làm chính xác những gì người dùng yêu cầu chưa? |
|
||||
| ✅ **File đã sửa?** | Tôi đã sửa tất cả file cần thiết chưa? |
|
||||
| ✅ **Code chạy được?** | Tôi đã test/xác minh thay đổi chưa? |
|
||||
| ✅ **Không lỗi?** | Lint và TypeScript pass chứ? |
|
||||
| ✅ **Không quên gì?** | Có bỏ sót trường hợp biên nào không? |
|
||||
|
||||
> 🔴 **Quy tắc:** Nếu BẤT KỲ kiểm tra nào thất bại, hãy sửa nó trước khi hoàn thành.
|
||||
|
||||
---
|
||||
|
||||
## Script Xác minh (BẮT BUỘC)
|
||||
|
||||
> 🔴 **QUAN TRỌNG:** Mỗi agent CHỈ chạy script thuộc skill của mình sau khi hoàn thành công việc.
|
||||
|
||||
### Ánh xạ Agent → Script
|
||||
|
||||
| Agent | Script | Lệnh |
|
||||
|-------|--------|---------|
|
||||
| **frontend-specialist** | UX Audit | `python ~/.claude/skills/frontend-design/scripts/ux_audit.py .` |
|
||||
| **frontend-specialist** | A11y Check | `python ~/.claude/skills/frontend-design/scripts/accessibility_checker.py .` |
|
||||
| **backend-specialist** | API Validator | `python ~/.claude/skills/api-patterns/scripts/api_validator.py .` |
|
||||
| **mobile-developer** | Mobile Audit | `python ~/.claude/skills/mobile-design/scripts/mobile_audit.py .` |
|
||||
| **database-architect** | Schema Validate | `python ~/.claude/skills/database-design/scripts/schema_validator.py .` |
|
||||
| **security-auditor** | Security Scan | `python ~/.claude/skills/vulnerability-scanner/scripts/security_scan.py .` |
|
||||
| **seo-specialist** | SEO Check | `python ~/.claude/skills/seo-fundamentals/scripts/seo_checker.py .` |
|
||||
| **seo-specialist** | GEO Check | `python ~/.claude/skills/geo-fundamentals/scripts/geo_checker.py .` |
|
||||
| **performance-optimizer** | Lighthouse | `python ~/.claude/skills/performance-profiling/scripts/lighthouse_audit.py <url>` |
|
||||
| **test-engineer** | Test Runner | `python ~/.claude/skills/testing-patterns/scripts/test_runner.py .` |
|
||||
| **test-engineer** | Playwright | `python ~/.claude/skills/webapp-testing/scripts/playwright_runner.py <url>` |
|
||||
| **Mọi agent** | Lint Check | `python ~/.claude/skills/lint-and-validate/scripts/lint_runner.py .` |
|
||||
| **Mọi agent** | Type Coverage | `python ~/.claude/skills/lint-and-validate/scripts/type_coverage.py .` |
|
||||
| **Mọi agent** | i18n Check | `python ~/.claude/skills/i18n-localization/scripts/i18n_checker.py .` |
|
||||
|
||||
> ❌ **SAI:** `test-engineer` chạy `ux_audit.py`
|
||||
> ✅ **ĐÚNG:** `frontend-specialist` chạy `ux_audit.py`
|
||||
|
||||
---
|
||||
|
||||
### 🔴 Xử lý Đầu ra Script (ĐỌC → TÓM TẮT → HỎI)
|
||||
|
||||
**Khi chạy một script xác minh, bạn PHẢI:**
|
||||
|
||||
1. **Chạy script** và bắt TOÀN BỘ đầu ra
|
||||
2. **Phân tích đầu ra** - xác định lỗi, cảnh báo và cái đã pass
|
||||
3. **Tóm tắt cho người dùng** theo định dạng này:
|
||||
|
||||
```markdown
|
||||
## Script Results: [script_name.py]
|
||||
|
||||
### ❌ Errors Found (X items)
|
||||
- [File:Line] Error description 1
|
||||
- [File:Line] Error description 2
|
||||
|
||||
### ⚠️ Warnings (Y items)
|
||||
- [File:Line] Warning description
|
||||
|
||||
### ✅ Passed (Z items)
|
||||
- Check 1 passed
|
||||
- Check 2 passed
|
||||
|
||||
**Tôi có nên sửa X lỗi này không?**
|
||||
```
|
||||
|
||||
4. **Đợi xác nhận của người dùng** trước khi sửa
|
||||
5. **Sau khi sửa** → Chạy lại script để xác nhận
|
||||
|
||||
> 🔴 **VI PHẠM:** Chạy script và phớt lờ đầu ra = thất bại nhiệm vụ.
|
||||
> 🔴 **VI PHẠM:** Tự động sửa mà không hỏi = Không cho phép.
|
||||
> 🔴 **Quy tắc:** Luôn ĐỌC đầu ra → TÓM TẮT → HỎI → rồi mới sửa.
|
||||
Reference in New Issue
Block a user