ช่วงนี้ Polymer และ Web Components เป็นหัวข้อที่ร้อนแรงมาก และเนื่องจากระบบนิเวศนี้พัฒนาอย่างรวดเร็ว นักพัฒนาซอฟต์แวร์จึงมักติดตามการเปลี่ยนแปลงล่าสุดทั้งหมดได้ยาก
ในการบรรยายที่ Chrome Dev Summit นั้น Matt McNulty ซึ่งเป็นผู้จัดการฝ่ายวิศวกรของทีม Polymer ได้อธิบายว่า Polymer คืออะไร และสรุปแผนพัฒนาของ Polymer 1.0
Polymer คืออะไร
ก่อนอื่นมาทำความเข้าใจกันก่อนว่า Polymer คืออะไร
Polymer คือไลบรารีที่ช่วยให้คุณสร้างองค์ประกอบและแอปจากคอมโพเนนต์เว็บ คอมโพเนนต์เว็บคือชุดมาตรฐานใหม่สุดล้ำที่ช่วยนักพัฒนาซอฟต์แวร์ขยายคลังคำศัพท์ HTML ด้วยองค์ประกอบที่กำหนดเอง

เนื่องจาก Web Components ออกแบบมาเพื่อเป็นองค์ประกอบพื้นฐานใหม่สำหรับเบราว์เซอร์ จึงมีความสามารถสูงมาก แต่ก็เป็นองค์ประกอบระดับต่ำมากด้วย และการใช้งาน Web Components ต้องใช้โค้ดค่อนข้างมาก

Polymer ช่วยให้ใช้งานคอมโพเนนต์เว็บได้ง่ายขึ้นด้วย "การทำให้โค้ดอ่านง่าย" ซึ่งจะช่วยลดจำนวนโค้ดที่ซ้ำกันซึ่งคุณต้องเขียน และเพิ่มรูปแบบประกาศเพื่อให้การสร้าง Web Components เป็นเรื่องง่ายเหมือนกับการเขียน HTML
The Polymer Experiment
Polymer เริ่มต้นจากการทดสอบเพื่อดูว่าเราสามารถใช้ polyfill มาตรฐานคอมโพเนนต์เว็บได้หรือไม่ และรับความคิดเห็นจากนักพัฒนาซอฟต์แวร์ก่อนที่เทคโนโลยีเหล่านี้จะพร้อมใช้งานในเบราว์เซอร์ทุกรุ่น เมื่อนักพัฒนาซอฟต์แวร์เริ่มใช้ Polymer มากขึ้น ทางเราก็ได้เปลี่ยน Polymer จากแค่โพลีฟีลล์เป็นไลบรารีที่เต็มไปด้วยฟีเจอร์ที่เพิ่มประสิทธิภาพการทำงาน (การเชื่อมโยงข้อมูล เครื่องมือตรวจสอบการเปลี่ยนแปลงแอตทริบิวต์ การค้นหาโหนดอัตโนมัติ ฯลฯ) แต่การทดสอบทั้งหมดมีผลลัพธ์ แล้วเราเป็นอย่างไรบ้าง

แม้ว่านักพัฒนาซอฟต์แวร์จำนวนมากจะบอกว่าชอบความยืดหยุ่นและประสิทธิภาพที่เพิ่มขึ้นจากการใช้ Web Components ใน Polymer แต่ก็ยังแสดงความกังวลเกี่ยวกับประสิทธิภาพและความซับซ้อนโดยรวมด้วย
ซึ่งแสดงให้เห็นถึงแรงกดดันตามปกติที่ Polymer มีมาตลอด นั่นคือการทดลองเพื่อพัฒนาแพลตฟอร์มเว็บไปข้างหน้า แต่ก็ต้องสร้างสิ่งที่พร้อมใช้งานจริงซึ่งนักพัฒนาแอปสามารถพึ่งพาได้
การเปลี่ยนแปลงที่กำลังจะเกิดขึ้น
ทีม Polymer ได้พิจารณาฟีเจอร์ทุกรายการของไลบรารีอย่างละเอียด โดยมีเป้าหมายเพื่อพัฒนาเวอร์ชันที่เบาลงและพร้อมใช้งานจริงซึ่งนักพัฒนาแอปสามารถใช้ได้อย่างมั่นใจ
เลเยอร์
Polymer ได้รับการแยกส่วนใหม่เป็นชุดเลเยอร์ ฟีเจอร์หลักจะทำงานได้อย่างรวดเร็วและมีประสิทธิภาพ ส่วนฟีเจอร์ขั้นสูงจะเลือกใช้หรือไม่ก็ได้ ฟีเจอร์หลักควรครอบคลุมความต้องการของนักพัฒนาแอปสำหรับกรณีการใช้งานส่วนใหญ่

การเชื่อมโยงข้อมูลที่ง่ายขึ้น
ระบบการเชื่อมโยงข้อมูลของ Polymer ยังได้รับการเพิ่มประสิทธิภาพเพื่อประสิทธิภาพอย่างมากด้วย ตามแนวทางแบบเป็นชั้น ขณะนี้การเชื่อมโยงแบบ 2 ทางเป็นแบบเลือกใช้ โดยค่าเริ่มต้นจะเป็นการเชื่อมโยงแบบ 1 ทาง นอกจากนี้ ประเภทพร็อพเพอร์ตี้ที่เผยแพร่ยังระบุไว้อย่างชัดเจน และตอนนี้การเปลี่ยนแปลงพร็อพเพอร์ตี้จะทริกเกอร์เหตุการณ์เพื่อช่วยให้การโต้ตอบขององค์ประกอบจากไลบรารีต่างๆ ทำได้ง่ายขึ้น

