WordPress สำรวจ JavaScript Framework-Agnostic Approach เพื่อสร้าง Gutenberg Blocks
เผยแพร่แล้ว: 2017-09-23
การอภิปรายเกี่ยวกับการเลือกเฟรมเวิร์ก JavaScript ของ WordPress จะดำเนินต่อไปในช่อง #core-js Slack ก่อนการประชุมในสัปดาห์หน้า หนึ่งในหัวข้อล่าสุดคือความเป็นไปได้ของการแสดงผลบล็อกไม่เชื่อเรื่องพระเจ้ากรอบงานสำหรับ Gutenberg ซึ่งจะช่วยให้นักพัฒนาสามารถขยายตัวแก้ไขใหม่โดยใช้ไลบรารี JS ใดก็ได้ที่พวกเขาต้องการ ซึ่งหมายความว่าบล็อก Gutenberg ซึ่งเรียกกันทั่วไปว่า "Gutenblocks" สามารถสร้างด้วย Vue, React, Preact, Angular หรืออะไรก็ตามที่นักพัฒนารู้สึกสบายใจที่จะใช้
ผู้เสนอแนวคิดนี้โต้แย้งว่าการใช้แนวทางที่ยืดหยุ่นยิ่งขึ้นทำให้การตัดสินใจในกรอบงาน JS หลักของ WordPress มีความสำคัญน้อยลง ขณะตอบคำถามในช่อง #core-js Gary Pendergast อธิบายว่า Gutenberg สามารถสร้างขึ้นเพื่อรักษาการแยกจากกันได้อย่างไร
“ฉันไม่ได้ล้อเล่นจริงๆ เมื่อฉันพูดว่าการตัดสินใจครั้งนี้ไม่สำคัญ แม้แต่กับคนที่เกี่ยวข้องกับ Gutenberg” Pendergast กล่าว “ใน #2463 ห้องสมุดได้รับการปฏิบัติเหมือนเป็นไลบรารียูทิลิตี้ทั้งหมด เหมือนกับที่เราใช้ lodash เป็นต้น มันทำงานไม่กี่อย่าง และสามารถดึงออกและแทนที่ด้วยสิ่งที่แตกต่างไปจากเดิมอย่างสิ้นเชิงได้ค่อนข้างง่าย โดยไม่มีการหยุดชะงักของฐานรหัสที่เหลือ สำหรับผู้ที่มีส่วนร่วมใน Gutenberg พวกเขากำลังมีส่วนร่วมในรูปแบบการเข้ารหัส Gutenberg ไม่ใช่รูปแบบของห้องสมุดที่เรานำเข้ามา”
เมื่อถามถึงไทม์ไลน์ว่าจะทำการตัดสินใจเมื่อใดและพิจารณาปัจจัยใดบ้าง Pendergast ตอบว่าไม่มีไทม์ไลน์และผู้ที่สนใจจะเข้าร่วมควรบล็อกเกี่ยวกับประสบการณ์ของตนและเขียนตัวอย่างสิ่งที่พวกเขาสามารถสร้างด้วยเฟรมเวิร์ก JS ที่พวกเขาได้ เป็นที่คุ้นเคย
“ไม่มีแผนงาน ไม่มีไทม์ไลน์ และไม่จำเป็นต้องมี” เพนเดอร์แกสต์กล่าว “อย่างที่ Matt ได้กล่าวไว้ มันเป็นเพียงการตัดสินใจทางเทคนิค – การตัดสินใจที่สำคัญสำหรับชุมชนในวงกว้างคือการเลือก 'ไม่ตอบสนอง' น่าเสียดายที่การตัดสินใจครั้งนี้ไม่เป็นไปตามสัดส่วน และมีการขัดแย้งอย่างมากกับ 'ไลบรารี JS ใดที่ฉันสามารถสร้างปลั๊กอินได้' และบางครั้ง 'แนวทางปฏิบัติของไลบรารี JS ใดที่บล็อก Gutenberg จะคล้ายคลึงกัน' ซึ่งไม่เกี่ยวข้องกัน ทวีตและโพสต์ที่ปฏิบัติเหมือนการแข่งม้าจะไม่เป็นประโยชน์ในลักษณะนี้”
Pendergast กล่าวว่าไลบรารีใดก็ตามที่เลือกไว้จะ "ยังคงถูกห่อโดยองค์ประกอบของ WordPress ไลบรารีพื้นฐานจะไม่ถูกเปิดเผย" ทีมงาน Gutenberg กำลังทำงานเพื่อลบการพึ่งพาไลบรารีทั้งหมดออกจากส่วนประกอบเพื่อให้นักพัฒนาปลั๊กอินสามารถใช้ไลบรารีใดก็ได้ที่พวกเขาเลือก
อย่างไรก็ตาม สมาชิกชุมชนคนอื่นๆ ไม่ค่อยกระตือรือร้นที่จะผลักไสไลบรารี JS ที่เลือกให้เป็นแกนหลัก ไปสู่การตัดสินใจทางเทคนิคอย่างง่ายหรือไลบรารียูทิลิตี้
“นักพัฒนาส่วนใหญ่เข้าใจว่าปลั๊กอินของพวกเขาไม่ได้ถูกผูกมัดโดยเฟรมเวิร์กที่เลือกสำหรับคอร์/กูเทนเบิร์ก” เควิน ฮอฟฟ์แมนกล่าว “แต่นั่นไม่ได้ลดความสำคัญของการตัดสินใจ หากเราต้องการสนับสนุนผู้มีส่วนร่วมมากขึ้น เราน่าจะเลือกกรอบการทำงานที่คนส่วนใหญ่รู้สึกว่ามีความสามารถและมั่นใจ หากส่วนใหญ่มีการพัฒนาปลั๊กอินด้วยเฟรมเวิร์กเดียวและต้องเรียนรู้อีกเฟรมหนึ่งเพื่อมีส่วนร่วมในคอร์ แสดงว่าเรากำลังจำกัดจำนวนผู้มีส่วนร่วมที่มีศักยภาพ”
Peter Booker เชื่อว่าไม่ว่าการแยกจาก Gutenberg จะสวยงามเพียงใด การมีความเข้าใจที่ดีเกี่ยวกับไลบรารีที่เลือกสำหรับแกนกลางจะส่งผลต่อความสามารถของนักพัฒนาในการแก้ไขปัญหาบางอย่างอย่างลึกซึ้ง
“ฉันไม่คิดว่าเราควรเพิกเฉยต่อตัวเลือกดังกล่าว เนื่องจากเป็นการตัดสินใจทางเทคนิคเล็กน้อย” บุ๊คเกอร์กล่าว “การทำความเข้าใจว่า PHP, JavaScript และ Backbone ทำงานอย่างไร (เหนือสิ่งอื่นใด) เป็นสิ่งสำคัญเพื่อให้สามารถดีบักปัญหากับ WordPress ได้อย่างเหมาะสม กรอบงาน JS ที่เลือกสำหรับ Gutenberg จะส่งผลกระทบต่อผู้คนจำนวนมาก แม้ว่าเราจะไม่ใช่ผู้สนับสนุนหลักก็ตาม มันจะเป็นความรู้ที่จำเป็นเพื่อให้สามารถแก้ไขปัญหาได้อย่างเต็มที่ นี่เป็นการตัดสินใจที่จะส่งผลกระทบต่อผู้คนมากกว่าแค่ทีม Gutenberg”

