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ọ.
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 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?
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.
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.
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.
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
.
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.
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).
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.
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!