เอกสารนี้จะอธิบายวิธีสร้างปลั๊กอินใหม่ แม้ว่ากระบวนการที่อธิบายไว้จะเป็นการสร้างปลั๊กอินของบุคคลที่หนึ่ง แต่คุณก็สามารถใช้เป็นแนวทางในการสร้างปลั๊กอินของบุคคลที่สามได้
ดูภาพรวมของปลั๊กอินได้ที่ปลั๊กอิน
หากต้องการดูข้อมูลเบื้องต้นเกี่ยวกับวิธีสร้างปลั๊กอิน โปรดดูวิธีสร้างปลั๊กอิน ทอล์ก (2021)
บุคคลที่หนึ่งเทียบกับบุคคลที่สาม
ผู้ใช้เป้าหมายของปลั๊กอินคือนักพัฒนาซอฟต์แวร์ที่ค้นหาและใช้ปลั๊กอินผ่าน npm
ปลั๊กอินของบุคคลที่หนึ่งได้รับการสนับสนุนจากทีม Blockly และเผยแพร่ภายใต้ขอบเขต @blockly
ใน npm โดยได้รับการออกแบบมาให้ใช้งานได้ในแอปพลิเคชัน Blockly ที่หลากหลาย รวมถึงมีความเสถียรและใช้งานง่าย โดยจะจัดเก็บไว้ใน
blockly-samples ฟิลด์สำหรับ
การตั้งค่าความเร็วมอเตอร์สามารถใช้ในโปรเจ็กต์หุ่นยนต์หลายโปรเจ็กต์และเป็น
ตัวเลือกที่ดีสำหรับปลั๊กอินของบุคคลที่หนึ่ง
ปลั๊กอินของบุคคลที่สามได้รับการดูแลและเผยแพร่แยกกัน ซึ่งอาจมีความซับซ้อนมากขึ้น เป็นการทดลองมากขึ้น หรือกำหนดเป้าหมายไปยังแอปพลิเคชัน Blockly ที่แคบลง ฟิลด์สำหรับการแก้ไขออบเจ็กต์ที่เฉพาะเจาะจงซึ่งกำหนดโดยสคีมาฐานข้อมูลของคุณจะดีกว่าหากเป็นปลั๊กอินของบุคคลที่สาม
เกณฑ์ของบุคคลที่หนึ่ง
ปลั๊กอินของบุคคลที่หนึ่งต้องเป็นไปตามข้อกำหนดต่อไปนี้
- ทำงานในแพลตฟอร์มหลักทั้งหมด เว้นแต่จะได้รับการยกเว้นจากทีม Blockly
- Chrome, Firefox, Safari, Edge
- มีผู้เขียนที่เต็มใจจัดการข้อบกพร่องในช่วงปีแรก
- อย่าแก้ไข Blockly
- มี API ที่กำหนดไว้อย่างชัดเจนและมีเอกสารประกอบ
- อย่าเรียกใช้ฟังก์ชันส่วนตัวหรือฟังก์ชันแพ็กเกจจาก Blockly Core เว้นแต่จะได้รับ
การยกเว้นจากทีม Blockly
- คุณสามารถลบล้างฟังก์ชันของแพ็กเกจในคลาสย่อยที่คุณกำหนดได้
- หากต้องการรับการยกเว้น โปรดสอบถามเราในปัญหาเกี่ยวกับ blockly-samples
- มีแบบทดสอบ
กระบวนการ
ปลั๊กอินจะผ่าน 4 ขั้นตอน ได้แก่ คำแนะนำ การอภิปราย การติดตั้งใช้งาน และ การเผยแพร่
คำแนะนำ
ปลั๊กอินจะเริ่มต้นเป็นคำแนะนำ คุณแนะนำปลั๊กอินได้โดยสร้างปัญหาใหม่ด้วยเทมเพลตคำขอฟีเจอร์ ดูข้อมูลเพิ่มเติมได้ที่วิธีเขียนคำขอฟีเจอร์
นอกเหนือจากข้อมูลคำขอฟีเจอร์พื้นฐานแล้ว คำแนะนำปลั๊กอินควรมีข้อมูลต่อไปนี้
- API ที่ปลั๊กอินจะแสดง
- API ที่ต้องเพิ่มหรือเปลี่ยนแปลงใน Blockly หลักเพื่อรองรับปลั๊กอิน
- ภาพหน้าจอ, GIF หรือภาพจำลอง หากปลั๊กอินมีฟีเจอร์ UI
- คําอธิบายสาเหตุที่ควรเป็นปลั๊กอินของบุคคลที่หนึ่งมากกว่าปลั๊กอินของบุคคลที่สาม
ทีม Blockly จะตรวจสอบคำแนะนำที่ได้รับและปิดปัญหา หรือเห็นด้วยว่าคำแนะนำนั้นจะเป็นปลั๊กอินของบุคคลที่หนึ่งที่ดี
การสนทนา
จากนั้นปลั๊กอินจะเข้าสู่ระยะการอภิปราย ขั้นตอนนี้ประกอบด้วย
- การชี้แจงฟังก์ชันที่ต้องการ
- การชี้แจง API ของปลั๊กอิน
- การวางแผนการติดตั้งใช้งาน
- การวางแผนสำหรับการทดสอบ
- การอภิปรายเกี่ยวกับการเปลี่ยนแปลง API ใน Blockly หลัก
- แบ่งปลั๊กอินขนาดใหญ่ออกเป็นขั้นตอนการติดตั้งใช้งาน
- การตั้งชื่อปลั๊กอินตามแบบแผนการตั้งชื่อ
- ยืนยันว่าจะเป็นไปตามเกณฑ์ของบุคคลที่หนึ่งทั้งหมด
โดยปกติแล้วการสนทนานี้จะเกิดขึ้นในปัญหาของ GitHub ยิ่งขอบเขตของ ปลั๊กอินมีขนาดเล็กเท่าใด ระยะการสนทนาก็จะยิ่งเร็วขึ้นเท่านั้น ปลั๊กอินขนาดใหญ่อาจดึงดูด ความสนใจของชุมชนและทำให้เกิดความคิดเห็นที่ชัดเจนเกี่ยวกับโซลูชันที่เหมาะสม หากปัญหานี้ เกิดขึ้นกับปัญหาของคุณ ก็ขอแสดงความยินดีด้วย คุณได้ค้นพบสิ่งที่ผู้คน สนใจ
เป้าหมายคือเมื่อสิ้นสุดระยะการพูดคุย เราจะตัดสินใจเรื่องการออกแบบที่สำคัญทั้งหมด และมีรายการขั้นตอนการติดตั้งใช้งานที่ชัดเจน ทั้งสองควร บันทึกไว้ในความคิดเห็นเกี่ยวกับปัญหา
ในระหว่างการสนทนา เราอาจตัดสินใจว่าปลั๊กอินควรเป็นปลั๊กอินของบุคคลที่สาม
และไม่ควรเผยแพร่ภายใต้ขอบเขตของ @blockly
ในกรณีดังกล่าว เราจะอธิบาย
เหตุผลและปิดปัญหา
เมื่อการสนทนาเสร็จสิ้น สมาชิกในทีม Blockly จะบันทึกว่าพร้อมที่จะ นำไปใช้
การใช้งาน
ขั้นตอนการติดตั้งใช้งานมีดังนี้
- การเรียกใช้
npx @blockly/create-package
เพื่อตั้งค่าปลั๊กอินและไดเรกทอรี จากเทมเพลต ดูข้อมูล เพิ่มเติม... - การใช้ตรรกะหลักสำหรับปลั๊กอิน
- การติดตั้งใช้งาน UI หากจำเป็น
- การทดสอบปลั๊กอินโดยใช้ Mocha
- การจัดทำเอกสารปลั๊กอิน รวมถึง
README
หากปลั๊กอินที่แนะนำได้รับการอนุมัติให้ใช้งานแล้วและคุณต้องการ ทำงานกับปลั๊กอินดังกล่าว ให้แสดงความคิดเห็นในปัญหาและถามว่ายังเปิดรับการมีส่วนร่วมอยู่หรือไม่
โดยผู้มีส่วนร่วมหลายคนอาจทำการติดตั้งใช้งานพร้อมกัน คุณอาจ ใช้ปลั๊กอินร่วมกันใน Fork ของคุณเอง หรือผ่านคำขอ Pull เทียบกับที่เก็บนี้ หากต้องการทำงานร่วมกันในปลั๊กอินในที่เก็บนี้ โปรดขอให้ทีม Blockly สร้างกิ่งก้านฟีเจอร์ให้คุณ
ควรเพิ่มปลั๊กอินลงในไฟล์
gh-pages/index.md
ในสาขา master
ของ blockly-samples ซึ่งจะทำให้ปลั๊กอินปรากฏในเว็บไซต์ปลั๊กอินของเรา ปลั๊กอินของบุคคลที่หนึ่ง
ควรชี้ไปยังหน้าทดสอบของปลั๊กอิน นอกจากนี้ คุณยังเพิ่มปลั๊กอินของบุคคลที่สาม
ในหน้านี้ได้ และสามารถชี้ไปยังลิงก์ที่เจ้าของเลือกได้ เช่น
เดโมที่โฮสต์หรือหน้า npm
การเผยแพร่
สุดท้ายคือการเผยแพร่ ทีม Blockly ใช้ Lerna เพื่อ จัดการการกำหนดเวอร์ชันและการเผยแพร่ปลั๊กอินทั้งหมด
ทุกวันพฤหัสบดี ระบบจะเผยแพร่ปลั๊กอินที่มีการเปลี่ยนแปลงนับตั้งแต่การเผยแพร่ครั้งล่าสุด หากต้องการให้เผยแพร่การเปลี่ยนแปลงเร็วขึ้น โปรดระบุในคำขอ Pull
นอกจากนี้ เรายังอัปเดตเว็บไซต์ปลั๊กอินทุกครั้งที่มีการเผยแพร่ปลั๊กอิน
ปลั๊กอินที่ยังไม่พร้อมเผยแพร่ควรทำเครื่องหมาย private
ใน
package.json
กรณีนี้อาจเกิดขึ้นหากปลั๊กอินอาศัยการเปลี่ยนแปลงที่ยังไม่ได้เผยแพร่
ใน Blockly หลัก เราจะเผยแพร่ Blockly หลัก
ในสัปดาห์สุดท้ายของแต่ละไตรมาส (ทุกๆ 3 เดือน)