อะไรคือความหมายของการจัดหาแนวทางที่ยืดหยุ่นและไม่เชื่อเรื่องพระเจ้าในกรอบงานเพื่อสร้าง Gutenblocks?
Jason Bahl ถามว่ามีใครลองผสม React, Preact, Vue และ Angular ในแอปเดียวเพื่อดูว่าเป็น "สูตรสำหรับฝันร้ายประสิทธิภาพ" หรือไม่ เขายกตัวอย่างสถานการณ์ที่ Gravity Forms สร้าง Gutenblocks แบบ Vue, Yoast มีบล็อกที่ใช้ React, WooCommerce สร้างบล็อกด้วย Preact และปลั๊กอินอื่นใช้ Ember
Bahl กล่าวว่า “การมีความยืดหยุ่นและอนุญาตให้ผู้คนใช้อะไรก็ตามที่ฟังดูดี ฟังดูดี แต่ก็อาจนำไปสู่ความแตกแยกมากมายเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุด และปัญหาด้านประสิทธิภาพที่อาจเกิดขึ้นได้” “เราจะเห็นบทช่วยสอนปรากฏขึ้นเกี่ยวกับวิธีการสร้าง Gutenblocks ใน Vue, React, Preact, Ember, Vanilla JS ฯลฯ ซึ่งน่าจะดูดี แต่ยังสับสนและอาจทำให้เกิดการแบ่งแยกเพิ่มเติมในชุมชนและยอมรับแนวทางปฏิบัติที่ดีที่สุด . ความยืดหยุ่นเป็นสิ่งที่ดีในระดับหนึ่ง แต่ความคิดเห็นที่ดีในบางระดับก็เป็นสิ่งที่ดีเช่นกัน”
คาร์ล แฮนค็อก ผู้ร่วมก่อตั้ง Gravity Forms เชื่อว่าการเสนอแนวทางแบบไม่เชื่อเรื่องพระเจ้าในกรอบงานเพื่อสร้าง Gutenblocks จะมีอิทธิพลเพียงเล็กน้อยต่อนักพัฒนาที่กำลังขยายโครงการ การตัดสินใจนี้ไม่ได้มีความสำคัญน้อยลงด้วยการนำเสนอความยืดหยุ่นที่มากขึ้น เนื่องจากนักพัฒนาซอฟต์แวร์จะปรับใช้สิ่งที่แกนหลักของ WordPress นำไปใช้อย่างหลีกเลี่ยงไม่ได้
“ผู้คนจะลงเอยด้วยการใช้แกนกลางใดก็ตามที่ใช้เป็นส่วนใหญ่ แม้จะมีรุ้งและผีเสื้อที่บางคนอ้างว่าเกี่ยวข้องกับการสร้างเลเยอร์ที่เป็นนามธรรม ดังนั้นนักพัฒนาปลั๊กอิน/ธีมจึงสามารถใช้สิ่งที่พวกเขาต้องการได้” แฮนค็อกกล่าว “ซึ่งหมายความว่าแม้ว่าเฟรมเวิร์กหลักจะซับซ้อนเพียงใดจะส่งผลโดยตรงต่ออุปสรรคในการเข้าร่วมสำหรับนักพัฒนาปลั๊กอินและธีม อุปสรรคในการเข้าร่วมนั้นมีน้อยในอดีตและเป็นผู้สนับสนุนโดยตรงต่อการเติบโตของ WordPress ในฐานะ CMS ที่โฮสต์ด้วยตนเอง การเพิ่มอุปสรรคในการเข้าอย่างมากไม่จำเป็นต้องเป็นสิ่งที่ไม่ดี ตัวอย่างเช่น Gravity Forms จะใช้ Preact, Vue, อะไรก็ได้ เพราะเรามีกำลังคนและทักษะที่จะทำเช่นนั้น เมื่อเราสามารถตัดสินใจได้ในที่สุดเมื่อแกนกลางตัดสินใจแล้ว”
โอกาสของ WordPress ในการพัฒนาเว็บ
ปัจจุบัน WordPress ขับเคลื่อน 28% ของเว็บไซต์ทั้งหมดตาม W3 Techs และเฟรมเวิร์กใดก็ตามที่เลือกจะสร้างผลกระทบสำคัญต่อไลบรารีที่นักพัฒนาซอฟต์แวร์จำนวนมากตัดสินใจเรียนรู้เพื่อขยายซอฟต์แวร์และก้าวหน้าในอาชีพการงาน
Matias Ventura หนึ่งในหัวหน้าฝ่ายเทคนิคของโครงการ Gutenberg สนับสนุนให้ผู้เข้าร่วมการอภิปรายมองภาพรวมและเปิดรับโอกาสในการทำงานร่วมกันและทำงานร่วมกันในโซลูชันสำหรับ WordPress ที่จะพัฒนาเว็บ ความพยายามของทีมในการร่วมมือกับตัวแทนจากเฟรมเวิร์กที่แข่งขันกันนั้นมีความโดดเด่นในระบบนิเวศที่โดยทั่วไปแล้วจะกระจัดกระจายและแตกหักง่าย
“ผมรู้สึกตื่นเต้นกับโอกาสที่เราต้องพัฒนาเว็บในแง่ของการแสดง JavaScript UI ในลักษณะเดียวกันกับที่ WordPress เป็นแรงผลักดันสำหรับมาตรฐานเว็บในช่วงทศวรรษที่ผ่านมา” Ventura กล่าว “นั่นคือสิ่งที่ฉันเห็นเรามีความรับผิดชอบในฐานะโครงการ เนื่องจากผู้คนจะเรียนรู้การพัฒนาเว็บผ่าน WP ต่อไป ผู้คนจำนวนมากคุ้นเคยกับ PHP ผ่าน WordPress ซึ่งเดิมทีเพียงแค่โต้ตอบกับฟังก์ชัน WP และ API เท่านั้น ในที่สุดก็เจาะลึกเข้าไปในภาษาอีกเล็กน้อยตามต้องการ ฉันเห็นว่าแกนกลางของเรายังคงใกล้เคียงกับภาษาของ JS เนื่องจากนั่นให้เครื่องมือที่มีความหมายมากที่สุดในการเรียนรู้ ครอบคลุมทุกกรอบงานและไลบรารี”
Ventura ให้ความมั่นใจแก่ผู้เข้าร่วมในการอภิปรายอย่างต่อเนื่องว่าทีม Gutenberg กำลังรับฟังและทำงานเพื่อแก้ปัญหาที่จะผลักดันเว็บไปข้างหน้า
“เราทราบดีว่าวิธีที่เราสร้างและสิ่งที่เรานำเสนอผ่าน Gutenberg จะส่งผลกระทบต่อชุมชนนักพัฒนา และเราจะไม่มองข้ามเรื่องนี้ไป ซึ่งค่อนข้างตรงกันข้าม” Ventura กล่าว “ฉันได้พูดคุยกับ Evan (Vue) และ Jason (Preact) เพราะแทนที่จะมีการแข่งขัน 'เลือกเฟรมเวิร์กของคุณ' ดูเหมือนว่าจะเป็นโอกาสในการทำงานร่วมกันและผลักดันเว็บไปข้างหน้า”
