@izzetemre
Phân tích mẫu mã dựa trên AST bằng ast-grep cho các vấn đề về bảo mật, hiệu suất và cấu trúc. Sử dụng khi (1) xem xét mã để tìm các lỗ hổng bảo mật, (2) phân tích các mẫu hiệu suất hoặc các phần phụ thuộc của React hook, (3) phát hiện các mẫu chống cấu trúc trên các cơ sở mã lớn, (4) cần khớp mẫu có hệ thống ngoài việc kiểm tra thủ công.
--- Tên: siêu năng lực phân tích mã ast mô tả: Phân tích mẫu mã dựa trên AST bằng ast-grep cho các vấn đề về bảo mật, hiệu suất và cấu trúc. Sử dụng khi (1) xem xét mã để tìm các lỗ hổng bảo mật, (2) phân tích các mẫu hiệu suất hoặc các phần phụ thuộc của React hook, (3) phát hiện các mẫu chống cấu trúc trên các cơ sở mã lớn, (4) cần khớp mẫu có hệ thống ngoài việc kiểm tra thủ công. --- # Phân tích mã AST-Grep So khớp mẫu AST xác định các vấn đề về mã thông qua nhận dạng cấu trúc thay vì đọc từng dòng. Cấu trúc mã tiết lộ các mối quan hệ ẩn, lỗ hổng và mô hình chống đối mà việc kiểm tra bề mặt đã bỏ sót. ## Cấu hình - **Ngôn ngữ đích**: javascript - **Trọng tâm phân tích**: security - **Mức độ nghiêm trọng**: ERROR - **Khung**: React - **Độ sâu lồng nhau tối đa**: 3 ## Điều kiện tiên quyết ```bash # Install ast-grep (if not available) npm install -g @ast-grep/cli # Or: mise install -g ast-grep ``` ## Cây quyết định: Khi nào nên sử dụng phân tích AST ``` Code review needed? | +-- Simple code (<50 lines, obvious structure) --> Manual review | +-- Complex code (nested, multi-file, abstraction layers) | +-- Security review required? --> Use security patterns +-- Performance analysis? --> Use performance patterns +-- Structural quality? --> Use structure patterns +-- Cross-file patterns? --> Run with --include glob ``` ## Danh mục mẫu | Danh mục | Tập trung | Những phát hiện chung | |----------|-------|-----------------| | An ninh | Chức năng mật mã, luồng xác thực | Bí mật được mã hóa cứng, mã thông báo yếu | | Hiệu suất | Móc, vòng lặp, không đồng bộ | Hiển thị lại vô hạn, rò rỉ bộ nhớ | | Cấu trúc | Lồng nhau, phức tạp | Điều kiện sâu sắc, khả năng bảo trì | ## Các mẫu thiết yếu ### Bảo mật: Bí mật được mã hóa cứng ```yaml # sg-rules/security/hardcoded-secrets.yml id: hardcoded-secrets language: javascript rule: pattern: | const $VAR = '$LITERAL'; $FUNC($VAR, ...) meta: severity: ERROR message: "Potential hardcoded secret detected" ``` ### Bảo mật: Tạo mã thông báo không an toàn ```yaml # sg-rules/security/insecure-tokens.yml id: insecure-token-generation language: javascript rule: pattern: | btoa(JSON.stringify($OBJ) + '.' + $SECRET) meta: severity: ERROR message: "Insecure token generation using base64" ``` ### Hiệu suất: React Phụ thuộc vào hook ```yaml # sg-rules/performance/react-hook-deps.yml id: react-hook-dependency-array language: typescript rule: pattern: | useEffect(() => { $BODY }, [$FUNC]) meta: severity: WARNING message: "Function dependency may cause infinite re-renders" ``` ### Cấu trúc: Lồng sâu ```yaml # sg-rules/structure/deep-nesting.yml id: deep-nesting language: javascript rule: any: - pattern: | if ($COND1) { if ($COND2) { if ($COND3) { $BODY } } } - pattern: | for ($INIT) { for ($INIT2) { for ($INIT3) { $BODY } } } meta: severity: WARNING message: "Deep nesting (>3 levels) - consider refactoring" ``` ## Phân tích đang chạy ```bash # Security scan ast-grep run -r sg-rules/security/ # Performance scan on React files ast-grep run -r sg-rules/performance/ --include="*.tsx,*.jsx" # Full scan with JSON output ast-grep run -r sg-rules/ --format=json > analysis-report.json # Interactive mode for investigation ast-grep run -r sg-rules/ --interactive ``` ## Danh sách kiểm tra cách viết mẫu - [ ] Mẫu khớp với mẫu chống cụ thể, không phải mã chung - [ ] Sử dụng `inside` hoặc `has` cho các ràng buộc ngữ cảnh - [ ] Bao gồm các ràng buộc `not` để giảm kết quả dương tính giả - [ ] Quy tắc riêng cho mỗi ngôn ngữ (JS và TS) - [ ] Mức độ nghiêm trọng phù hợp (ERROR/CẢNH BÁO/THÔNG TIN) ## Những lỗi thường gặp | Sai lầm | Triệu chứng | Sửa chữa | |----------|----------|------| | Mẫu quá chung chung | Nhiều kết quả dương tính giả | Thêm các ràng buộc ngữ cảnh | | Thiếu `inside` | Khớp sai vị trí | Phạm vi với bối cảnh gốc | | Không có mệnh đề `not` | Khớp các mẫu hợp lệ | Loại trừ các trường hợp đã biết rõ | | Các mẫu JS trên TS | Gõ chú thích ngắt trận đấu | Tạo quy tắc dành riêng cho ngôn ngữ | ## Các bước xác minh 1. **Độ chính xác của mẫu thử nghiệm**: Chạy trên các mẫu mã dễ bị tổn thương đã biết 2. **Kiểm tra tỷ lệ dương tính giả**: Xem xét 10 kết quả phù hợp đầu tiên theo cách thủ công 3. **Xác thực mức độ nghiêm trọng**: Xác nhận các phát hiện ở cấp độ ERROR là có thể xử lý được 4. **Phạm vi bao phủ của nhiều tệp**: Xác minh mẫu chạy trên phạm vi dự định ## Đầu ra ví dụ ``` $ ast-grep run -r sg-rules/ src/components/UserProfile.jsx:15: ERROR [insecure-tokens] Insecure token generation src/hooks/useAuth.js:8: ERROR [hardcoded-secrets] Potential hardcoded secret src/components/Dashboard.tsx:23: WARNING [react-hook-deps] Function dependency src/utils/processData.js:45: WARNING [deep-nesting] Deep nesting detected Found 4 issues (2 errors, 2 warnings) ``` ## Thiết lập dự án ```bash # Initialize ast-grep in project ast-grep init # Create rule directories mkdir -p sg-rules/{security,performance,structure} # Add to CI pipeline # .github/workflows/lint.yml # - run: ast-grep run -r sg-rules/ --format=json ``` ## Mẫu mẫu tùy chỉnh ### React Mẫu cụ thể ```yaml # Missing key in list rendering id: missing-list-key language: typescript rule: pattern: | $ARRAY.map(($ITEM) => <$COMPONENT $$$PROPS />) constraints: $PROPS: not: has: pattern: 'key={$_}' meta: severity: WARNING message: "Missing key prop in list rendering" ``` ### Mẫu không đồng bộ/Đang chờ ```yaml # Missing error handling in async id: unhandled-async language: javascript rule: pattern: | async function $NAME($$$) { $$$BODY } constraints: $BODY: not: has: pattern: 'try { $$$ } catch' meta: severity: WARNING message: "Async function without try-catch error handling" ``` ## Tích hợp với CI/CD ```yaml # GitHub Actions example name: AST Analysis on: [push, pull_request] jobs: analyze: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install ast-grep run: npm install -g @ast-grep/cli - name: Run analysis run: | ast-grep run -r sg-rules/ --format=json > report.json if grep -q '"severity": "ERROR"' report.json; then echo "Critical issues found!" exit 1 fi ```
Thiết kế và triển khai kiến trúc đám mây AWS tập trung vào Khung kiến trúc tối ưu, tối ưu hóa chi phí và bảo mật. Sử dụng khi: 1. Thiết kế hoặc đánh giá kiến trúc cơ sở hạ tầng AWS 2. Di chuyển khối lượng công việc sang AWS hoặc giữa các dịch vụ AWS 3. Tối ưu hóa chi phí AWS (kích thước phù hợp, Phiên bản dự trữ, Gói tiết kiệm) 4. Triển khai bảo mật, tuân thủ hoặc khắc phục thảm họa AWS 5. Khắc phục sự cố dịch vụ AWS hoặc vấn đề về hiệu suất
--- Tên: aws-cloud-chuyên gia mô tả: | Thiết kế và triển khai kiến trúc đám mây AWS tập trung vào Khung kiến trúc tối ưu, tối ưu hóa chi phí và bảo mật. Sử dụng khi: 1. Thiết kế hoặc đánh giá kiến trúc cơ sở hạ tầng AWS 2. Di chuyển khối lượng công việc sang AWS hoặc giữa các dịch vụ AWS 3. Tối ưu hóa chi phí AWS (định cỡ phù hợp, Phiên bản dự trữ, Gói tiết kiệm) 4. Triển khai bảo mật, tuân thủ hoặc khắc phục thảm họa AWS 5. Khắc phục sự cố dịch vụ AWS hoặc vấn đề về hiệu suất --- **Khu vực**: us-east-1 **Khu vực phụ**: us-west-2 **Môi trường**: production **VPC CIDR**: 10.0.0.0/16 **Loại phiên bản**: t3.medium # Khung quyết định kiến trúc AWS ## Ma trận lựa chọn dịch vụ | Loại khối lượng công việc | Dịch vụ chính | Thay thế | Yếu tố quyết định | |--------------|--------|-------------|-----------------| | API không quốc tịch | Cổng Lambda + API | Cổng Fargate của ECS | Thời lượng yêu cầu >15 phút -> ECS | | Ứng dụng web có trạng thái | ECS/EKS | Tự động chia tỷ lệ EC2 | Chuyên môn về container -> ECS/EKS | | Xử lý hàng loạt | Hàm bước + Lambda | Lô AWS | GPU/chạy dài -> Hàng loạt | | Truyền phát thời gian thực | Luồng dữ liệu Kinesis | MSK (Kafka) | Kafka hiện tại -> MSK | | Trang web tĩnh | S3 + CloudFront | Khuếch đại | Ngăn xếp đầy đủ -> Khuếch đại | | Cơ sở dữ liệu quan hệ | Cực quang | RDS | Tính sẵn sàng cao -> Aurora | | Lưu trữ khóa-giá trị | DynamoDB | ElastiCache | Độ trễ dưới ms -> ElastiCache | | Kho dữ liệu | Dịch chuyển đỏ | Athena | Truy vấn đặc biệt -> Athena | ## Tính cây quyết định ``` Start: What's your workload pattern? | +-> Event-driven, <15min execution | +-> Lambda | Consider: Memory 512MB, concurrent executions, cold starts | +-> Long-running containers | +-> Need Kubernetes? | +-> Yes: EKS (managed) or self-managed K8s on EC2 | +-> No: ECS Fargate (serverless) or ECS EC2 (cost optimization) | +-> GPU/HPC/Custom AMI required | +-> EC2 with appropriate instance family | g4dn/p4d (ML), c6i (compute), r6i (memory), i3en (storage) | +-> Batch jobs, queue-based +-> AWS Batch with Spot instances (up to 90% savings) ``` ## Kiến trúc mạng ### Mẫu thiết kế VPC ``` production VPC (10.0.0.0/16) | +-- Public Subnets (10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24) | +-- ALB, NAT Gateways, Bastion (if needed) | +-- Private Subnets (10.0.10.0/24, 10.0.11.0/24, 10.0.12.0/24) | +-- Application tier (ECS, EC2, Lambda VPC) | +-- Data Subnets (10.0.20.0/24, 10.0.21.0/24, 10.0.22.0/24) +-- RDS, ElastiCache, other data stores ``` ### Quy tắc nhóm bảo mật | Bậc | Gửi đến từ | Cổng | |------|--------------|-------| | ALB | 0.0.0.0/0 | 443 | | Ứng dụng | ALB SG | 8080 | | Dữ liệu | Ứng dụng SG | 5432 | ### Điểm cuối VPC (Tối ưu hóa chi phí) Luôn tạo cho các dịch vụ có lưu lượng truy cập cao: - Điểm cuối cổng S3 (miễn phí) - Điểm cuối cổng DynamoDB (miễn phí) - Điểm cuối giao diện: ECR, Trình quản lý bí mật, SSM, Nhật ký CloudWatch ## Danh sách kiểm tra tối ưu hóa chi phí ### Hành động ngay lập tức (Tuần 1) - [ ] Bật Cost Explorer và thiết lập ngân sách bằng các cảnh báo - [ ] Xem xét và chấm dứt các tài nguyên không sử dụng (báo cáo tài nguyên nhàn rỗi của Cost Explorer) - [ ] Phiên bản EC2 có kích thước phù hợp (Khuyến nghị về Trình tối ưu hóa điện toán AWS) - [ ] Xóa các ổ EBS chưa được đính kèm và các ảnh chụp nhanh cũ - [ ] Xem lại phí xử lý dữ liệu NAT Gateway ### Tham khảo nhanh về ước tính chi phí | Tài nguyên | Ước tính chi phí hàng tháng | |----------|----------------------| | t3.medium (theo yêu cầu) | ~$30 | | t3.medium (RI 1 năm) | ~$18 | | Lambda (1 triệu lệnh gọi, 1 giây, 512MB) | ~$8 | | RDS db.t3.medium (Đa vùng sẵn sàng) | ~$100 | | Aurora Serverless v2 (8 ACU trung bình) | ~$350 | | Cổng NAT + 100GB dữ liệu | ~$50 | | S3 (Tiêu chuẩn 1TB) | ~$23 | | CloudFront (chuyển 1TB) | ~$85 | ## Triển khai bảo mật ### Các phương pháp hay nhất về IAM ``` Principle: Least privilege with explicit deny 1. Use IAM roles (not users) for applications 2. Require MFA for all human users 3. Use permission boundaries for delegated admin 4. Implement SCPs at Organization level 5. Regular access reviews with IAM Access Analyzer ``` ### Mẫu chính sách IAM mẫu ```json { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3BucketAccess", "Effect": "Allow", "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::my-bucket/*", "Condition": { "StringEquals": {"aws:PrincipalTag/Environment": "production"} } } ] } ``` ### Danh sách kiểm tra bảo mật - [ ] Kích hoạt CloudTrail ở tất cả các vùng có xác thực tệp nhật ký - [ ] Định cấu hình quy tắc AWS Config để giám sát tuân thủ - [ ] Bật GuardDuty để phát hiện mối đe dọa - [ ] Sử dụng Trình quản lý bí mật hoặc Lưu trữ thông số cho các bí mật (không phải env vars) - [ ] Kích hoạt tính năng mã hóa ở trạng thái lưu trữ cho tất cả các kho dữ liệu - [ ] Thực thi TLS 1.2+ cho tất cả các kết nối - [ ] Triển khai Nhật ký luồng VPC để giám sát mạng - [ ] Sử dụng Trung tâm bảo mật để xem bảo mật tập trung ## Mẫu có tính sẵn sàng cao ### Kiến trúc đa vùng sẵn sàng (99.99% mục tiêu) ``` Region: us-east-1 | +-- AZ-a +-- AZ-b +-- AZ-c | | | ALB (active) ALB (active) ALB (active) | | | ECS Tasks (2) ECS Tasks (2) ECS Tasks (2) | | | Aurora Writer Aurora Reader Aurora Reader ``` ### Kiến trúc đa vùng (mục tiêu 99,999%) ``` Primary: us-east-1 Secondary: us-west-2 | | Route 53 (failover routing) Route 53 (health checks) | | CloudFront CloudFront | | Full stack Full stack (passive or active) | | Aurora Global Database -------> Aurora Read Replica (async replication) ``` ### Ma trận quyết định RTO/RPO | Bậc | Mục tiêu RTO | Mục tiêu RPO | Chiến lược | |------|-------------|-------------|----------| | Cấp 1 (Quan trọng) | <15 min | <1 min | Hoạt động đa vùng | | Cấp 2 (Quan trọng) | <1 giờ | <15 phút | Đa vùng chủ động-thụ động | | Bậc 3 (Tiêu chuẩn) | <4 giờ | <1 giờ | Multi-AZ với tính năng sao lưu liên vùng | | Cấp 4 (Không quan trọng) | <24 giờ | <24 giờ | Vùng đơn, sao lưu/khôi phục | ## Giám sát và quan sát ### Triển khai CloudWatch | Loại số liệu | Dịch vụ | Số liệu chính | |-------------|----------|-------------| | Tính toán | EC2/ECS | CPUUtilization, MemoryUtilization, NetworkIn/Out | | Cơ sở dữ liệu | RDS/Cực Quang | Kết nối cơ sở dữ liệu, Độ trễ đọc, Độ trễ ghi | | Không có máy chủ | Lambda | Thời lượng, Lỗi, Điều chỉnh, Thực thi đồng thời | | API | Cổng API | 4XXError, 5XXError, Độ trễ, Đếm | | Lưu trữ | S3 | BucketSizeBytes, NumberOfObjects, 4xxErrors | ### Ngưỡng cảnh báo | Tài nguyên | Cảnh báo | Quan trọng | Hành động | |----------|----------|----------|--------| | CPU EC2 | >70% 5 phút | >90% 5 phút | Mở rộng quy mô, điều tra | | CPU RDS | >80% 5 phút | >95% 5 phút | Mở rộng quy mô, tối ưu hóa truy vấn | | Lỗi Lambda | >1% | >5% | Điều tra, khôi phục | | ALB 5xx | >0,1% | >1% | Điều tra phụ trợ | | Bộ điều tiết DynamoDB | Bất kỳ | Duy trì | Tăng công suất | ## Danh sách kiểm tra xác minh ### Trước khi bắt đầu sản xuất - [ ] Đã hoàn thành Đánh giá kiến trúc tốt (tất cả 6 trụ cột) - [ ] Đã hoàn tất thử nghiệm tải với mức cao nhất dự kiến + khoảng trống 50% - [ ] Đã thử nghiệm khôi phục sau thảm họa bằng RTO/RPO được ghi lại - [ ] Đã vượt qua đánh giá bảo mật (kiểm tra thâm nhập nếu được yêu cầu) - [ ] Đã xác minh các biện pháp kiểm soát tuân thủ (nếu có) - [ ] Đã định cấu hình các trang tổng quan và cảnh báo giám sát - [ ] Runbooks được ghi lại cho các hoạt động thông thường - [ ] Đã xác thực dự báo chi phí và đặt ngân sách - [ ] Đã triển khai chiến lược gắn thẻ cho tất cả tài nguyên - [ ] Đã kiểm tra quy trình sao lưu và khôi phục
Kiểm tra và khắc phục các vấn đề về khả năng tiếp cận để tuân thủ WCAG và khả năng tương thích công nghệ hỗ trợ. Sử dụng khi (1) kiểm tra giao diện người dùng để phát hiện các vi phạm về khả năng truy cập, (2) triển khai hỗ trợ điều hướng bằng bàn phím hoặc trình đọc màn hình, (3) khắc phục các vấn đề về độ tương phản màu hoặc chỉ báo tiêu điểm, (4) đảm bảo khả năng truy cập biểu mẫu và xử lý lỗi, (5) tạo triển khai ARIA.
--- Tên: chuyên gia tiếp cận mô tả: Kiểm tra và khắc phục các vấn đề về khả năng tiếp cận để tuân thủ WCAG và khả năng tương thích công nghệ hỗ trợ. Sử dụng khi (1) kiểm tra giao diện người dùng để phát hiện các vi phạm về khả năng truy cập, (2) triển khai hỗ trợ điều hướng bằng bàn phím hoặc trình đọc màn hình, (3) khắc phục các vấn đề về độ tương phản màu hoặc chỉ báo tiêu điểm, (4) đảm bảo khả năng truy cập biểu mẫu và xử lý lỗi, (5) tạo triển khai ARIA. --- # Kiểm tra khả năng truy cập và khắc phục ## Cấu hình - **Cấp WCAG**: AA - **Thành phần mục tiêu**: Application - **Tiêu chuẩn tuân thủ**: WCAG 2.1 - **Phạm vi thử nghiệm**: full-audit - **Trình đọc màn hình**: NVDA ##Tham khảo nhanh WCAG 2.1 ### Mức độ tuân thủ | Cấp độ | Yêu cầu | Các vấn đề thường gặp | |-------|-------------|---------------| | A | Đường cơ sở tối thiểu | Thiếu văn bản thay thế, không có quyền truy cập bàn phím, thiếu nhãn biểu mẫu | | AA | Mục tiêu chuẩn | Độ tương phản < 4,5:1, thiếu chỉ báo lấy nét, cấu trúc tiêu đề kém | | AAA | Nâng cao | Độ tương phản < 7:1, ngôn ngữ ký hiệu, mô tả âm thanh mở rộng | ### Bốn nguyên tắc (POUR) 1. **Có thể cảm nhận được**: Nội dung có sẵn cho các giác quan (văn bản thay thế, chú thích, độ tương phản) 2. **Có thể hoạt động**: Giao diện người dùng có thể điều hướng bằng tất cả các phương thức nhập liệu (bàn phím, cảm ứng, giọng nói) 3. **Dễ hiểu**: Nội dung và giao diện người dùng có thể dự đoán và đọc được 4. **Mạnh mẽ**: Hoạt động với các công nghệ hỗ trợ hiện tại và tương lai ## Ma trận mức độ nghiêm trọng của vi phạm ``` CRITICAL (fix immediately): - No keyboard access to interactive elements - Missing form labels - Images without alt text - Auto-playing audio without controls - Keyboard traps HIGH (fix before release): - Contrast ratio below 4.5:1 (text) or 3:1 (large text) - Missing skip links - Incorrect heading hierarchy - Focus not visible - Missing error identification MEDIUM (fix in next sprint): - Inconsistent navigation - Missing landmarks - Poor link text ("click here") - Missing language attribute - Complex tables without headers LOW (backlog): - Timing adjustments - Multiple ways to find content - Context-sensitive help ``` ## Cây quyết định kiểm tra ``` Start: What are you testing? | +-- New Component | +-- Has interactive elements? --> Keyboard Navigation Checklist | +-- Has text content? --> Check contrast + heading structure | +-- Has images? --> Verify alt text appropriateness | +-- Has forms? --> Form Accessibility Checklist | +-- Existing Page/Feature | +-- Run automated scan first (axe-core, Lighthouse) | +-- Manual keyboard walkthrough | +-- Screen reader verification | +-- Color contrast spot-check | +-- Third-party Widget +-- Check ARIA implementation +-- Verify keyboard support +-- Test with screen reader +-- Document limitations ``` ## Danh sách kiểm tra điều hướng bàn phím ```markdown [ ] All interactive elements reachable via Tab [ ] Tab order follows visual/logical flow [ ] Focus indicator visible (2px+ outline, 3:1 contrast) [ ] No keyboard traps (can Tab out of all elements) [ ] Skip link as first focusable element [ ] Enter activates buttons and links [ ] Space activates checkboxes and buttons [ ] Arrow keys navigate within components (tabs, menus, radio groups) [ ] Escape closes modals and dropdowns [ ] Modals trap focus until dismissed ``` ## Mẫu thử nghiệm trình đọc màn hình ### Thông báo cần thiết cần xác minh ``` Interactive Elements: Button: "[label], button" Link: "[text], link" Checkbox: "[label], checkbox, [checked/unchecked]" Radio: "[label], radio button, [selected], [position] of [total]" Combobox: "[label], combobox, [collapsed/expanded]" Dynamic Content: Loading: Use aria-busy="true" on container Status: Use role="status" for non-critical updates Alert: Use role="alert" for critical messages Live regions: aria-live="polite" Forms: Required: "required" announced with label Invalid: "invalid entry" with error message Instructions: Announced with label via aria-describedby ``` ### Trình tự kiểm tra 1. Điều hướng toàn bộ trang bằng phím Tab, nghe thông báo 2. Kiểm tra điều hướng tiêu đề (phím H trong trình đọc màn hình) 3. Kiểm tra điều hướng mốc (phím D/rotor) 4. Bảng kiểm tra (phím T, phím mũi tên trong bảng) 5. Phiếu kiểm tra (phím F, điền đầy đủ mẫu đơn) 6. Kiểm tra cập nhật nội dung động (xác minh khu vực trực tiếp) ## Yêu cầu về độ tương phản màu sắc | Loại văn bản | Tỷ lệ tối thiểu | Nâng cao (AAA) | |----------|---------------|-------| | Văn bản thông thường (<18pt) | 4.5:1 | 7:1 | | Văn bản lớn (>=18pt hoặc in đậm 14pt) | 3:1 | 4,5:1 | | Các thành phần và đồ họa giao diện người dùng | 3:1 | Không áp dụng | | Chỉ số tập trung | 3:1 | Không áp dụng | ###Quy trình kiểm tra độ tương phản ``` 1. Identify all foreground/background color pairs 2. Calculate contrast ratio: (L1 + 0.05) / (L2 + 0.05) where L1 = lighter luminance, L2 = darker luminance 3. Common failures to check: - Placeholder text (often too light) - Disabled state (exempt but consider usability) - Links within text (must distinguish from text) - Error/success states on colored backgrounds - Text over images (use overlay or text shadow) ``` ## Hướng dẫn triển khai ARIA ### Quy tắc đầu tiên của ARIA Sử dụng các phần tử HTML gốc khi có thể. ARIA chỉ dành cho các vật dụng tùy chỉnh. ```html <!-- WRONG: ARIA on native element --> <div role="button" tabindex="0">Submit</div> <!-- RIGHT: Native button --> <button type="submit">Submit</button> ``` ### Khi cần ARIA ```html <!-- Custom tabs --> <div role="tablist"> <button role="tab" aria-selected="true" aria-controls="panel1">Tab 1</button> <button role="tab" aria-selected="false" aria-controls="panel2">Tab 2</button> </div> <div role="tabpanel" id="panel1">Content 1</div> <div role="tabpanel" id="panel2" hidden>Content 2</div> <!-- Expandable section --> <button aria-expanded="false" aria-controls="content">Show details</button> <div id="content" hidden>Expandable content</div> <!-- Modal dialog --> <div role="dialog" aria-modal="true" aria-labelledby="title"> <h2 id="title">Dialog Title</h2> <!-- content --> </div> <!-- Live region for dynamic updates --> <div aria-live="polite" aria-atomic="true"> <!-- Status messages injected here --> </div> ``` ### Những lỗi ARIA thường gặp ``` - role="button" without keyboard support (Enter/Space) - aria-label duplicating visible text - aria-hidden="true" on focusable elements - Missing aria-expanded on disclosure buttons - Incorrect aria-controls reference - Using aria-describedby for essential information ``` ## Mẫu trợ năng biểu mẫu ### Cấu trúc biểu mẫu bắt buộc ```html <form> <!-- Explicit label association --> <label for="email">Email address</label> <input type="email" id="email" name="email" aria-required="true" aria-describedby="email-hint email-error"> <span id="email-hint">We'll never share your email</span> <span id="email-error" role="alert"></span> <!-- Group related fields --> <fieldset> <legend>Shipping address</legend> <!-- address fields --> </fieldset> <!-- Clear submit button --> <button type="submit">Complete order</button> </form> ``` ### Yêu cầu xử lý lỗi ``` 1. Identify the field in error (highlight + icon) 2. Describe the error in text (not just color) 3. Associate error with field (aria-describedby) 4. Announce error to screen readers (role="alert") 5. Move focus to first error on submit failure 6. Provide correction suggestions when possible ``` ## Danh sách kiểm tra khả năng truy cập trên thiết bị di động ```markdown Touch Targets: [ ] Minimum 44x44 CSS pixels [ ] Adequate spacing between targets (8px+) [ ] Touch action not dependent on gesture path Gestures: [ ] Alternative to multi-finger gestures [ ] Alternative to path-based gestures (swipe) [ ] Motion-based actions have alternatives Screen Reader (iOS/Android): [ ] accessibilityLabel set for images and icons [ ] accessibilityHint for complex interactions [ ] accessibilityRole matches element behavior [ ] Focus order follows visual layout ``` ## Tích hợp kiểm tra tự động ### Hook cam kết trước ```bash #!/bin/bash # Run axe-core on changed files npx axe-core-cli --exit src/**/*.html # Check for common issues grep -r "onClick.*div\|onClick.*span" src/ && \ echo "Warning: Click handler on non-interactive element" && exit 1 ``` ### Kiểm tra đường ống CI ```yaml accessibility-audit: script: - npx pa11y-ci --config .pa11yci.json - npx lighthouse --accessibility --output=json artifacts: paths: - accessibility-report.json rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' ``` ### Ngưỡng CI tối thiểu ``` axe-core: 0 critical violations, 0 serious violations Lighthouse accessibility: >= 90 pa11y: 0 errors (warnings acceptable) ``` ## Khung ưu tiên khắc phục ``` Priority 1 (This Sprint): - Blocks user task completion - Legal compliance risk - Affects many users Priority 2 (Next Sprint): - Degrades experience significantly - Automated tools flag as error - Violates AA requirement Priority 3 (Backlog): - Minor inconvenience - Violates AAA only - Affects edge cases Priority 4 (Enhancement): - Improves usability for all - Best practice, not requirement - Future-proofing ``` ## Danh sách kiểm tra xác minh Trước khi đánh dấu công việc trợ năng đã hoàn tất: ```markdown Automated: [ ] axe-core: 0 violations [ ] Lighthouse accessibility: 90+ [ ] HTML validation passes [ ] No console accessibility warnings Keyboard: [ ] Complete all tasks keyboard-only [ ] Focus visible at all times [ ] Tab order logical [ ] No keyboard traps Screen Reader (test with at least one): [ ] All content announced [ ] Interactive elements labeled [ ] Errors and updates announced [ ] Navigation efficient Visual: [ ] All text passes contrast [ ] UI components pass contrast [ ] Works at 200% zoom [ ] Works in high contrast mode [ ] No seizure-inducing flashing Forms: [ ] All fields labeled [ ] Errors identifiable [ ] Required fields indicated [ ] Instructions available ``` ## Mẫu tài liệu ```markdown # Accessibility Statement ## Conformance Status This [website/application] is [fully/partially] conformant with WCAG 2.1 Level AA. ## Known Limitations | Feature | Issue | Workaround | Timeline | |---------|-------|------------|----------| | [Feature] | [Description] | [Alternative] | [Fix date] | ## Assistive Technology Tested - NVDA [version] with Firefox [version] - VoiceOver with Safari [version] - JAWS [version] with Chrome [version] ## Feedback Contact [email] for accessibility issues. Last updated: [date] ```
Thực hiện kiểm tra tuân thủ WCAG và khắc phục khả năng truy cập cho các ứng dụng web. Sử dụng khi: 1) Kiểm tra giao diện người dùng để tuân thủ WCAG 2.1/2.2 2) Khắc phục sự cố điều hướng bàn phím hoặc trình đọc màn hình 3) Triển khai chính xác các mẫu ARIA 4) Xem lại độ tương phản màu và khả năng truy cập trực quan 5) Tạo các biểu mẫu có thể truy cập hoặc các thành phần tương tác
--- Tên: khả năng tiếp cận-thử nghiệm-siêu năng lực mô tả: | Thực hiện kiểm tra tuân thủ WCAG và khắc phục khả năng truy cập cho các ứng dụng web. Sử dụng khi: 1) Kiểm tra giao diện người dùng để tuân thủ WCAG 2.1/2.2 2) Khắc phục sự cố điều hướng bàn phím hoặc trình đọc màn hình 3) Triển khai chính xác các mẫu ARIA 4) Xem lại độ tương phản màu và khả năng truy cập trực quan 5) Tạo các biểu mẫu có thể truy cập hoặc các thành phần tương tác --- # Quy trình kiểm tra khả năng truy cập ## Cấu hình - **Cấp WCAG**: AA - **Thành phần đang được thử nghiệm**: Page - **Tiêu chuẩn tuân thủ**: WCAG 2.1 - **Điểm hải đăng tối thiểu**: 90 - **Trình đọc màn hình chính**: NVDA - **Khung kiểm tra**: jest-axe ## Cây quyết định kiểm tra ``` Accessibility request received | +-- New component/page? | +-- Run automated scan first (axe-core, Lighthouse) | +-- Keyboard navigation test | +-- Screen reader announcement check | +-- Color contrast verification | +-- Existing violation to fix? | +-- Identify WCAG success criterion | +-- Check if semantic HTML solves it | +-- Apply ARIA only when HTML insufficient | +-- Verify fix with assistive technology | +-- Compliance audit? +-- Automated scan (catches ~30% of issues) +-- Manual testing checklist +-- Document violations by severity +-- Create remediation roadmap ``` ##Tham khảo nhanh WCAG ### Phân loại mức độ nghiêm trọng | Mức độ nghiêm trọng | Tác động | Ví dụ | Sửa dòng thời gian | |----------|--------|----------|--------------| | Quan trọng | Chặn quyền truy cập hoàn toàn | Không có tiêu điểm bàn phím, nút trống, thiếu alt trên hình ảnh chức năng | Ngay lập tức | | Nghiêm túc | Rào cản lớn | Độ tương phản kém, thiếu nhãn biểu mẫu, không bỏ qua liên kết | Trong nước rút | | Trung bình | Khó nhưng có thể sử dụng được | Điều hướng không nhất quán, thông báo lỗi không rõ ràng | Bản phát hành tiếp theo | | Nhỏ | Bất tiện | Văn bản thay thế dư thừa, vấn đề nhỏ về thứ tự tiêu đề | Tồn đọng | ### Các lỗi thường gặp và cách khắc phục **Thiếu tên có thể truy cập** ```html <!-- Violation --> <button><svg>...</svg></button> <!-- Fix: aria-label --> <button aria-label="Close dialog"><svg>...</svg></button> <!-- Fix: visually hidden text --> <button><span class="sr-only">Close dialog</span><svg>...</svg></button> ``` **Liên kết nhãn biểu mẫu** ```html <!-- Violation --> <label>Email</label> <input type="email"> <!-- Fix: explicit association --> <label for="email">Email</label> <input type="email" id="email"> <!-- Fix: implicit association --> <label>Email <input type="email"></label> ``` **Lỗi tương phản màu** ``` Minimum ratios (WCAG AA): - Normal text (<18px or <14px bold): 4.5:1 - Large text (>=18px or >=14px bold): 3:1 - UI components and graphics: 3:1 Tools: WebAIM Contrast Checker, browser DevTools ``` **Tầm nhìn rõ ràng** ```css /* Never do this without alternative */ :focus { outline: none; } /* Proper custom focus */ :focus-visible { outline: 2px solid #005fcc; outline-offset: 2px; } ``` ## Khung quyết định ARIA ``` Need to convey information to assistive technology? | +-- Can semantic HTML do it? | +-- YES: Use HTML (<button>, <nav>, <main>, <article>) | +-- NO: Continue to ARIA | +-- What type of ARIA needed? +-- Role: What IS this element? (role="dialog", role="tab") +-- State: What condition? (aria-expanded, aria-checked) +-- Property: What relationship? (aria-labelledby, aria-describedby) +-- Live region: Dynamic content? (aria-live="polite") ``` ### Mẫu ARIA cho các Widget thông dụng **Tiết lộ (hiển thị/ẩn)** ```html <button aria-expanded="false" aria-controls="content-1"> Show details </button> <div id="content-1" hidden> Content here </div> ``` **Giao diện tab** ```html <div role="tablist" aria-label="Settings"> <button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1"> General </button> <button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2" tabindex="-1"> Privacy </button> </div> <div role="tabpanel" id="panel-1" aria-labelledby="tab-1">...</div> <div role="tabpanel" id="panel-2" aria-labelledby="tab-2" hidden>...</div> ``` **Hộp thoại phương thức** ```html <div role="dialog" aria-modal="true" aria-labelledby="dialog-title"> <h2 id="dialog-title">Confirm action</h2> <p>Are you sure you want to proceed?</p> <button>Cancel</button> <button>Confirm</button> </div> ``` ## Danh sách kiểm tra điều hướng bàn phím ``` [ ] All interactive elements focusable with Tab [ ] Focus order matches visual/logical order [ ] Focus visible on all elements [ ] No keyboard traps (can always Tab out) [ ] Skip link as first focusable element [ ] Escape closes modals/dropdowns [ ] Arrow keys navigate within widgets (tabs, menus, grids) [ ] Enter/Space activates buttons and links [ ] Custom shortcuts documented and configurable ``` ### Các mẫu quản lý tiêu điểm **Bẫy lấy nét theo phương thức** ```javascript // On modal open: // 1. Save previously focused element // 2. Move focus to first focusable in modal // 3. Trap Tab within modal boundaries // On modal close: // 1. Return focus to saved element ``` **Nội dung động** ```javascript // After adding content: // - Announce via aria-live region, OR // - Move focus to new content heading // After removing content: // - Move focus to logical next element // - Never leave focus on removed element ``` ## Kiểm tra trình đọc màn hình ### Xác minh thông báo | Yếu tố | Nên Công Bố | |----------|-------------------| | Nút | Vai trò + tên + trạng thái ("Nút gửi") | | Liên kết | Tên + "liên kết" ("Liên kết trang chủ") | | Hình ảnh | Văn bản thay thế HOẶC "trang trí" (bỏ qua) | | Tiêu đề | Cấp + văn bản ("Tiêu đề cấp 2, Giới thiệu về chúng tôi") | | Trường biểu mẫu | Nhãn + loại + trạng thái + hướng dẫn | | Lỗi | Thông báo lỗi + liên kết trường | ### Lệnh kiểm tra (Tham khảo nhanh) **Thoại qua (macOS)** - VO = Ctrl + Tùy chọn - VO + A: Đọc tất cả - VO + Phải/Trái: Điều hướng các phần tử - VO + Cmd + H: Tiêu đề tiếp theo - VO + Cmd + J: Điều khiển biểu mẫu tiếp theo **NVDA (Windows)** - NVDA + Xuống: Đọc tất cả - Tab: Có thể lấy nét tiếp theo - H: Tiêu đề tiếp theo - F: Trường biểu mẫu tiếp theo - B: Nút tiếp theo ## Tích hợp kiểm tra tự động ### lõi rìu trong các bài kiểm tra ```javascript // jest-axe import { axe, toHaveNoViolations } from 'jest-axe'; expect.extend(toHaveNoViolations); test('component is accessible', async () => { const { container } = render(<MyComponent />); const results = await axe(container); expect(results).toHaveNoViolations(); }); ``` ### Ngưỡng CI của ngọn hải đăng ```javascript // lighthouserc.js module.exports = { assertions: { 'categories:accessibility': ['error', { minScore: 90 / 100 }], }, }; ``` ## Ma trận ưu tiên khắc phục ``` Impact vs Effort: Low Effort High Effort High Impact | DO FIRST | PLAN NEXT | | alt text | redesign | | labels | nav rebuild | ----------------|--------------|---------------| Low Impact | QUICK WIN | BACKLOG | | contrast | nice-to-have| | tweaks | enhancements| ``` ## Danh sách kiểm tra xác minh Trước khi đánh dấu công việc trợ năng đã hoàn tất: ``` Automated Testing: [ ] axe-core reports zero violations [ ] Lighthouse accessibility >= 90 [ ] HTML validator passes (affects AT parsing) Keyboard Testing: [ ] Full task completion without mouse [ ] Visible focus at all times [ ] Logical tab order [ ] No traps Screen Reader Testing: [ ] Tested with at least one screen reader (NVDA) [ ] All content announced correctly [ ] Interactive elements have roles/states [ ] Dynamic updates announced Visual Testing: [ ] Contrast ratios verified (4.5:1 minimum) [ ] Works at 200% zoom [ ] No information conveyed by color alone [ ] Respects prefers-reduced-motion ```
Kỹ năng điều phối đa tác nhân để tập hợp nhóm, phân chia nhiệm vụ, tối ưu hóa quy trình làm việc và các chiến lược phối hợp để đạt được hiệu suất nhóm và sử dụng tài nguyên tối ưu.
--- Họ tên: đại lý-tổ chức-chuyên gia Mô tả: Kỹ năng điều phối đa tác nhân để tập hợp nhóm, phân chia nhiệm vụ, tối ưu hóa quy trình làm việc và các chiến lược phối hợp để đạt được hiệu suất nhóm và sử dụng tài nguyên tối ưu. --- #Tổ chức đại lý Tập hợp và điều phối các nhóm đa tác nhân thông qua phân tích nhiệm vụ có hệ thống, lập bản đồ năng lực và thiết kế quy trình làm việc. ## Cấu hình - **Số lượng đại lý**: 3 - **Loại nhiệm vụ**: general - **Mẫu dàn nhạc**: parallel - **Đồng thời tối đa**: 5 - **Hết thời gian (giây)**: 300 - **Số lần thử lại**: 3 ##Quy trình cốt lõi 1. **Phân tích yêu cầu**: Hiểu phạm vi nhiệm vụ, các ràng buộc và tiêu chí thành công 2. **Khả năng bản đồ**: Kết hợp các đặc vụ có sẵn với các kỹ năng cần thiết 3. **Quy trình thiết kế**: Tạo kế hoạch thực hiện với các phần phụ thuộc và điểm kiểm tra 4. **Điều phối thực thi**: Điều phối các tác nhân 3 và theo dõi tiến trình 5. **Tối ưu hóa liên tục**: Thích ứng dựa trên phản hồi về hiệu suất ## Phân tách tác vụ ### Phân tích yêu cầu - Chia các nhiệm vụ phức tạp thành các nhiệm vụ con rời rạc - Xác định yêu cầu đầu vào/đầu ra cho từng công việc con - Ước tính độ phức tạp và nhu cầu tài nguyên cho mỗi thành phần - Xác định rõ tiêu chí thành công cho từng đơn vị ### Ánh xạ phụ thuộc - Tài liệu ràng buộc thứ tự thực hiện nhiệm vụ - Xác định sự phụ thuộc dữ liệu giữa các nhiệm vụ con - Yêu cầu chia sẻ tài nguyên bản đồ - Phát hiện các tắc nghẽn và xung đột tiềm ẩn ### Lập kế hoạch dòng thời gian - Nhiệm vụ tuần tự tôn trọng sự phụ thuộc - Xác định các cơ hội song song hóa (tối đa 5 đồng thời) - Phân bổ thời gian đệm cho các thành phần có rủi ro cao - Xác định các điểm kiểm tra để xác nhận tiến độ ## Lựa chọn đại lý ### Phù hợp năng lực Lựa chọn đại lý dựa trên: - Kỹ năng cần thiết so với chuyên môn của đại lý - Hiệu suất lịch sử trên các nhiệm vụ tương tự - Hiện tại sẵn có và năng lực khối lượng công việc - Hiệu quả chi phí cho sự phức tạp của nhiệm vụ ### Ưu tiên tiêu chí lựa chọn 1. **Khả năng phù hợp**: Đại lý phải có các kỹ năng cần thiết 2. **Thành tích**: Ưu tiên các đại lý đã thành công đã được chứng minh 3. **Tính sẵn sàng**: Có đủ năng lực để hoàn thành đúng tiến độ 4. **Chi phí**: Tối ưu hóa việc sử dụng tài nguyên trong giới hạn ### Lập kế hoạch dự phòng - Xác định các tác nhân thay thế cho các vai trò quan trọng - Xác định kích hoạt chuyển đổi dự phòng và thủ tục chuyển giao - Duy trì dự phòng cho các nhiệm vụ một điểm lỗi ## Đại hội nhóm ### Nguyên tắc sáng tác - Đảm bảo bao quát kỹ năng đầy đủ cho tất cả các nhiệm vụ phụ - Cân bằng khối lượng công việc giữa các thành viên trong nhóm 3 - Giảm thiểu chi phí liên lạc - Bao gồm dự phòng cho các chức năng quan trọng ### Phân công vai trò - Ghép các tác nhân với các nhiệm vụ phụ dựa trên sức mạnh - Xác định quyền sở hữu và trách nhiệm rõ ràng - Thiết lập kênh liên lạc giữa các vai trò phụ thuộc - Đường dẫn leo thang tài liệu cho các trình chặn ### Định cỡ đội - Các nhóm nhỏ hơn cho các nhiệm vụ được kết hợp chặt chẽ - Các nhóm lớn hơn cho khối lượng công việc song song - Xem xét chi phí phối hợp trong các quyết định về quy mô - Quy mô linh hoạt dựa trên tiến độ ## Mẫu phối hợp ### Thực thi tuần tự Sử dụng khi nhiệm vụ có yêu cầu đặt hàng nghiêm ngặt: - Nhiệm vụ B yêu cầu đầu ra từ Nhiệm vụ A - Trạng thái phải nhất quán giữa các bước - Xử lý lỗi yêu cầu khôi phục theo thứ tự ### Xử lý song song Sử dụng khi các tác vụ độc lập (parallel): - Không có sự phụ thuộc dữ liệu giữa các tác vụ - Yêu cầu nguồn lực riêng biệt - Kết quả có thể được tổng hợp sau khi hoàn thành - Hoạt động đồng thời tối đa 5 ### Mẫu đường ống Sử dụng để phát trực tuyến hoặc xử lý liên tục: - Từng công đoạn xử lý và chuyển tiếp kết quả - Cho phép thực hiện đồng thời nhiều giai đoạn khác nhau - Giảm độ trễ tổng thể cho quy trình làm việc nhiều bước ### Ủy quyền theo cấp bậc Sử dụng cho các nhiệm vụ phức tạp yêu cầu điều phối phụ: - Đại lý chính điều phối các tiểu đội - Mỗi nhóm phụ xử lý một miền - Kết quả tổng hợp lên trên thông qua hệ thống phân cấp ### Bản đồ-Giảm Sử dụng để xử lý dữ liệu quy mô lớn: - Giai đoạn bản đồ phân bổ công việc giữa các đại lý - Mỗi tác nhân xử lý một phân vùng - Pha giảm kết hợp kết quả ## Thiết kế quy trình làm việc ### Cấu trúc quy trình 1. **Điểm vào**: Xác thực đầu vào và khởi tạo trạng thái 2. **Các giai đoạn thực hiện**: Các nhóm nhiệm vụ được sắp xếp theo thứ tự 3. **Điểm kiểm tra**: Nêu rõ các điểm xác thực và kiên trì 4. **Điểm thoát**: Tổng hợp và dọn dẹp kết quả ### Luồng điều khiển - Xác định điều kiện phân nhánh cho các đường dẫn thay thế - Chỉ định chính sách thử lại cho các lỗi tạm thời (tối đa 3 lần thử lại) - Thiết lập ngưỡng thời gian chờ cho mỗi giai đoạn (300s mặc định) - Lập kế hoạch xuống cấp nhẹ nhàng cho các lỗi một phần ### Luồng dữ liệu - Ghi lại các chuyển đổi dữ liệu giữa các giai đoạn - Chỉ định định dạng dữ liệu và quy tắc xác thực - Lập kế hoạch lưu trữ dữ liệu tại các điểm kiểm tra - Xử lý dọn dẹp dữ liệu sau khi hoàn thành ## Chiến lược phối hợp ### Các kiểu giao tiếp - **Trực tiếp**: Tác nhân với tác nhân để liên kết chặt chẽ - **Phát sóng**: Một-nhiều để cập nhật trạng thái - **Dựa trên hàng đợi**: Không đồng bộ cho các tác vụ tách rời - **Theo hướng sự kiện**: Phản ứng với các thay đổi trạng thái ### Đồng bộ hóa - Xác định điểm đồng bộ cho các tác vụ phụ thuộc - Triển khai cơ chế chờ với thời gian chờ (300s) - Xử lý việc hoàn thành không theo thứ tự một cách khéo léo - Duy trì trạng thái nhất quán giữa các đại lý ### Giải quyết xung đột - Thiết lập các quy tắc ưu tiên cho tranh chấp tài nguyên - Xác định cơ chế trọng tài giải quyết xung đột - Thủ tục khôi phục tài liệu cho các trường hợp bế tắc - Ngăn chặn xung đột thông qua việc lập kế hoạch cẩn thận ## Tối ưu hóa hiệu suất ### Cân bằng tải - Phân công công việc dựa trên năng lực đại lý - Giám sát việc sử dụng và cân bằng lại một cách linh hoạt - Tránh làm quá tải các đại lý có hiệu suất cao - Xem xét vị trí đại lý cho các nhiệm vụ sử dụng nhiều dữ liệu ### Quản lý nút thắt cổ chai - Xác định các giai đoạn chậm thông qua giám sát - Thêm năng lực cho các nguồn lực hạn chế - Cơ cấu lại quy trình làm việc để giảm sự phụ thuộc - Cache kết quả trung gian có lợi ### Hiệu quả tài nguyên - Tập hợp tài nguyên được chia sẻ giữa các đại lý - Giải phóng tài nguyên ngay sau khi sử dụng - Thực hiện các hoạt động tương tự hàng loạt để giảm chi phí - Giám sát và cảnh báo lãng phí tài nguyên ## Giám sát và thích ứng ### Theo dõi tiến độ - Theo dõi trạng thái hoàn thành mỗi nhiệm vụ - Theo dõi thời gian sử dụng so với ước tính - Xác định các nhiệm vụ có nguy cơ bị trì hoãn - Báo cáo tiến độ tổng hợp cho các bên liên quan ### Số liệu hiệu suất - Tốc độ hoàn thành nhiệm vụ và độ trễ - Sử dụng đại lý và thông lượng - Tỷ lệ lỗi và thời gian phục hồi - Tiêu thụ tài nguyên và chi phí ### Điều chỉnh động - Phân bổ lại đại lý dựa trên tiến độ - Điều chỉnh mức độ ưu tiên dựa trên trình chặn - Quy mô quy mô nhóm dựa trên khối lượng công việc - Sửa đổi quy trình làm việc dựa trên việc học ## Xử lý lỗi ### Phát hiện lỗi - Giám sát các lỗi và thời gian chờ của tác vụ (ngưỡng (300s) - Phát hiện kịp thời sự vắng mặt của đại lý - Xác định các mô hình lỗi tầng - Cảnh báo về hành vi bất thường ### Quy trình khôi phục - Thử lại các lỗi tạm thời có thời gian chờ (tối đa 3 lần thử) - Chuyển đổi dự phòng sang các tác nhân dự phòng khi cần thiết - Quay trở lại điểm kiểm tra cuối cùng khi có lỗi nghiêm trọng - Báo cáo các vấn đề không thể khắc phục ### Phòng ngừa - Xác thực đầu vào trước khi thực hiện - Kiểm tra tính sẵn sàng của đại lý trước khi chuyển nhượng - Thiết kế cho sự xuống cấp duyên dáng - Xây dựng dự phòng vào các đường dẫn quan trọng ##Đảm bảo chất lượng ### Cổng xác thực - Xác minh đầu ra tại mỗi điểm kiểm tra - Kiểm tra chéo kết quả từ các nhiệm vụ song song - Xác nhận kết quả tổng hợp cuối cùng - Xác nhận tiêu chí thành công được đáp ứng ### Tiêu chuẩn thực hiện - Mục tiêu độ chính xác của việc lựa chọn đại lý: >95% - Mục tiêu tỷ lệ hoàn thành nhiệm vụ: >99% - Mục tiêu thời gian phản hồi: <5 giây - Mức sử dụng tài nguyên: phạm vi tối ưu 60-80% ## Các phương pháp hay nhất ### Lập kế hoạch - Đầu tư thời gian vào việc phân tích nhiệm vụ kỹ lưỡng - Tài liệu giả định và ràng buộc - Lập kế hoạch trước cho các tình huống thất bại - Xác định rõ ràng các thước đo thành công ### Thực thi - Bắt đầu với nhóm khả thi tối thiểu (3 đại lý) - Quy mô dựa trên nhu cầu quan sát được - Duy trì các kênh liên lạc rõ ràng - Theo dõi tiến độ so với các mốc quan trọng ### Học tập - Thu thập dữ liệu hiệu suất để phân tích - Xác định các khuôn mẫu thành công và thất bại - Tinh chỉnh các chiến lược lựa chọn và phối hợp - Chia sẻ bài học qua các dàn nhạc trong tương lai