ปลดล็อก Blockly

เอกสารฉบับนี้มุ่งเป้าไปที่นักพัฒนาซอฟต์แวร์ที่เคยแยกชิ้นส่วน Blockly ก่อนหน้านี้ และต้องการอัปเดตเป็น Blockly รุ่นล่าสุด โดยไม่ต้องแพตช์ไลบรารี แม้ว่าจะดูเป็นงานที่ท้าทาย แต่ก็มี 2-3 ขั้นตอนที่คุณทำได้เพื่อทำให้กระบวนการจัดการได้ง่ายขึ้น

ทำความเข้าใจการปลดล็อก

การใช้ Mainline Blockly จะหมายความว่าคุณใช้ Blockly เวอร์ชันที่เพิ่งเปิดตัวเมื่อเร็วๆ นี้ และการปรับแต่งทั้งหมดของคุณจะใช้ Blockly API แบบสาธารณะ โดยไม่ต้องใช้ Monkeypatching การปลดล็อกเป็นขั้นตอนที่คุณต้องทำเพื่อนำฟังก์ชันที่กำหนดเองของ Fork ไปใช้ด้วย API หลัก

เคสที่ถอดออกจากชิ้นส่วนได้ง่าย

ด้านล่างนี้เป็นเหตุผลโดยทั่วไป 2 ประการที่คุณอาจได้แยกออกมา และวิธีกลับมาสู่เนื้อหาหลัก

  • คุณสร้างบล็อกและตัวสร้างของคุณเองโดยไม่ได้เปลี่ยนแปลงโค้ด Blockly เลย: เพื่อคลายเครียดในสถานการณ์นี้ คุณเพียงแค่ย้ายบล็อกและตัวสร้างที่กำหนดเองออกจากที่เก็บ Blockly แล้วไปใส่ในโค้ดของแอปพลิเคชันของคุณเอง จากนั้นคุณควรอัปเดตเวอร์ชัน Blockly ได้
  • คุณเพิ่มฟังก์ชันที่กำหนดเองในเนมสเปซ Blockly โดยไม่เปลี่ยนแปลงโค้ด Blockly ใดๆ เช่น คุณได้เพิ่มช่องที่กำหนดเองหรือวิธีการช่วยเหลือที่ใช้โดยแอปพลิเคชันของคุณเองเท่านั้น หากต้องการยกเลิกการเชื่อมโยงในสถานการณ์นี้ ให้ย้ายโค้ดที่กำหนดเองนี้ไปยังแอปพลิเคชันของคุณนอกที่เก็บ Blockly จากนั้นคุณควรอัปเดตเวอร์ชัน Blockly ได้

เคสแกะรอยขนาดใหญ่

กำหนดฟังก์ชันการทำงานที่แยก

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

ทำความเข้าใจสถาปัตยกรรม

เมื่อคุณเข้าใจฟีเจอร์ที่ใช้ API เฉพาะของ Fork ให้พิจารณาสิ่งต่อไปนี้

  • สำหรับแต่ละฟีเจอร์ที่ใช้ส้อม มีวิธีจําลองโดยใช้ Blockly API ไหม
  • หากคุณจําลองฟีเจอร์นี้โดยใช้ Blockly API ไม่ได้ โปรดติดต่อเราผ่านฟอรัมหรือแจ้งปัญหาใน GitHub จากนั้นทีมของเราจะตรวจสอบการเพิ่ม API เพื่อทำการปรับแต่งให้คุณ

กำหนดเส้นทางการปลดล็อก

ขั้นตอนต่อไปคือการเริ่มกระบวนการนำสถาปัตยกรรมแบบ Blockly ใหม่สำหรับฟีเจอร์โดยใช้ส้อม มี 2 วิธีหลักๆ ที่คุณนำไปใช้ได้

  • อัปเกรด Blockly และดูว่าจะมีข้อขัดข้องอะไร: คุณจะเห็นพื้นที่ในโค้ดที่ต้องอัปเดตทันที คุณสามารถใช้ข้อมูลนี้ประกอบกับ สิ่งที่คุณทราบอยู่แล้วคือพฤติกรรมที่กำหนดเองเพื่อเป็นแนวทางในการพัฒนาได้
  • เปลี่ยนโครงสร้างโค้ดเพื่อแยกฟีเจอร์ออกจาก Blockly: ทำให้ต้องเข้าใจอย่างถ่องแท้ว่าฟีเจอร์ใดปรับแต่งให้เหมาะกับส้อมของคุณ และฟีเจอร์ใดมาจาก Blockly เมื่อแยกโค้ดเรียบร้อยแล้ว ให้แทนที่ Blockly เวอร์ชันเก่าด้วยเวอร์ชันล่าสุด จากนั้นแก้ไขปัญหาการผสานรวมที่เหลืออยู่

ไปข้างหน้า

กฎ 2-3 ข้อที่คุณควรปฏิบัติตามในฐานะนักพัฒนาซอฟต์แวร์ Blockly ในอนาคตมีดังนี้

  • โดยทั่วไป คุณไม่ควรเพิ่มคลาสใหม่ในเนมสเปซ Blockly คุณสามารถลงทะเบียนช่องที่กำหนดเองหรือคลาสอื่นๆ ที่จดทะเบียนได้โดยไม่จำเป็นต้องประกาศในที่เก็บของ Blockly หรือในเนมสเปซ Blockly
  • คุณไม่ควรใช้เครื่องมือบิลด์ของ Blockly ในการรวบรวมแอปพลิเคชันของคุณ เราไม่ถือว่าเครื่องมือสร้างของเราเป็นส่วนหนึ่งของ API สาธารณะ ดังนั้นเราอาจเปลี่ยนแปลงเครื่องมือดังกล่าวซึ่งจะทำให้แอปพลิเคชันของคุณเสียหาย คุณมีหน้าที่รับผิดชอบในการคอมไพล์แอปพลิเคชันหากต้องการ

เอ่ยขอความช่วยเหลือ

Blockly พร้อมให้บริการผ่านฟอรัม Blocklyเสมอ หากพบปัญหาใดๆ ในระหว่างขั้นตอนการปลดปล่อย คุณสามารถโพสต์ปัญหาเหล่านั้นไว้ที่นั้นได้ เราพร้อมช่วยเหลือคุณ