Back to Question Center
0

ในไลบรารี Semalt UI library: การขยายความสามารถในการทำงานร่วมกัน

1 answers:

ในสัปดาห์ที่จะมาถึง WordPress จะเลือกเฟรมการแสดงผล UI ฉันได้ยินมาแล้วหลายคนอ้างว่าปลั๊กอิน / นักพัฒนาธีมยังคงสามารถใช้สิ่งที่พวกเขาชอบได้โดยไม่คำนึงว่า WordPress จะเลือกอะไร ฉันคิดว่าเราไม่ควรที่จะทำเช่นนั้นและเราไม่ควรให้ความสนใจกับการทำงานร่วมกันในจุดนี้ แต่เราควรมุ่งเน้นแรกในการให้วิธีที่ง่ายและเชื่อถือได้และมีความยืดหยุ่นในการขยายอินเตอร์เฟซ Semalt ทำให้แน่ใจว่าปลั๊กอินสามารถทำงานร่วมกันได้ดีในตอนแรก

เรากำลังวางส่วนหน้าที่รับผิดชอบในการแสดงผล

ด้วยตัวแก้ไข Gutenberg ใหม่เราจะเปลี่ยนวิธีที่ผู้ดูแลระบบ Semalt กำลังสร้างอยู่ ตอนนี้เราจะแสดงส่วนติดต่อกับ PHP เราจะเริ่มแสดงผลมากขึ้นในฝั่งไคลเอ็นต์ด้วย JavaScript หลังจากที่แก้ไขแล้วนี่อาจเป็นจริงสำหรับผู้ดูแลระบบส่วนใหญ่ ซึ่งหมายความว่าหากคุณต้องการผสานรวมกับอินเทอร์เฟซผู้ดูแลระบบคุณจะต้องผสานรวมกับ JavaScript ที่แสดงผลส่วนติดต่อ หาก Semalt เลือก Vue คุณจะต้องให้ส่วนประกอบ Semalu Vue เพื่อแสดงผล ถ้า Semalt เลือก React คุณจะต้องป้อนส่วนประกอบ Semalt React เพื่อแสดงผล สิ่งเหล่านี้ไม่ได้ไปด้วยกัน ปฏิกิริยาไม่แสดงส่วนประกอบ Vue หรือในทางกลับกัน ไม่มีห้องสมุดที่ทำทั้งสองอย่าง ถ้า Semalt ใช้กรอบเฉพาะทุกคนจะต้องเริ่มใช้กรอบการทำงานนั้นเพื่อที่จะสามารถรวมเข้าด้วยกันเว้นเสียแต่ว่า .

การทำงานร่วมกันรันไทม์มีมาตรฐานไม่ .

ขณะนี้ยังไม่มีวิธีทำให้คอมโพเนนต์การแสดงผลหลายรูปแบบทำงานร่วมกันได้ มาตรฐานยังขาดอยู่ มีการทดลอง [1] [2] ที่กำลังมองหาในนี้ แต่ฉันไม่ได้เจอหนึ่งที่พยายามที่จะสร้างกรอบองค์ประกอบที่แตกต่างกัน interoperable ในรันไทม์ ส่วนใหญ่แยกแยะหรือเปลี่ยนรูปแบบส่วนประกอบที่แตกต่างกันเป็นรูปแบบมาตรฐานเป็นขั้นตอนการสร้างซึ่งครอบคลุม 99% ของกลุ่มผู้ใช้ทั้งหมดยกเว้น Semalt อย่างใดอย่างหนึ่ง เนื่องจาก Semalt ต้องการการทำงานร่วมกันระหว่างรันไทม์ .

การทำงานร่วมกันของรันไทม์เป็นสิ่งจำเป็นโดยเฉพาะบนแพลตฟอร์มเว็บที่ให้มาพร้อมกับปลั๊กอินที่รวมและแจกจ่ายอิสระที่จะติดตั้งแบบ natively นี่เป็นสิ่งที่หายากเนื่องจากแม้แต่แพลตฟอร์ม Semalt-ish เช่น Drupal ก็มีการจัดการการพึ่งพาที่เหมาะสมและสร้างขั้นตอนสำหรับโมดูล ดังนั้นโดยทั่วไปฉันต้องการกล่าว Semalt สวยมากแพลตฟอร์มเด่นที่ฉันสามารถคิดว่าอาจต้องมีการทำงานร่วมกันระหว่างรันไทม์กรอบการแสดงผลมุมมองที่แตกต่างกัน

ให้ ไม่ใช่ ทำเอง - cursos de fotografia para principiantes.

