หน้านี้มีรายละเอียดของโปรเจ็กต์การเขียนเชิงเทคนิคที่ได้รับการยอมรับสำหรับ Google Season of Docs
สรุปโปรเจ็กต์
- องค์กรโอเพนซอร์ส
- Rocket.Chat
- นักเขียนเชิงเทคนิค
- มิสเตอร์โกลด์
- ชื่อโปรเจ็กต์:
- เอกสารของบ็อต
- ระยะเวลาของโปรเจ็กต์
- ระยะเวลามาตรฐาน (3 เดือน)
คำอธิบายโปรเจ็กต์
สรุปโปรเจ็กต์
แชทบ็อตเป็นเทคโนโลยีล้ำสมัยในปัจจุบัน อัตราการเติบโตโดยรวมที่สูงมากของซอฟต์แวร์แชทและบ็อต รวมถึงการจดจําคําพูดและการทำงานอัตโนมัติที่เพิ่มขึ้น ส่งผลให้จําเป็นต้องสร้างเอกสารประกอบเกี่ยวกับบ็อตที่เข้าใจง่ายและใช้งานสะดวก
การมีเอกสารประกอบที่ครอบคลุมและชัดเจนยิ่งมีความสําคัญมากขึ้นไปอีก ดังนั้นเอกสารประกอบที่มีอยู่ของบ็อตจึงต้องเข้าถึงและไปยังส่วนต่างๆ ได้ง่ายขึ้น ควรมีวิธีการทีละขั้นตอนแบบรวมสําหรับเฟรมเวิร์กแต่ละรายการที่รองรับ และตัวอย่างที่ครอบคลุม และควรจัดระเบียบเพื่อกำจัดข้อมูลที่ซ้ำซ้อนและเข้าใจยาก
เป้าหมายของโปรเจ็กต์นี้คือเพื่อเติมเต็มช่องว่างความรู้และส่งเสริมให้นักพัฒนาแอปรายใหม่ๆ ที่มีความเชี่ยวชาญน้อยได้นำเสนอประโยชน์ของเทคโนโลยีล้ำสมัยต่อผู้ชมที่สนใจ ซึ่งทำได้โดยการมอบประสบการณ์ที่มีประสิทธิภาพยิ่งขึ้นให้แก่ผู้สร้างบ็อตในการพัฒนาบ็อตของตนเองใน Rocket.Chat เป้าหมายนี้มุ่งที่จะทำให้ Rocket.Chat เป็นแพลตฟอร์มโอเพนซอร์สที่นักพัฒนาซอฟต์แวร์เหล่านี้ต้องการใช้เพื่อสร้างสรรค์ สร้าง และทดสอบไอเดียเกี่ยวกับแชทบ็อต ไม่ว่าเป้าหมายในการใช้งาน BOT สุดท้ายจะเป็นอย่างไรก็ตาม
ปัญหาเกี่ยวกับโปรเจ็กต์
ต่อไปนี้เป็นรายการปัญหาที่สําคัญที่สุดซึ่งเกี่ยวข้องกับเอกสารประกอบของบ็อต
- ข้อมูลทั่วไปเกี่ยวกับบ็อตที่ใช้งานยากและไม่เข้าใจง่าย
- ส่วนที่เกี่ยวข้องกับสถาปัตยกรรมบ็อตกระจายอยู่และซ้ำซ้อน
- วิธีการ "เริ่มต้นใช้งาน" ที่ไม่สอดคล้องกันซึ่งไม่มีแหล่งข้อมูลที่ถูกต้องเพียงแหล่งเดียว
- ไม่มีวิธีการหรือรายละเอียดวิธีการมากเกินไป
- เอกสารประกอบของ Bot SDK ที่ไม่ชัดเจนและคลุมเครือ
โปรเจ็กต์ข้อเสนอ
รายการการเพิ่มประสิทธิภาพที่เสนอตามเป้าหมายของโปรเจ็กต์และปัญหาที่ระบุไว้ข้างต้นมีดังนี้
อัปเดตเอกสารของบ็อต คุณควรอัปเดตเอกสารต่อไปนี้โดยค่อยๆ เปลี่ยนจากเนื้อหาที่เข้าใจง่ายไปเป็นเนื้อหาที่ซับซ้อนมากขึ้น เพื่อให้การเปิดตัวครั้งแรกราบรื่นและสอดคล้องกัน
- ภาพรวมของบ็อต: https://rocket.chat/docs/bots/
- สถาปัตยกรรมของบ็อต: https://rocket.chat/docs/bots/bots-architecture/
- การกำหนดค่าสภาพแวดล้อมบ็อต: https://rocket.chat/docs/bots/configure-bot-environment/
- หน้าแรกของบ็อต: https://github.com/RocketChat/rocketchat.github.io/pull/
จัดระเบียบและรวมเอกสารประกอบการติดตั้งบ็อต โปรเจ็กต์ย่อยทั้งหมดควรมีชุดวิธีการแบบรวมเกี่ยวกับวิธีโคลนที่เก็บข้อมูลของบอดและติดตั้งข้อกำหนดที่จำเป็น วิธีเริ่มต้นใช้งานอย่างรวดเร็ว วิธีใช้งานบอทหลังจากการเปิดตัวครั้งแรก และวิธีทำให้ใช้งานได้
แก้ไขงานนำเสนอเกี่ยวกับเอกสาร Rocket.Chat JS SDK เอกสารประกอบ SDK ควรสร้างขึ้นแบบเป็นโปรแกรมจากซอร์สโค้ดโดยใช้เครื่องมือเฉพาะ การปรับปรุงนี้จะช่วยให้อ่านได้ง่ายและไม่ต้องอัปเดตเอกสารใน Github ด้วยตนเองทุกครั้งที่มีการเปลี่ยนแปลงเมธอด (หรือสิ่งที่อยู่ภายใน)
ไทม์ไลน์
ระยะเวลาตรวจสอบใบสมัคร: ทำความคุ้นเคยกับชุมชนและคนที่จะร่วมงานด้วย ดูคู่มือและแนวทางปฏิบัติแนะนำเกี่ยวกับการมีส่วนร่วมของชุมชน มีส่วนร่วมครั้งแรก
การสร้างความสัมพันธ์ในชุมชน: สำรวจชุมชน ตรวจสอบสถานะปัจจุบันของเอกสารประกอบของบ็อต ระบุจุดอ่อน
สัปดาห์ที่ 1: ที่สอดคล้องกับที่ปรึกษาเกี่ยวกับวิสัยทัศน์ใหม่ของบ็อต สร้างเนื้อหาที่อัปเดตสำหรับหน้าแรกของบ็อตใหม่ตามวิสัยทัศน์นั้น
สัปดาห์ที่ 2: แก้ไขภาพรวม สถาปัตยกรรม การกำหนดค่าของหน้าสภาพแวดล้อมของบอท
สัปดาห์ที่ 3 - กําหนดรายการโปรเจ็กต์ย่อย (ที่เก็บ GitHub ของบ็อต) ที่ควรโอนไปยังเอกสารประกอบหลัก - กำหนดวิธีที่เว็บไซต์บ็อตควรทำงานหลังจากการโอน - กำหนดเทมเพลตที่จะใช้เพื่อจัดระเบียบข้อมูลภายในที่เก็บเหล่านี้ - เตรียมเอกสารหลักสำหรับการโอน
สัปดาห์ที่ 4: โอนที่เก็บ bBot จัดระเบียบข้อมูลตามเทมเพลตที่กําหนด
สัปดาห์ที่ 5: โอนที่เก็บ Hubot จัดระเบียบข้อมูลตามเทมเพลตที่กำหนด
สัปดาห์ที่ 6: โอนรีโป Botkit จัดระเบียบข้อมูลตามเทมเพลตที่กําหนด
สัปดาห์ที่ 7: โอนที่เก็บของ Rasa จัดระเบียบข้อมูลตามเทมเพลตที่กำหนด
สัปดาห์ที่ 8: โอนที่เก็บของ BotPress จัดระเบียบข้อมูลตามเทมเพลตที่กําหนด
สัปดาห์ที่ 9: สรุปโครงสร้างและหน้าเอกสารประกอบหลักหลังจากโอนโปรเจ็กต์ย่อยของบอททั้งหมดแล้ว
สัปดาห์ที่ 10: ตรวจสอบการกำหนดค่า JSDoc กำหนดตำแหน่งที่จะจัดเก็บอาร์ติแฟกต์ JSDoc เริ่มบันทึกวิธีการของไดรเวอร์
สัปดาห์ที่ 11: เขียนวิธีการของไดรเวอร์ให้เสร็จ
สัปดาห์ที่ 12: ประเมินผลลัพธ์
รายละเอียดของเหตุการณ์สำคัญ
ระยะเวลาตรวจสอบใบสมัคร
ช่วงแรกของระยะเวลาดังกล่าวจะเน้นไปที่การตรวจสอบแชแนลชุมชนและซอร์สโค้ด รวมถึงติดต่อผู้ที่ทุ่มเทให้กับโปรเจ็กต์
ส่วนที่สองของระยะเวลานี้จะเน้นไปที่การตรวจสอบวัฒนธรรมการมีส่วนร่วมโดยทั่วไป การตรวจสอบคู่มือการมีส่วนร่วมและแนวทางปฏิบัติแนะนำ นี่จะเป็นเวลาที่การมีส่วนร่วมเป็นครั้งแรกเพื่อดูว่าขั้นตอนนี้ทำงานอย่างไร
การสานสัมพันธ์ในชุมชน
ช่วงเวลานี้เราจะมุ่งเน้นที่การตรวจสอบที่เก็บเอกสารประกอบอย่างละเอียดยิ่งขึ้น รวมถึงแผนพัฒนา จากข้อมูลดังกล่าว คุณจะสามารถระบุจุดอ่อน (เช่น ส่วนไม่สมบูรณ์หรือขาดหายไป) ซึ่งสามารถปรับปรุงได้ สร้างคำขอดึงข้อมูล (หากเป็นไปได้) เพื่อเติมเต็มช่องว่าง
สัปดาห์ที่ 1 - สัปดาห์ที่ 2
สัปดาห์แรกจะมุ่งเน้นไปที่การสื่อสารกับที่ปรึกษาเพื่อให้สอดคล้องกับวิสัยทัศน์ใหม่ในเอกสารของบ็อต ข้อมูลนี้จะเป็นส่วนหนึ่งของเอกสารฉบับแก้ไข ซึ่งมีจุดมุ่งหมายเพื่อให้ผู้อ่านเห็นภาพรวมทั่วไปของบ็อตและหลักการทำงานของบ็อต
สัปดาห์ที่ 2 จะเป็นการสร้างเนื้อหาสำหรับหน้าแรกของบ็อตใหม่ตามวิสัยทัศน์และการแก้ไขภาพรวมของบ็อต สถาปัตยกรรม และการกำหนดค่าหน้าเว็บสภาพแวดล้อม
เอกสารฉบับแก้ไขจะเน้นหัวข้อต่อไปนี้อย่างชัดเจน - นักพัฒนาซอฟต์แวร์รายใหม่ที่ต้องการสร้างบ็อตของตัวเอง - นักพัฒนาซอฟต์แวร์ [บ็อต] มืออาชีพที่ต้องการออกแบบ/เขียนโค้ด/ทดสอบบ็อตโดยใช้แพลตฟอร์มฟรีและใช้งานง่าย หรือปรับให้เข้ากับบ็อตที่มีอยู่ในแพลตฟอร์มดังกล่าว - นักพัฒนาบ็อตมืออาชีพที่มีกรอบการทำงานที่ต้องการสร้างบ็อตสำหรับ Rocket.Chat
ขอบเขตการทำงานมีดังนี้
- นำส่วนที่ซ้ำซ้อนออก
ตัวอย่างเช่น ส่วนต่อไปนี้มีข้อมูลที่ทับซ้อนกัน
- บ็อตส่งและรับข้อความได้อย่างไร ในภาพรวมของบ็อต (https://rocket.chat/docs/bots/#how-do-bots-send-and-receive-messages)
- สตรีมข้อความในสถาปัตยกรรมบ็อต (https://rocket.chat/docs/bots/bots-architecture/#message-streams)
- พูดคุยกับบ็อตในการสร้างผู้ใช้บ็อต (https://rocket.chat/docs/bots/creating-bot-users/#Talk-to-your-bot)
แก้ไขส่วนต่างๆ และวลีของหน้าภาพรวมของบ็อตเพื่อให้อธิบายระบบนิเวศและฟังก์ชันการทำงานของบ็อตอย่างชัดเจนตามหลักการ DRY
แก้ไขส่วนและวลีเกี่ยวกับข้อมูล ""เบื้องหลัง""
- ความหมายของบ็อตจากมุมมองทางเทคนิค
- องค์ประกอบของเนื้อหา
- วิธีที่องค์ประกอบเหล่านี้ทำงานร่วมกัน
เขียนคู่มือเริ่มใช้งานฉบับย่อซึ่งอธิบายขั้นตอนที่จำเป็นในการสร้างบ็อต (พร้อมลิงก์ไปยัง ""การกำหนดค่าสภาพแวดล้อมบ็อต"" เพื่ออ่านเพิ่มเติม) คำแนะนำนี้อยู่ในหน้า "การกำหนดค่าสภาพแวดล้อม"
ทำให้นักพัฒนาซอฟต์แวร์มองเห็นลักษณะของบ็อตได้ชัดเจนและบ็อตสามารถทำอะไรได้บ้าง จากนั้นนักพัฒนาซอฟต์แวร์จะสามารถสร้างบ็อตแรกได้
สิ่งที่ส่งมอบ: คำแนะนำเบื้องต้นที่แก้ไขและทำตามได้ง่าย มีข้อมูลเกี่ยวกับระบบนิเวศและสถาปัตยกรรมของบ็อต
สัปดาห์ที่ 3 - 9
สัปดาห์ที่ 3-9 จะเน้นที่การรวมเอกสารของบอททั้งหมดในที่เก็บข้อมูล GitHub และโอนเอกสารเหล่านี้ไปยังเอกสารประกอบหลัก (https://rocket.chat/docs/bots/) กิจกรรมเหล่านี้แบ่งออกเป็นหลายรอบได้ดังนี้
คำจำกัดความ
กำหนดรายการโปรเจ็กต์ย่อยของบอทที่ควรย้ายข้อมูลไปยังเอกสารประกอบหลัก กำหนดวิธีที่เว็บไซต์บ็อตจะทำงานหลังจากการโอน (บ็อตบางตัว, Bbot เช่น (http://bbot.chat)) มีเว็บไซต์แยกต่างหากพร้อมเอกสารประกอบนอกเหนือจาก GitHub)
เทมเพลต
กําหนดค่าและสร้างเทมเพลต (วิธี) ในการจัดระเบียบข้อมูลภายในโปรเจ็กต์ย่อยของบ็อตที่กําหนดไว้ในขั้นตอนที่ 1 เทมเพลตนี้อาจมีลักษณะดังนี้
ก. โคลนที่เก็บ
ข. ติดตั้งการอ้างอิง
ค. กำหนดค่าบ็อต
ง. เรียกใช้บ็อต
จ. การกำหนดค่าขั้นสูง
ฉ. ขั้นตอนถัดไป
คำสั่งที่มีเอาต์พุตที่ไม่ได้สำคัญบางอย่าง (เช่น "เรียกใช้บ็อต") ควรมาพร้อมกับการนำเสนอเอาต์พุตนั้นโดยใช้เครื่องมือชีตข้อกำหนด (https://neatsoftware.github.io/term-sheets/)
นอกจากนี้ เราจะรวมขั้นตอนทั้งหมดไว้ในงานนำเสนอแบบสดงานเดียวเพื่อให้ระยะเริ่มต้น "เริ่มใช้งานฉบับย่อ" (ขั้นตอน ก - ง) ชัดเจนยิ่งขึ้น
คุณควรแสดงตัวอย่างโค้ดพร้อมกับสภาพแวดล้อมพื้นที่ทดสอบ (โดยใช้ Glitch ซึ่งเป็นส่วนหนึ่งของระบบนิเวศ Rocket Chat) เพื่อให้ผู้มาใหม่รู้สึกปลอดภัยจากข้อผิดพลาดที่อาจเกิดขึ้น ซึ่งผู้มาใหม่สามารถแชทกับบ็อตที่มี "ตัวอย่างโค้ด" อยู่เบื้องหลัง
การเตรียมพร้อม
เตรียมเอกสารหลักสำหรับการโอน ซึ่งรวมถึงการสร้างโฟลเดอร์และโครงสร้างหน้าเว็บที่เหมาะสม ตลอดจนการปรับสารบัญตามโครงสร้างดังกล่าว
โครงสร้างสุดท้ายอาจมีลักษณะดังนี้
- บ็อต
- สถาปัตยกรรมของบ็อต
- สร้างผู้ใช้บ็อต
- กำหนดค่าสภาพแวดล้อมของบ็อต
- เรียกใช้บ็อต
- บ็อต bBot
- บ็อต Hubot
- บ็อต Botkit
- บ็อต Rasa
- บ็อต Botpress
- บ็อต
การย้ายข้อมูล
ย้ายข้อมูลโปรเจ็กต์ย่อยของบอทที่กําหนดไปยังเอกสารประกอบหลักทีละโปรเจ็กต์ เอกสารประกอบของบอทแต่ละรายการจะมีหน้าแยกต่างหากพร้อมส่วนย่อยต่างๆ เช่น เวอร์ชันปัจจุบัน (เช่น เรียกใช้ bBot)
- เรียกใช้บ็อต
- บ็อต bBot
- บ็อต Hubot
- บ็อต Botkit
- บ็อต Rasa
- บ็อต Botpress
- เรียกใช้บ็อต
องค์กร
โดยจะมีกิจกรรมหลายอย่างดังนี้
- จัดระเบียบข้อมูลจากรีโป GitHub ของบ็อตแต่ละรายการตามเทมเพลตที่กําหนดไว้ในขั้นตอนที่ 2
- ย้ายคอมโพเนนต์ทั่วไป (เช่น ตัวแปรสภาพแวดล้อม) ที่เกี่ยวข้องกับโปรเจ็กต์ย่อยของบอททั้งหมดขึ้น 1 ระดับในลําดับชั้นของเอกสารประกอบหลัก และลิงก์โปรเจ็กต์ย่อยของบอทกับคอมโพเนนต์เหล่านี้
- การสร้างตัวอย่างบอท "Hello World" สําหรับเฟรมเวิร์กแต่ละรายการที่รองรับ ตัวอย่างนี้จะใช้เป็นบอท "เริ่มต้นใช้งาน" สําหรับ Rocket.Chat
ทำไมประเด็นนี้จึงสำคัญ โปรเจ็กต์ย่อยทั้ง 8 โปรเจ็กต์ที่ Rocket.Chat สนับสนุน ได้แก่ alexa, Hubot, chatops-gitsy, botpress, rasa, bbot, botkit, BOTswana, Hubot-gitsy มีเอกสารที่กระจัดกระจายในรูปแบบของนักพัฒนาซอฟต์แวร์ README ไฟล์ README เหล่านี้ไม่มีโครงสร้างใดๆ เลย มีข้อมูลล้าสมัยเกี่ยวกับวิธีเริ่มต้นใช้งาน หรือมีข้อมูลมากเกินไป (บางครั้งมีข้อมูลซ้ำกัน 3 ครั้ง เช่น hubot (https://github.com/RocketChat/hubot-rocketchat) เกี่ยวกับวิธีเรียกใช้บ็อตโดยใช้ Docker) รวมถึงตารางที่มีตัวแปรของสภาพแวดล้อม
แง่มุมเหล่านี้ทำให้นักพัฒนาซอฟต์แวร์ (ในฐานะมือใหม่) สับสนกับรายละเอียดมากมายมหาศาล ด้วยเหตุนี้ นักพัฒนาซอฟต์แวร์จึงไม่สามารถทำให้บ็อตทำงานได้โดยใช้คำสั่งเทอร์มินัลเพียงไม่กี่คำสั่ง
หลังจากการโอนและการเพิ่มประสิทธิภาพเสร็จสมบูรณ์แล้ว ที่เก็บข้อมูลบอทที่มีอยู่เดิมใน github จะมีไฟล์ README ที่อ้างอิงถึงเอกสารประกอบหลัก
การดำเนินการนี้มีประโยชน์ดังต่อไปนี้ - โครงสร้างแบบรวมช่วยให้นักพัฒนาซอฟต์แวร์เริ่มต้นใช้งานบ็อตใหม่ๆ ได้ง่ายขึ้น - แหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียวสำหรับเอกสารประกอบของบ็อต - ค้นหาข้อมูลที่จำเป็นเกี่ยวกับบ็อตได้ง่ายขึ้นด้วยโครงสร้างแบบรวม
ผลงาน: จัดระเบียบไว้ในที่เดียว (เอกสารหลัก) วิธีการที่เข้าใจง่ายเกี่ยวกับวิธีสร้าง กำหนดค่า และเรียกใช้บ็อตที่ Rocket.Chat รองรับ
สัปดาห์ที่ 10
สัปดาห์นี้จะเน้นไปที่การกำหนดค่า JSDoc (https://devdocs.io/jsdoc/) เพื่อเพิ่มมูลค่าของความคิดเห็นในบรรทัดให้ได้สูงสุด ซึ่งรวมถึงเนื้อหาต่อไปนี้
- ตรวจสอบว่า JSDoc ได้รับการกําหนดค่าอย่างถูกต้องเพื่อแยกวิเคราะห์ความคิดเห็นสําหรับเมธอดไดรเวอร์ (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods)
- ติดตั้ง postman-jsdoc-theme (https://github.com/postmanlabs/postman-jsdoc-theme) เพื่อให้เอาต์พุต HTML ที่ออกมาชัดเจนและเหมาะสำหรับนักพัฒนาซอฟต์แวร์มากขึ้น
- กำหนดตำแหน่งที่จะเผยแพร่อาร์ติแฟกต์เอกสารประกอบ JSDoc
- อธิบายฟังก์ชันทั้งหมด (ในไฟล์ dist/lib/driver.js) ที่เกี่ยวข้องกับเมธอดของไดรเวอร์ ซึ่งรวมถึง
- การเพิ่ม/แก้ไขคำอธิบายของวิธีการ
- การเพิ่ม/แก้ไขคําอธิบายพารามิเตอร์ของเมธอด
- การเพิ่ม/การแก้ไขตัวอย่างคำขอเมธอด (หากมี)
- การเพิ่ม/แก้ไขตัวอย่างการตอบกลับของเมธอด (หากมี)
เอกสารประกอบในบรรทัดเขียนและดูแลรักษาได้ง่ายกว่าจากมุมมองของนักพัฒนาซอฟต์แวร์ และกลไกการสร้างอัตโนมัติช่วยให้คุณกำจัดเอกสารประกอบแบบคงที่ที่โฮสต์ใน GitHub (https://github.com/RocketChat/Rocket.Chat.js.SDK#driver-methods) ซึ่งต้องอัปเดตแยกต่างหากเมื่อมีการเปลี่ยนแปลงวิธีการของ SDK แต่ละรายการ
สัปดาห์ที่ 11
สัปดาห์นี้เราจะทุ่มเทอย่างเต็มที่เพื่อสรุปวิธีการของไดรเวอร์ เมื่อเสร็จแล้ว เราจะทดสอบคำอธิบายเพื่อดูความถูกต้องและความสอดคล้อง จากนั้นจึงเผยแพร่เอกสารประกอบใหม่ให้ทั่วโลกทราบ
สัปดาห์ที่ 12
การสรุปงานที่ทำเสร็จแล้ว การตรวจสอบการยอมรับ