Hướng dẫn dùng getasync JavaScript
Nội dung bài viết Lập trình đồng bộ hay bất đồng bộ không đơn giản như những gì được viết trong nhiều blog, đó chỉ là lý
thuyết, vậy làm sao chúng ta biết được hiệu suất của nó thế nào đây? Lưu ý: Đây là một trong những bài viết trong Serires Nodejs: Học 7 ngày Là một lập trình viên bất cứ level nào bạn cũng hiểu về khái niệm lập trình đồng bộ và bất đồng bộ. Chúng ta chỉ hiểu nôm na rằng nếu lâp trình không đồng bộ thì sử dụng và thực hiện với sự trợ giúp của
callbacks, Promise, async và await. Và hơn ai hết cả thảy chúng ta đều biết rằng không đồng bộ sẽ tốt hợn rất nhiều, vậy nó thực sự tốt như thế nào? Tôi sẽ làm một ví dụ giúp bạn hiểu rõ thực sự. Và cũng là để cho các bạn có
thêm kiến thức nhằm có điểm công trong mắt nhà tuyển dụng vị trí back-end nodejs. Để so sánh hiệu suất giữa đồng bộ và bất đồng bộ, thì chúng tôi sẽ sử dụng package bcrypt và expressjs. Vì bcrypt có cung cấp các phương thức đồng bộ và không đồng bộ để băm một chuỗi nhất định. lấy nó làm ví dụ qủa là hợp lý. Ở đây không giải thích nhiều về 2 khái niệm Async và
Sync chỉ tập trung test hiệu suất. OK!! Đầu tiên hãy install các packages: ## Tạo file app.js Cần chú ý đoạn code trên, nếu bạn đủ trình độ thì bỏ qua khúc này, còn chưa hãy để tôi giải thích cho bạn. Chúng ta có 2 nhiệm vụ, đó là gọi hai routes là Apache bench là một công cụ để đánh giá các máy chủ HTTP. Sủ dụng lệnh sau đây để test về đồng bộ AnonyStick$ ab -k -c 20 -n 250 "http://localhost:3000/sync" và AnonyStick$ ab -k -c 20 -n 250 "http://localhost:3000/async" Nếu vẫn chưa biết về apache bench thì hãy để tôt giải thích tiếp:
Kết quả cho câu lênh trên được đưa ra dưới đây. Hay để ý hình ảnh chi tiết một chút SO SÁNH: Trước tiên tôi đã tổng kết cho bạn đọc nhanh nhất: Xem hình ảnh chúng ta có thể thấy rằng. Cơ chế async tốt hơn sync về tính trung bình xử lý đồng thời. 1446.324 so với 384.406. Và còn nhiều thông số khác nhỉnh hơn. Nếu bạn cảm thấy chưa thoả mãn, vui lòng đọc thêm thông tin về các chỉ số trên đó. Tóm lạiSo sánh để làm gì? Để luôn nhớ rằng sử dụng chế độ async khi mã của bạn cần thực hiện một số thao tác Blocking i/o vì nó không chặn Event Loop. Giới thiệu về JestJestjs là một JavaScript Testing Framework khá là dễ sử dụng và cài đặt, tuy nhiên vẫn đầy đủ tính năng để bạn có thể sử dụng Bài viết này mình xin giới thiệu một số tính năng cơ bản của jest cùng với một số ví dụ.Cài đặtCài đặt Jest khá đơn giản:
hoặc
Sau đó thêm đoạn code sau vào file package.json:
Tiếp theo mình có ví dụ
một file test:
Để viết test cho file trên mình tạo file
Sau đó chạy Các Matchers trong JestỞ trong đoạn code trên:
Tuy nhiên khi so sánh một Object bạn nên sử dụng
Còn
Hãy viết:
Ngoài ra còn các matchers khác: Truthiness
Numbers
Đối với số thập phân, bạn nên sử dụng
StringBạn có thể kiểm tra một đoạn văn bản với regular expressions bằng
ArrayĐể kiểm tra giá trị có trong một mảng, bạn có thể dùng toContain:
ExceptionsĐể kiểm tra một lỗi có thể xảy ra bạn có thể sử dụng
Một số ví dụTest một action trong redux
Test một event trong Jquery
Bạn có thể thấy Test với module axios
Trong ví dụ này mình đã mock module axios, và đặt giá trị trả về cho hàm get. Như vậy khi test bạn sẽ không cần phải gửi request thật, tránh mất thời gian. Các module khác bạn cũng có thể làm cách tương tự.
|