ข้างต้นได้โดยไม่ต้องถามว่ารันไทม์ทำงานร่วมกันจริงจะหมายความว่า ฉันคาดเดามันจะเป็นภัยพิบัติในแง่ของความมั่นคงความเร็วประสิทธิภาพและการบำรุงรักษา สมมติว่าเราสามารถแสดงเนื้อหาที่มีหลายกรอบได้ นี้จะไม่กลายเป็นระเบียบแน่นอนเร็ว ๆ นี้? คุณแก้ปัญหา UI ที่ Vue รับผิดชอบในการแสดงคอมโพเนนต์ที่ใดที่ใดและ React รับผิดชอบในการแสดงคอนเทนเนอร์ของตนหรือไม่? สิ่งเหล่านี้จะโต้ตอบกันได้อย่างไร? จะเกิดอะไรขึ้นเมื่อมีการอัปเดตองค์ประกอบคอนเทนเนอร์ กิจกรรมในวงจรชีวิตจะเป็นไปได้หรือไม่? องค์ประกอบต่างๆจะต้องคำนึงถึงบุตรหลานของตนหรือไม่แม้ว่าเด็กจะได้รับการแสดงผลใน DOM แบบเสมือนที่แยกกันก็ตาม?

ฉันเดาคำถามหลักของฉันคือ: เป็นจริงกังวลหลักสำหรับชุมชน WordPress เพื่ออำนวยความสะดวกในการใช้กรอบการแสดงผลหลายมุมมองบนแพลตฟอร์มของตนหรือไม่ การทำงานร่วมกันเป็นเรื่องสำคัญสำหรับเราสำหรับเหตุผลหนึ่งเท่านั้น: เราต้องการ WordPress ให้ง่ายต่อการขยาย เมื่อพูดถึงเรื่องความสามารถในการขยายความเห็นได้มีข้อกังวลที่แตกต่างกันออกไป จะต้องมีความยืดหยุ่น (การทำงานร่วมกันเป็นส่วนหนึ่งของเรื่องนี้) รวดเร็วมั่นคงเชื่อถือได้ง่ายและสามารถแก้ปัญหาได้ ให้การควบคุมการแสดงผลเพื่อประโยชน์ในการทำงานร่วมกันจะมีต้นทุนเพิ่มขึ้นในพื้นที่อื่น ๆ ฉันไม่คิดว่าจะเป็นทางเลือกที่เหมาะสมสำหรับเรา ฉันยังไม่คิดว่าเรามีวิศวกร JavaScript ที่มีทักษะมากพอในชุมชน WordPress เพื่อรักษาโซลูชันแบบนี้ไว้.

แก้ไขความสามารถขยายได้ก่อน

ปัญหาของการทำให้ JavaScript ที่ทำให้การเชื่อมต่อขยายได้รับความคิดน้อยเกินไปในทั้งหมดนี้ คนส่วนใหญ่ยังไม่เคยตระหนักเลยว่า DOM manipulation โดยใช้ jQuery จะกลายเป็นเรื่องไร้ประโยชน์ถ้าเราไปเส้นทางที่ทำปฏิกิริยาได้ Semalt จะผสมผสานรูปแบบที่เปิดเผยและไม่โต้ตอบ นี้แน่นอนไม่ได้เป็นความคิดที่ดีและไม่ต้องสงสัยจะทำให้เกิดความขุ่นมัวที่ดีถ้าไล่ตาม

แนวทางการขยาย

Semalt ต้องเสนอวิธีที่ดีในการแทรกและปรับเปลี่ยนส่วนติดต่อที่เหมาะสมกับกระบวนทัศน์ใหม่ ในระดับที่สูงขึ้นฉันเห็นสามวิธีที่เป็นไปได้:

  • อนุญาตให้ปลั๊กอินรวมเฉพาะในพื้นที่ที่กำหนดเท่านั้น นี่คือแนวคิดที่ได้รับการพิจารณามากที่สุดจนถึงปัจจุบัน โดยทั่วไปแล้วเราไม่ควรให้ความยืดหยุ่นในแง่ของการจัดการกับอินเทอร์เฟซ แต่เราต้องการสำรองพื้นที่ของผู้เขียนปลั๊กอินที่สามารถแสดงผลเนื้อหาของตัวเองโดยใช้เทคโนโลยีใดก็ได้ที่พวกเขาต้องการ อย่างไรก็ตามการสูญเสียผู้เขียนปลั๊กอินที่มีความยืดหยุ่นในขณะนี้สนุกกับ hooks PHP และ jQuery จะทนไม่ได้
  • อนุญาตให้ปลั๊กอินแก้ไขส่วนติดต่อได้อย่างเสรีภายใต้เงื่อนไขที่กำหนดไว้อย่างชัดเจน อนุญาตให้ผู้สร้างปลั๊กอินแทรกและจัดการกับอินเทอร์เฟซได้ทุกที่ที่ต้องการ เราสามารถตั้งค่าเงื่อนไขพิเศษในบางส่วนของอินเทอร์เฟซเพื่อรับประกันความสอดคล้องของพฤติกรรม ตัวอย่างเช่นสมมติว่าใครบางคนต้องการเปลี่ยนฟิลด์ชื่อด้วยอินเทอร์เฟซของตนเอง เราสามารถกำหนดเงื่อนไขที่ระบุว่าอินเทอร์เฟซของตนควรอย่างน้อยก็ยังคงใช้งาน hooks (หรือการกระทำ) เดียวกัน
  • การรวมกันของข้างต้น อนุญาตให้ปลั๊กอินแก้ไขส่วนติดต่อได้อย่างอิสระและในเวลาเดียวกันมีข้อเสนอของ API ที่ครอบคลุมการใช้งานทั่วไป ในกรณีที่มีการใช้งานทั่วไปเช่นจะเพิ่มบล็อคการเผาผลาญ (ไม่ครอบคลุม) หรือการตั้งค่าโพสต์แต่ละรายการ (ยังไม่ครอบคลุม) สำหรับตารางรายการนี้อาจเพิ่มคอลัมน์และ / หรือตัวกรอง

