Hội nghị Chrome Dev 2014 – Polymer – Nhà nước của liên minh

Polymer và Thành phần web là những chủ đề rất nổi bật hiện nay và do hệ sinh thái này đang phát triển nhanh chóng nên nhà phát triển thường rất khó nắm bắt được những thay đổi mới nhất.

Trong bài nói chuyện tại Hội nghị dành cho nhà phát triển Chrome, Matt McNulty, giám đốc kỹ thuật của nhóm Polymer, đã giải thích Polymer là gì, đồng thời vạch ra lộ trình chuyển sang Polymer 1.0.

Polymer là gì?

Trước tiên, chính xác thì Polymer là gì?

Polymer là một thư viện giúp bạn tạo các phần tử và ứng dụng từ các thành phần web. Thành phần web là một bộ tiêu chuẩn mới, cho phép nhà phát triển mở rộng vốn từ của HTML bằng các phần tử tuỳ chỉnh của riêng họ.

Polymer giúp nhà phát triển xây dựng ứng dụng nhanh hơn

Do Thành phần web được thiết kế là một yếu tố gốc mới của trình duyệt, điều đó có nghĩa là Thành phần web rất mạnh mẽ nhưng mức độ rất thấp và để làm việc với chúng đòi hỏi một ít mã lập trình.

Polymer giúp Thành phần web trở nên ngọt ngào hơn

Polymer giúp bạn xử lý Thành phần web dễ dàng hơn bằng cách "tạo đường" cho cú pháp. Công cụ này giúp giảm số lượng mã nguyên mẫu cần viết và thêm kiểu khai báo để việc tạo Thành phần web cũng dễ dàng như viết HTML.

Thử nghiệm polymer

Polymer bắt đầu như một thử nghiệm để xem liệu chúng tôi có thể hoàn thành các tiêu chuẩn Thành phần web bằng polyfill và nhận phản hồi từ các nhà phát triển trước khi những công nghệ này được triển khai trong tất cả các trình duyệt hay không. Khi ngày càng nhiều nhà phát triển bắt đầu sử dụng Polymer, thư viện này đã thay đổi từ chỉ có nhiều đoạn polyfill thành một thư viện thực tế có nhiều tính năng cải thiện hiệu suất (liên kết dữ liệu, trình theo dõi thay đổi thuộc tính, tìm nút tự động, v.v.). Nhưng mọi thử nghiệm đều có kết quả, vậy chúng tôi làm như thế nào?

Thẻ báo cáo polymer cần được cải thiện

Mặc dù nhiều nhà phát triển cho biết họ thích tính biểu đạt và năng suất khi làm việc với Thành phần web trong Polymer, nhưng họ cũng bày tỏ lo ngại về hiệu suất và độ phức tạp tổng thể.

Nó nêu bật một sức căng tự nhiên mà Polymer đã trải qua: trở thành một thử nghiệm không chỉ để thúc đẩy nền tảng web phát triển, mà còn tạo ra một sản phẩm đáng tin cậy mà các nhà phát triển có thể tin tưởng.

Những thay đổi sắp tới

Nhóm Polymer đã xem xét kỹ lưỡng mọi tính năng của thư viện nhằm tạo ra một phiên bản tinh gọn hơn, có thể phát hành công khai mà các nhà phát triển có thể cảm thấy yên tâm khi sử dụng.

Lớp

Polymer đã được tái cấu trúc thành một loạt lớp. Các tính năng cốt lõi có tốc độ nhanh và tinh gọn, còn những tính năng nâng cao hơn sẽ có lựa chọn sử dụng. Đối với phần lớn trường hợp sử dụng, các tính năng cốt lõi phải đáp ứng nhu cầu của nhà phát triển.

Polymer đã được tái cấu trúc thành các lớp

Liên kết dữ liệu được đơn giản hoá

Hệ thống liên kết dữ liệu của Polymer cũng đã được tối ưu hoá đáng kể về hiệu suất. Theo phương pháp phân lớp, liên kết hai chiều hiện là liên kết chọn tham gia, với mặc định là liên kết một chiều. Ngoài ra, các loại thuộc tính đã xuất bản đã được làm rõ và việc thay đổi thuộc tính hiện sẽ kích hoạt sự kiện để giúp các phần tử từ nhiều thư viện khác nhau giao tiếp dễ dàng hơn.

