Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Trong bài học trước, chúng ta đã khám phá các quy trình làm việc nâng cao. Bây giờ, hãy xây dựng trên nền tảng đó. Đã đến lúc kết hợp mọi thứ lại với nhau. Chúng ta sẽ cùng nhau xây dựng một tính năng hoàn chỉnh bằng cách sử dụng tất cả các kỹ thuật từ sê-ri này.
Đây không phải là một ví dụ đơn giản. Đây là quy trình làm việc thực tế được sử dụng cho code sản xuất.
Chúng ta sẽ thêm tính năng giới hạn tốc độ vào API Express.js. Yêu cầu:
Giới hạn số lượng yêu cầu mỗi người dùng (theo API key)
Giới hạn có thể cấu hình (số yêu cầu mỗi phút)
Trả về phản hồi 429 thích hợp khi vượt quá giới hạn
Cho phép bỏ qua đối với người dùng quản trị
Hỗ trợ Redis cho triển khai phân tán
Kiểm thử toàn diện
Hãy bắt đầu xây dựng.
Chưa cần viết code. Hãy lập kế hoạch trước.
> Tôi cần thêm tính năng giới hạn tốc độ API vào ứng dụng Express.js.
> Yêu cầu:
> - Giới hạn truy cập theo API key cho mỗi người dùng
> - Giới hạn có thể cấu hình
> - Phản hồi lỗi 429 đúng cách
> - Bỏ qua kiểm tra quản trị viên
> - Hỗ trợ bởi Redis
> - Kiểm thử toàn diện
>
> Phác thảo cách triển khai:
> 1. Cần tạo những file nào?
> 2. Cần sửa đổi những file hiện có nào?
> 3. Thứ tự triển khai như thế nào?
> Chưa viết code.Claude lập kế hoạch. Xem xét lại. Đặt câu hỏi:
> Tại sao lại dùng Redis thay vì bộ nhớ trong? Nếu muốn hỗ trợ cả hai thì sao?> Chúng ta sẽ xử lý việc bỏ qua kiểm tra quản trị viên như thế nào - kiểm tra tiêu đề hay tra cứu cơ sở dữ liệu?Đạt được sự đồng thuận trước khi triển khai.
Thêm các file liên quan:
/add src/middleware/*.js
/add src/config/index.js
/add package.json
/add tests/middleware/*.test.jsKiểm tra ngữ cảnh:
/lsChúng ta sẽ thấy các mẫu middleware và cấu trúc cấu hình.
Xây dựng bộ giới hạn tốc độ:
> Tạo middleware giới hạn tốc độ tại src/middleware/rate-limiter.js
>
> Yêu cầu từ kế hoạch của chúng ta:
> - Thuật toán Token bucket
> - Lưu trữ Redis (với dự phòng trong bộ nhớ)
> - Giới hạn có thể cấu hình từ file cấu hình
> - Trả về code 429 với tiêu đề Retry-After
>
> Làm theo các mẫu từ những file middleware hiện có.Claude tạo middleware. Xem xét nó:
> Hãy giải thích cách Token bucket được nạp lại.> Điều gì xảy ra nếu Redis không khả dụng?Khắc phục mọi sự cố:
> Logic dự phòng chưa hoàn toàn chính xác. Khi Redis gặp lỗi, nó nên:
> - Ghi nhật ký lỗi
> - Chuyển sang sử dụng bộ nhớ trong
> - Tiếp tục kiểm tra giới hạn
> Khắc phục điều này.Trước khi tích hợp, hãy viết các bài test:
> Tạo các bài test cho bộ giới hạn tốc độ tại tests/middleware/rate-limiter.test.js
>
> Các trường hợp kiểm thử:
> - Cho phép các yêu cầu dưới giới hạn
> - Chặn các yêu cầu vượt quá giới hạn
> - Trả về phản hồi 429 chính xác với Retry-After
> - Chức năng bỏ qua quản trị viên hoạt động
> - Chức năng dự phòng khi Redis gặp lỗi hoạt động
> - Giới hạn được reset sau khi cửa sổ hết hạnChạy các bài test:
> Chạy các bài test. Tất cả đều phải vượt qua.Nếu các bài test thất bại, hãy lặp lại:
> Bài kiểm thử 3 đang thất bại. Tiêu đề Retry-After không được thiết lập.
> Sửa middleware.Bây giờ hãy kết nối nó:
/add src/app.js
> Tích hợp middleware giới hạn tốc độ.
> - Áp dụng toàn hệ thống nhưng sau middleware xác thực
> - Sử dụng cấu hình cho các giá trị giới hạn
> - Thêm vào chuỗi middleware theo đúng thứ tựThêm cấu hình:
/add src/config/index.js
> Thêm cấu hình giới hạn tốc độ:
> - RATE_LIMIT_WINDOW_MS (default 60000)
> - RATE_LIMIT_MAX_REQUESTS (default 100)
> - RATE_LIMIT_ADMIN_BYPASS (default true)Cần củng cố thêm:
> Xem xét lại bộ giới hạn tốc độ cho các trường hợp ngoại lệ:
> - Điều gì xảy ra nếu thiếu API key?
> - Điều gì xảy ra nếu API key bị lỗi định dạng?
> - Còn về tình trạng tranh chấp dữ liệu trong môi trường phân tán thì sao?
> - Điều gì xảy ra nếu cấu hình giới hạn không hợp lệ?
>
> Thêm xử lý cho bất kỳ lỗ hổng nào.Claude xác định các vấn đề và khắc phục chúng.
> Tạo tài liệu cho tính năng giới hạn tốc độ:
> - Thêm phần về giới hạn tốc độ vào README
> - Thêm chú thích JSDoc nội tuyến vào middleware
> - Tài liệu hóa các tùy chọn cấu hình
> - Thêm ví dụ về cách kiểm tra giới hạn tốc độĐánh giá đầy đủ trước khi cam kết:
> Xem xét lại tất cả những gì chúng ta đã xây dựng:
> - src/middleware/rate-limiter.js
> - tests/middleware/rate-limiter.test.js
> - Các thay đổi đối với src/app.js và cấu hình
>
> Có vấn đề gì không? Thiếu trường hợp kiểm thử? Có lỗi tiềm ẩn?Chạy các bài kiểm tra cuối cùng:
> Chạy tất cả các bài kiểm tra. Xác nhận mọi thứ đều đạt.Kiểm tra trạng thái git:
git status
git diffXóa lịch sử git:
git add src/middleware/rate-limiter.js
git commit -m "feat: thêm middleware giới hạn tốc độ với lưu trữ Redis"
git add tests/middleware/rate-limiter.test.js
git commit -m "test: thêm độ phủ kiểm thử giới hạn tốc độ"
git add src/app.js src/config/index.js
git commit -m "feat: tích hợp giới hạn tốc độ toàn hệ thống"
git add README.md
git commit -m "docs: tài liệu cấu hình giới hạn tốc độ"Các cam kết logic mà mỗi cam kết có thể được hoàn tác độc lập.
Hãy tự xây dựng tính năng này bằng Claude Code:
Tính năng: Ghi nhật ký yêu cầu API
Yêu cầu:
Ghi nhật ký tất cả các yêu cầu API đến
Bao gồm: dấu thời gian, phương thức, đường dẫn, ID người dùng, thời gian phản hồi, code trạng thái
Lưu trữ trong cơ sở dữ liệu (hoặc file để đơn giản)
Mức độ ghi nhật ký có thể cấu hình
Khả năng truy vấn/tìm kiếm nhật ký
Kiểm thử
Quy trình làm việc của bạn nên bao gồm:
Phiên lập kế hoạch (chưa viết code)
Thiết lập ngữ cảnh (thêm các file liên quan)
Triển khai cốt lõi
Test
Tích hợp
Xử lý các trường hợp ngoại lệ
Tạo tài liệu
Xem xét cuối cùng
Cam kết sạch
Sử dụng tất cả những gì bạn đã học.
Bối cảnh là tất cả. Chất lượng hơn số lượng.
Lập kế hoạch trước khi thực hiện. Đặc biệt là đối với bất cứ điều gì không tầm thường.
Lặp lại, đừng bắt đầu lại từ đầu. Xây dựng dựa trên những gì đã hiệu quả.
Kiểm chứng liên tục. Kiểm thử sớm và thường xuyên.
Git là lưới an toàn của bạn. Cam kết thường xuyên, hoàn tác dễ dàng.
Sử dụng mức độ hướng dẫn phù hợp. Phân bổ nỗ lực phù hợp với độ phức tạp của nhiệm vụ.
Bạn đã có nền tảng. Bây giờ:
Thực hành hàng ngày. Mỗi nhiệm vụ là một cơ hội để trở nên tốt hơn.
Xây dựng quy trình làm việc của riêng bạn. Điều chỉnh các mẫu cho phù hợp với dự án của bạn.
Luôn cập nhật. Claude Code phát triển. Kiểm tra các tính năng mới.
Chia sẻ kiến thức. Dạy người khác những gì bạn đã học được.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Cách chỉnh ảnh đồ ăn ảo diệu ngay trên Canva
Cách chỉnh ảnh đồ ăn ảo diệu ngay trên Canva
Kỹ thuật tạo ngữ cảnh cho AI Agent
Các mô hình kỹ thuật tạo ngữ cảnh trong thực tế
5 cuốn sách hay nhất giúp xây dựng Agentic AI system trong năm 2026
Google Gemini Omni: Biến mọi thứ thành video
Hướng dẫn viết phiếu đánh giá viên chức cuối năm
Cách tạo ảnh nam châm tủ lạnh cực hot với AI
Tất tần tật về MusicFX DJ: Ứng dụng AI tạo nhạc của Google
Hãy Yêu Bản Thân Hơn Khi Yêu Một Người Khác
Tôi của những năm tháng 17
Khi tuổi tác trở thành gánh nặng
Hai năm cố chấp một cuộc tình không tên
Cách tạo poster bằng AI trên Microsoft Designer
Prompt tạo ảnh biếm họa trên ChatGPT cực nhanh
Xây dựng AI agent cho doanh nghiệp của bạn
Hướng dẫn sử dụng thư viện của Copilot
Cách chèn nhạc nền AI vào video trên Google Vids
Hướng dẫn thử quần áo bằng AI trên Canva
Cách dùng công cụ viết AI trên TeraBox