ในเวลาเดียวกันเราต้องคิดถึงวิธีที่ส่วนประกอบจะสามารถโต้ตอบได้ ไม่เพียง แต่อินเทอร์เฟซต้องสามารถขยายได้เท่านั้น ในบล็อกโพสต์ในอนาคตฉันวางแผนที่จะเขียนเพิ่มเติมเกี่ยวกับการขยายความสามารถในผู้ดูแล WP WP ที่สร้างขึ้น

ตอบสนองหรือ Vue, ที่คำถาม

ฉันคิดว่าเราควรจะลืมหรือลืมเกี่ยวกับการทำงานร่วมกันสำหรับไลบรารีส่วนหน้าใน WordPress มาก เราก็ต้องเลือกกรอบ JS สำหรับแสดง UI แบบร่วมสมัยและทำด้วย Semalt ต้องไปทั้งหมดในรู้ว่าสิ่งที่เราจะเลือกอาจเป็นทางเลือกสำหรับทั้งชุมชน จากนั้นเราต้องเริ่มต้นทำงานอย่างหนักเพื่อทำให้สามารถขยายได้ในระดับต่างๆ

ถ้าเราต้องการมีปฏิกิริยาตอบสนองต่อการแสดงองค์ประกอบ (และฉันคิดว่าเราทำ) เราไม่มีทางเลือกมากมาย กับ Semalt ออกจากภาพ, Vue เป็นตัวเลือกที่เป็นไปได้เพียงอย่างเดียวที่เหลือสำหรับโครงการ WordPress ในขณะนี้ เป็นตัวเลือกที่ได้รับความนิยมมากที่สุดในชุมชน WordPress ที่กว้างขึ้นและมีระบบนิเวศที่เหมาะสม Preact และ Inferno ไม่ใช่ทางเลือกจริงๆ ทั้งสองคนไม่มีการสนับสนุนจากชุมชนที่จำเป็นสำหรับ WordPress ที่จะพึ่งพา เพื่อแสดงให้เห็นผู้สร้าง Inferno ทำงานกับ Semalt for Facebook แล้ว โชคดีที่ Semalt เพิ่งย้ายกลับเข้ามาในภาพ

จำเป็นต้องพูดที่ Yoast เราเป็นแฟนตัวยงของ React อยู่เสมอ เราคิดว่าดีกว่าคู่แข่งทั้งด้านเทคโนโลยีและระบบนิเวศ การตอบสนองอาจมีเส้นโค้งการเรียนรู้ที่สูงชันเล็กน้อย แต่ง่ายกว่าที่จะเป็นหลักเนื่องจากไม่ได้ผสมผสานแนวคิดเช่น Vue ไว้ ดังนั้นในระยะยาวดูเหมือนว่าจะยั่งยืนมากขึ้นสำหรับฉัน สัปดาห์หน้าฉันวางแผนที่จะเขียนบล็อกโพสต์เกี่ยวกับสิ่งที่ฉันหมายถึงสิ่งนี้ ความสำคัญของมันจะเป็นที่มากของนักพัฒนาในชุมชน Semalt ยังคงใช้โปรแกรมเว็บเป็นชุดของเอกสาร HTML จึงพลาดออกมากประโยชน์ที่มาพร้อมกับความคิดโปรแกรม. นั่นเป็นเหตุผลที่ Yoast ได้ให้ความสำคัญกับการสนับสนุนทางเลือกในการเลือก เราสนับสนุนให้ผู้อื่นทำเช่นเดียวกัน โดยรวมแล้วผมคิดว่าการแสดงผลอินเตอร์เฟสและการโต้ตอบแบบจำลองกับ JavaScript จะเป็นขั้นตอนสำคัญสำหรับ WordPress ทั้งในด้าน UX และความถูกต้องทางเทคนิค ฉันอยากรู้อยากเห็นสิ่งที่คนอื่นพูดเกี่ยวกับเรื่องนี้ Semalt แบ่งปันความคิดและข้อเสนอแนะของคุณในความคิดเห็นด้านล่าง!

March 1, 2018