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
Hướng dẫn tạo giọng đọc Adam bắt trend
Hướng dẫn tạo ảnh chụp nhiều góc máy từ 1 ảnh duy nhất
Hãy hủy đăng ký ChatGPT, Perplexity và Gemini đi! Claude có thể đáp ứng mọi nhu cầu của bạn
Hướng dẫn tạo slide tự động trên OceanDoc
Cài đặt các agent được quản lý từ Microsoft
Tạo một agent tùy chỉnh từ template agent
Hướng dẫn huấn luyện Perplexity AI để nhận kết quả chính xác hơn
Cách tạo API Key Perplexity
Hướng dẫn tạo poster sản phẩm cao cấp phong cách tối giản
Cách tạo ảnh du lịch selfie hành tinh thu nhỏ
Prompt tạo ảnh iPhone phong cách Apple cực chuyên nghiệp bằng AI
TOP công cụ AI phân tích dữ liệu tốt nhất
Đề môn Tin thi tốt nghiệp THPT 2026
Đề Giáo dục Kinh tế và pháp luật thi tốt nghiệp THPT 2026
Đề thi môn Sinh học tốt nghiệp THPT 2026
Đề thi Địa lý kỳ thi tốt nghiệp THPT năm 2026
Đề thi môn Lịch sử thi tốt nghiệp THPT năm 2026
Đề thi môn Hóa học THPT 2026 (mã đề 0340)
Đề thi môn Vật lý thi tốt nghiệp THPT năm 2026
Đề thi tiếng Anh tốt nghiệp THPT 2026