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