เอกสารนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่แยก Blockly ออกมาก่อนหน้านี้และต้องการอัปเดตเป็น Blockly เวอร์ชันล่าสุดโดยไม่ต้องแพตช์ไลบรารี แม้ว่าการดำเนินการนี้อาจดูเป็นเรื่องยาก แต่คุณก็ทําตามขั้นตอนต่อไปนี้ได้เพื่อให้จัดการกระบวนการได้ง่ายขึ้น
ทําความเข้าใจการเลิกแยก
การใช้ Blockly เวอร์ชันหลักหมายความว่าคุณกำลังใช้ Blockly เวอร์ชันที่เพิ่งเปิดตัว และการปรับแต่งทั้งหมดจะใช้ Blockly API สาธารณะโดยไม่ต้องใช้ Monkeypatching การเลิกแยกเป็นเวอร์ชันแยกต่างหากคือสิ่งที่คุณต้องทําเพื่อใช้ฟังก์ชันที่กําหนดเองของเวอร์ชันแยกต่างหากกับ API หลัก
กรณีการเลิกแยกสาขาแบบง่าย
ด้านล่างนี้คือสาเหตุ 2 ข้อที่พบบ่อยที่คุณอาจแยกออกมา และวิธีกลับไปใช้เวอร์ชันหลัก
- คุณสร้างบล็อกและเครื่องมือสร้างของคุณเองโดยไม่เปลี่ยนแปลงโค้ด Blockly: หากต้องการเลิกแยกในสถานการณ์นี้ เพียงย้ายบล็อกและเครื่องมือสร้างที่กำหนดเองออกจากที่เก็บ Blockly ไปยังโค้ดของแอปพลิเคชันของคุณเอง จากนั้นคุณควรจะอัปเดตเวอร์ชัน Blockly ได้
- คุณเพิ่มฟังก์ชันการทำงานที่กำหนดเองในเนมสเปซ Blockly โดยไม่เปลี่ยนแปลงโค้ด Blockly เช่น เพิ่มช่องที่กำหนดเองหรือเมธอดตัวช่วยที่ใช้โดยแอปพลิเคชันของคุณเองเท่านั้น หากต้องการเลิกแยกในสถานการณ์นี้ ให้ย้ายโค้ดที่กําหนดเองนี้ไปยังแอปพลิเคชันของคุณเองนอกที่เก็บ Blockly จากนั้นคุณควรจะอัปเดตเวอร์ชัน Blockly ได้
เคสการแยกสาขาจำนวนมาก
ระบุฟังก์ชันการแยก
เหตุผลสุดท้ายที่เราเห็นว่าผู้ใช้แยกเป็นเวอร์ชันใหม่คือเพื่อแก้ไข Blockly เพื่อสร้างฟังก์ชันการทำงานที่กําหนดเองซึ่งผู้ใช้เห็นว่าไม่ได้รวมอยู่ในเวอร์ชันหลักในขณะนั้น หากฟอร์กของคุณล้าสมัยมาก เราอาจเพิ่มฟังก์ชันการทำงานที่คุณต้องการแล้ว ไม่ว่าจะเป็นปลั๊กอินหรือในโค้ดหลัก การทราบว่าคุณเพิ่มฟีเจอร์ใดในฟอรค์จะเป็นแผนงานสำหรับฟีเจอร์ที่คุณต้องอัปเดต
ทําความเข้าใจสถาปัตยกรรม
เมื่อเข้าใจฟีเจอร์ที่ใช้ API สำหรับแต่ละเวอร์ชันแล้ว ให้พิจารณาสิ่งต่อไปนี้
- สำหรับฟีเจอร์แต่ละรายการที่ใช้การแยก ฟีเจอร์เหล่านั้นทำซ้ำได้ไหมโดยใช้ Blockly API
- หากดูเหมือนว่าคุณไม่สามารถจำลองฟีเจอร์นี้โดยใช้ Blockly API ได้ โปรดติดต่อเราผ่านฟอรัมหรือแจ้งปัญหาใน GitHub จากนั้นทีมของเราจะตรวจสอบการเพิ่ม API เพื่อเปิดใช้การปรับแต่ง
กำหนดเส้นทางการเลิกแยก
ขั้นตอนถัดไปคือการเริ่มกระบวนการติดตั้งใช้งานสถาปัตยกรรมใหม่ที่ใช้ Blockly สำหรับฟีเจอร์ต่างๆ โดยใช้การแยก แนวทางหลักๆ ที่คุณทำได้มี 2 วิธีดังนี้
- อัปเกรด Blockly และดูว่ามีอะไรเสียหายบ้าง: คุณจะเห็นส่วนต่างๆ ในโค้ดที่ต้องอัปเดตทันที คุณสามารถใช้ข้อมูลนี้ร่วมกับสิ่งที่คุณทราบอยู่แล้วว่าเป็นลักษณะการทำงานที่กำหนดเองเพื่อเป็นแนวทางในการพัฒนาได้
- ปรับโค้ดเพื่อแยกฟีเจอร์ออกจาก Blockly: ขั้นตอนนี้กำหนดให้คุณต้องทำความเข้าใจอย่างละเอียดว่าฟีเจอร์ใดที่กำหนดเองสำหรับบิลด์ของคุณและฟีเจอร์ใดที่มาจาก Blockly เมื่อแยกโค้ดออกอย่างสมบูรณ์แล้ว ให้แทนที่ Blockly เวอร์ชันเก่าด้วยเวอร์ชันล่าสุด จากนั้นแก้ไขปัญหาการผสานรวมที่เหลือ
การดำเนินการต่อจากนี้
กฎ 2-3 ข้อที่คุณควรปฏิบัติตามในฐานะนักพัฒนาซอฟต์แวร์ Blockly ในอนาคตมีดังนี้
- โดยทั่วไปแล้ว คุณไม่ควรเพิ่มคลาสใหม่ลงในเนมสเปซ Blockly คุณสามารถลงทะเบียนช่องที่กำหนดเองหรือคลาสอื่นๆ ที่ลงทะเบียนได้โดยไม่ต้องประกาศภายในที่เก็บ Blockly หรือในเนมสเปซ Blockly
- คุณไม่ควรใช้เครื่องมือสร้างของ Blockly เพื่อคอมไพล์แอปพลิเคชันของคุณเอง เราไม่ได้ถือว่าเครื่องมือสร้างของเราเป็นส่วนหนึ่งของ API สาธารณะ เราจึงอาจทำการเปลี่ยนแปลงเครื่องมือสร้างซึ่งทำให้แอปพลิเคชันของคุณใช้งานไม่ได้ คุณมีหน้าที่รับผิดชอบในการคอมไพล์แอปพลิเคชันหากต้องการ
ติดต่อ
ทีม Blockly พร้อมให้ความช่วยเหลือผ่านฟอรัม Blockly หากพบปัญหาระหว่างขั้นตอนการเลิกแยก โปรดโพสต์ปัญหาดังกล่าวในฟอรัมดังกล่าวและเราจะช่วยคุณ