Shadow DOM ที่มีประสิทธิภาพมากขึ้น
โพลีฟิลล์ Shadow DOM เป็นผลงานทางวิศวกรรมที่น่าทึ่ง เครื่องมือนี้ออกแบบมาให้ครอบคลุมและเป็นไปตามข้อกำหนด ซึ่งสำคัญต่อการทดสอบแพลตฟอร์มพื้นฐานอย่างละเอียด แต่น่าเสียดายที่ทำให้เกิดปัญหาคอขวดด้านประสิทธิภาพสำหรับฟีเจอร์ที่ Polymer ไม่ได้ใช้
Polymer รุ่นถัดไปจะใช้แนวทางที่แตกต่างออกไป โดยจะใช้เลเยอร์สไตล์ชิมที่จะโพลีฟีลเฉพาะสิ่งที่ Polymer ต้องการเท่านั้น

โพลีไฟล์ที่มีอยู่จะยังคงใช้งานได้สำหรับคอมโพเนนต์เว็บทั่วไปที่ไม่ใช่ Polymer
การเปลี่ยนไปใช้ webcomponents.org
พูดถึงโพลีฟิลล์ โพลีฟิลล์ก็จะมีบ้านหลังใหม่ด้วย ปัจจุบันนักพัฒนาซอฟต์แวร์จำนวนมากสับสนเกี่ยวกับความสัมพันธ์ระหว่าง Polymer กับ Web Components บางคนคิดว่าคุณต้องใช้ Polymer ทั้งหมดเพื่อใช้ Web Components แต่จริงๆ แล้วคุณต้องใช้แค่ polyfill เท่านั้น
เราจะย้าย polyfill ไปยัง webcomponents.org และเปลี่ยนชื่อเป็น webcomponents.js
เพื่อให้ความแตกต่างนี้ชัดเจนยิ่งขึ้น

การดำเนินการนี้ออกแบบมาเพื่อช่วยให้ผู้เขียนไลบรารีรายอื่นๆ ใช้ประโยชน์จาก polyfill ได้โดยไม่สับสน ทีม Polymer จะยังคงมีส่วนร่วมใน polyfill ต่อไป แต่เราหวังว่าการเปลี่ยนแปลงนี้จะทำให้ polyfill กลายเป็นทรัพยากรที่ชุมชนสามารถแชร์กันได้มากขึ้น
ผลลัพธ์
การเปลี่ยนแปลงทั้งหมดนี้ส่งผลอย่างไร
ความเร็ว
ใน Chrome ตอนนี้ Polymer ทำงานได้เร็วขึ้น 5 เท่า และใน Safari ทำงานได้เร็วขึ้น 8 เท่า

ขนาดไฟล์
นอกจากนี้ ขนาดไฟล์ยังลดลง 87% จาก 123 KB เหลือ 15 KB (6 KB เมื่อใช้การบีบอัดไฟล์ GZIP)

แผนการใช้งาน
เวอร์ชันถัดไปจะมีการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นของ API ซึ่งระบุด้วยหมายเลขเวอร์ชันใหม่ (0.8) แต่ทีมขอชี้แจงให้ชัดเจนว่านี่ไม่ใช่การเขียนใหม่ การย้ายโปรเจ็กต์ปัจจุบันจาก Polymer 0.5 ไปใช้ 0.8 นั้นค่อนข้างง่าย
ทีม Polymer ยังได้ร่างแผนงานเพื่อให้นักพัฒนาแอปเห็นภาพได้ชัดเจนขึ้นเกี่ยวกับรุ่นที่กำลังจะเปิดตัว

ตัวอย่าง 0.8 พร้อมใช้งานแล้วในสาขาบน GitHub (แม้ว่าจะยังอยู่ระหว่างการพัฒนาอย่างเข้มข้นและยังไม่มีเอกสารประกอบ) เราวางแผนที่จะเปิดตัวเวอร์ชันเบต้าอย่างเป็นทางการ 0.9 ในไตรมาสที่ 1 ปี 2015 และเวอร์ชัน 1.0 จะเปิดตัวในช่วงไตรมาสที่ 2
การทดสอบสิ้นสุดแล้ว
การเปลี่ยนแปลงล่าสุดทั้งหมดใน Polymer แสดงให้เห็นว่าทีมที่อยู่เบื้องหลังกำลังวางรากฐานให้ Web Components กลายเป็นส่วนสำคัญของสแต็กของนักพัฒนาซอฟต์แวร์ทุกคน หากคุณเพิ่งเคยใช้ Web Components ตอนนี้เป็นโอกาสที่ดีในการลองดูและทำความคุ้นเคยกับเทคโนโลยีที่เปลี่ยนแปลงรูปแบบเหล่านี้ หากคุณเคยใช้คอมโพเนนต์ (และ Polymer) อยู่แล้ว อนาคตก็สดใสแน่นอน ติดตามข้อมูลอัปเดตล่าสุดทั้งหมดในบล็อก Polymer และลงชื่อสมัครรับจดหมายข่าวของ Polymer หากมีคำถามหรือความคิดเห็น ขอให้สนุกกับการแฮ็ก