Liên kết dữ liệu đã được đơn giản hóa

DOM tối hơn

Đoạn polyfill của Shadow DOM là một kỳ công đáng kinh ngạc của kỹ thuật. Nền tảng này được thiết kế để tuân thủ toàn diện và tuân thủ thông số kỹ thuật. Điều này rất quan trọng cho việc kiểm thử kỹ lưỡng nền tảng gốc, nhưng đáng tiếc là nó đã gây ra một số điểm tắc nghẽn về hiệu suất cho các tính năng mà Polymer không sử dụng.

Bản phát hành tiếp theo của Polymer sẽ có một cách tiếp cận khác, sử dụng lớp phủ kiểu shim chỉ polyfill những gì Polymer cần.

Bóng đổ nhanh hơn nhiều

Polyfill hiện có sẽ hoạt động cho các thành phần web chung, không phải Polymer.

Di chuyển sang web mạo.org

Nói về nhựa polyfill, chúng cũng sắp có một ngôi nhà mới. Hiện tại, nhiều nhà phát triển vẫn chưa hiểu rõ về mối quan hệ giữa Polymer và Thành phần web. Một số người cho rằng phải dùng toàn bộ Polymer để sử dụng Thành phần web, trong khi thực tế, bạn chỉ cần các polyfill.

Để làm rõ sự khác biệt này, các đoạn mã polyfill sẽ được chuyển sang webes.org và nay được đổi tên thành webcomponents.js.

Các Polyfill di chuyển sang webcomponent.org

Sự di chuyển này được thiết kế để giúp các tác giả thư viện khác tận dụng các đoạn mã polyfill mà không bị nhầm lẫn. Nhóm Polymer sẽ tiếp tục đóng góp cho các polyfill, nhưng chúng tôi hy vọng rằng sự thay đổi này sẽ giúp chúng trở thành một nguồn tài nguyên chung cho cộng đồng.

Kết quả

Vậy kết quả từ tất cả những thay đổi này là gì?

Tốc độ

Trên Chrome, Polymer hiện nhanh hơn 5 lần và trên Safari, đã tăng tốc độ lên 8 lần.

Polymer hiện nhanh hơn 8 lần trong Safari

Kích thước tệp

Kích thước tệp cũng đã giảm 87%, từ 123KB xuống còn 15KB (6KB nén).

Polymer nay nhỏ hơn 87%

Lộ trình

Sẽ có một số thay đổi có thể gây lỗi API trong bản phát hành tiếp theo, được biểu thị bằng số phiên bản mới (0.8) nhưng nhóm muốn làm rõ rằng đây không phải là một bản viết lại. Việc chuyển dự án hiện tại của bạn từ Polymer 0,5 sang 0,8 sẽ khá bình thường.

Nhóm Polymer cũng đã vạch ra lộ trình để giúp nhà phát triển hiểu rõ hơn về các bản phát hành sắp tới.

lộ trình polymer, beta trong quý 1, 1.0 trong quý 2

Bản xem trước 0.8 hiện có sẵn dưới dạng một nhánh trên GitHub (mặc dù nó vẫn đang được phát triển rất tích cực và thiếu tài liệu). Bản beta chính thức 0.9 được lên kế hoạch cho quý 1 năm 2015, với phiên bản 1.0 sẽ diễn ra vào quý 2.

Thử nghiệm đã kết thúc

Với tất cả những thay đổi gần đây trong Polymer, đội ngũ xây dựng nền tảng này đang đặt nền tảng để Thành phần web trở thành một phần không thể thiếu trong hệ thống của mọi nhà phát triển. Nếu bạn mới sử dụng Thành phần web thì bây giờ là thời điểm tuyệt vời để xem và làm quen với những công nghệ đột phá này. Nếu bạn đã làm việc với các thành phần (và Polymer), tương lai sẽ thực sự tươi sáng. Hãy theo dõi Polymer Blog để biết tất cả nội dung cập nhật mới nhất và đăng ký danh sách gửi thư của Polymer nếu bạn có câu hỏi hoặc nhận xét. Chúc bạn tấn công!