Thay thế JavaScript bằng WebAssugging: Cách eBay tạo một ứng dụng web nhanh hơn 50 lần bằng cách chuyển đổi ngôn ngữ lập trình

0
60

            Và tại sao JavaScript vẫn có vai trò quan trọng.
        

            
                                                                             
            
            

                 ] ]
    

     Các ngôn ngữ lập trình tốt nhất để học trong năm 2019: Các kỹ năng mã hóa hàng đầu trả cho bạn nhiều nhất
     Đây là những ngôn ngữ có nhu cầu cao nhất và đưa ra mức lương cao nhất.
    

    

    
        

Trang web đấu giá trực tuyến eBay đã nêu chi tiết cách nó tăng hiệu suất của một ứng dụng web đòi hỏi gấp 50 lần bằng cách sử dụng WebAssugging.

Việc tăng tốc "đáng kinh ngạc" khi chuyển từ ứng dụng web dựa trên JavaScript sang phần lớn dựa trên WebAssugging đã được nhóm kỹ thuật eBay vạch ra, họ nói rằng việc tăng hiệu suất đã giúp họ xây dựng mã vạch có độ chính xác cao máy quét như một ứng dụng web lần đầu tiên.

Bằng cách biên dịch mã thành WebAssugging, nhà phát triển có thể xây dựng các ứng dụng mang lại hiệu suất cao nhất quán trong trình duyệt web, tương tự như các ứng dụng được cung cấp tự nhiên.

eBay rất muốn khai thác hiệu suất đó cho phiên bản web của máy quét mã vạch, một tính năng mà nó cung cấp trong các ứng dụng Android và iOS để cho phép người bán quét các mặt hàng mà họ đang bán đấu giá.

"WebAssugging khác biệt. Nó có tiềm năng to lớn, chúng tôi không có trường hợp sử dụng đúng. Chà, điều đó đã thay đổi gần đây", nhóm kỹ sư phần mềm eBay viết.

Một trong những lợi thế của WebAssugging (Wasm) là nó cung cấp tính di động mã, cho phép các nhà phát triển lấy mã họ đã viết cho các nền tảng khác và biên dịch sang WebAssugging để nó có thể chạy trong các trình duyệt web chính.

Do đó, eBay có thể lấy phiên bản hiện tại của máy quét mã vạch được viết bằng C ++ và biên dịch nó thành Wasm bằng Emscripten, áp dụng phương pháp dựa trên Docker và Node.js được nêu ở đây.

Sau một vài sự cố mọc răng nhỏ, nhóm eBay đã có thể chạy máy quét mã vạch trong trình duyệt, sử dụng một luồng công nhân và mã keo JavaScript.

Máy quét dựa trên Wasm có thể xử lý hình ảnh của mã vạch ở tốc độ 50 khung hình mỗi giây (FPS), so với khoảng 1FPS trong máy quét dựa trên JavaScript trước đây mà eBay đã thử nghiệm, một nhóm tăng tốc đã mô tả là "đáng kinh ngạc".

XEM: Mẹo để xây dựng sự nghiệp thành công như một kỹ sư phần mềm (PDF miễn phí) (TechRepublic)

Vấn đề là máy quét dựa trên Wasm vẫn không thể phát hiện được mã vạch trong 40% trường hợp.

Nhóm ban đầu đã bối rối tại sao cùng một mã C ++ hoạt động trong khoảng 100% trường hợp khi được biên dịch sang ứng dụng Android và iOS đã thất bại khi được biên dịch sang Wasm để chạy trong trình duyệt. Cuối cùng đã xuất hiện rằng các ứng dụng gốc này có thể vượt qua các vấn đề về chất lượng hình ảnh bằng cách sử dụng API dành riêng cho nền tảng cho phép tự động lấy nét và các tính năng khác.

Giải pháp của eBay là sử dụng nhiều máy quét mã vạch chạy cùng nhau trong trình duyệt: ứng dụng dựa trên Wasm, trình đọc mã vạch nguồn mở ZBar được biên dịch cho Wasm và mã máy quét dựa trên JavaScript gốc.

 ebaywasm.png "width =" 370 "/> </span><figcaption>
<div class=

Cấu trúc của máy quét mã vạch dựa trên web cuối cùng.

                                            Hình: eBay
                                        

Chỉ bằng cách chạy cả ba bên cạnh nhau trong các luồng nhân viên web riêng biệt và mỗi lần thử đọc mã vạch, ứng dụng web máy quét có thể xử lý gần 100% mã vạch.

"Thật ngạc nhiên, với ba luồng đua với nhau, tỷ lệ thành công thực sự gần 100%. Điều này một lần nữa là hoàn toàn bất ngờ", nhóm nghiên cứu viết.

"JavaScript đã hoạt động rất tốt trong một số trường hợp nhất định và yếu tố này dường như đã thu hẹp khoảng cách. Vì vậy, 'luôn đặt cược vào JavaScript'."
Trong các thử nghiệm, ZBar đã đóng góp tới 53% số lần quét thành công , tiếp theo là trình quét C ++ tùy chỉnh của eBay với 34% và cuối cùng là thư viện JavaScript với 13%.

Máy quét mã vạch dựa trên web cuối cùng cũng chứng tỏ là thành công với khách hàng trong quá trình thử nghiệm A / B, dẫn đến tăng 30% người dùng eBay đã hoàn thành quá trình liệt kê một mặt hàng để bán đấu giá trên trang web .

"Công nghệ phát triển với tốc độ rất nhanh. Mỗi ngày chúng ta đều nghe thấy những điều mới được đưa ra. Nhưng chỉ một số ít tạo ra sự khác biệt cho khách hàng và WebAssugging là một trong số đó", nhóm viết.

                                                                                

                                                

Cũng xem