Gần đây, Polymer và Thành phần web là những chủ đề rất hot. Vì hệ sinh thái này đang phát triển nhanh chóng, nên các nhà phát triển thường khó nắm bắt được tất cả thay đổi mới nhất.
Trong bài nói chuyện tại Chrome Dev Summit, Matt McNulty, nhà quản lý kỹ thuật của nhóm Polymer, đã giải thích về Polymer và cũng nêu ra lộ trình cho Polymer 1.0.
Polymer là gì?
Trước tiên, Polymer chính xác 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 tiên tiến cho phép nhà phát triển mở rộng từ vựng HTML bằng các phần tử tuỳ chỉnh của riêng họ.

Vì Thành phần web được thiết kế để trở thành một thành phần gốc mới cho trình duyệt, nên chúng rất mạnh mẽ nhưng cũng ở cấp rất thấp và cần có một chút mã để làm việc với chúng.

Polymer giúp bạn dễ dàng thao tác với Thành phần web bằng cách "đơn giản hoá" cú pháp. Điều này giúp giảm lượng mã nguyên mẫu mà bạn cần viết và thêm một kiểu khai báo để việc tạo Thành phần web trở nên dễ dàng như viết HTML.
Thí nghiệm về polymer
Polymer bắt đầu như một thử nghiệm để xem liệu chúng ta có thể polyfill các tiêu chuẩn Thành phần web và nhận ý kiến phản hồi từ các nhà phát triển hay không trước khi các công nghệ này được phân phối trong tất cả các trình duyệt. Khi ngày càng có nhiều nhà phát triển bắt đầu sử dụng Polymer, công cụ này đã thay đổi từ việc chỉ là polyfill thành một thư viện thực tế đầy đủ các tính năng nâng cao năng suất (liên kết dữ liệu, trình quan sát thay đổi thuộc tính, tìm nút tự động, v.v.). Nhưng tất cả các 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 khả năng biểu đạt và năng suất tăng lên 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ể.
Điều này làm nổi bật một sự căng thẳng tự nhiên mà Polymer đã có từ lâu: là một thử nghiệm để thúc đẩy nền tảng web phát triển, nhưng cũng tạo ra một sản phẩm đáng tin cậy mà nhà phát triển có thể dựa vào.
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 với mục tiêu tạo ra một phiên bản gọn nhẹ hơn, sẵn sàng cho sản xuất mà các nhà phát triển có thể tự tin sử dụng.
Lớp
Polymer đã được tái cấu trúc thành một loạt các lớp. Các tính năng cốt lõi nhanh và gọn, trong khi các tính năng nâng cao hơn sẽ là tuỳ chọn. Đối với hầu hết các trường hợp sử dụng, các tính năng cốt lõi phải đáp ứng được nhu cầu của nhà phát triển.

Liên kết dữ liệu đơn giản
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, tính năng liên kết hai chiều hiện là tuỳ chọn, trong đó liên kết một chiều là mặc định. 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 một sự kiện để giúp các phần tử từ nhiều thư viện dễ dàng giao tiếp hơn.

Shadow DOM gọn gàng hơn
Shadow DOM polyfill là một thành tựu kỹ thuật đáng kinh ngạc. API này được thiết kế để toàn diện và tuân thủ thông số kỹ thuật, điều này rất quan trọng để kiểm thử kỹ lưỡng nền tảng gốc, nhưng đáng tiếc là gây ra một số nút thắt cổ chai 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ẽ sử dụng một phương pháp khác, sử dụng một lớp kiểu shim chỉ polyfill những gì Polymer cần.

Trình bổ trợ hiện có sẽ tiếp tục hoạt động cho các thành phần web chung chung, không phải Polymer.
Di chuyển sang webcomponents.org
Nói về polyfill, chúng cũng sẽ có một vị trí mới. Hiện tại, nhiều nhà phát triển vẫn còn nhầm lẫn về mối quan hệ giữa Polymer và Thành phần web. Một số người nghĩ rằng bạn phải sử dụng tất cả các thành phần của Polymer để sử dụng Thành phần web, trong khi thực tế, bạn chỉ cần polyfill.
Để làm rõ sự khác biệt này, các polyfill đang được chuyển sang webcomponents.org và hiện đã được đổi tên thành webcomponents.js
.

Động thái này được thiết kế để giúp các tác giả thư viện khác tận dụng các polyfill mà không gặp bất kỳ sự nhầm lẫn nào. Nhóm Polymer sẽ tiếp tục đóng góp cho các polyfill, nhưng hy vọng rằng thay đổi này sẽ giúp các polyfill trở thành tài nguyên dùng chung cho cộng đồng.
Kết quả
Vậy kết quả của 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ốc độ đã nhanh hơn 8 lần.

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

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). Tuy nhiên, nhóm muốn làm rõ rằng đây không phải là bản viết lại. Việc di chuyển dự án hiện tại của bạn từ Polymer 0.5 sang 0.8 sẽ khá đơn giản.
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 dùng thử 0.8 hiện có dưới dạng một nhánh trên GitHub (mặc dù vẫn đang được phát triển rất tích cực và thiếu tài liệu). Bản thử nghiệm beta chính thức 0.9 dự kiến sẽ ra mắt vào Quý 1 năm 2015, còn bản 1.0 sẽ ra mắt vào khoảng Quý 2.
Thử nghiệm đã kết thúc
Với tất cả những thay đổi gần đây trong Polymer, nhóm đứng sau dự án 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 ngăn xếp của mọi nhà phát triển. Nếu bạn mới sử dụng Thành phần web, thì đây là thời điểm thích hợp để tìm hiểu và làm quen với những công nghệ mang tính độ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 thực sự rất tươi sáng. Hãy theo dõi Blog Polymer để biết mọi thông tin cập nhật mới nhất và đăng ký danh sách gửi thư của Polymer để đặt câu hỏi hoặc bình luận. Chúc bạn hack thành công!