- ช่วงต้นปี 2024 ได้เริ่มสำรวจระบบการแก้ไขแบบทำงานร่วมกันที่จะใช้กับตัวแก้ไขข้อความหลักของ Moment ขณะนี้มีหลายอัลกอริทึมที่อ้างว่าสามารถแก้ปัญหาการแก้ไขทั้งแบบออนไลน์และออฟไลน์ได้ แต่ในทางปฏิบัติกลับพบว่าประสบการณ์การแก้ไขแบบออฟไลน์นั้นไม่ดี
- ปัญหาของการแก้ไขแบบออฟไลน์
- อัลกอริทึมยอดนิยมอย่าง CRDTs และ OT จัดการความขัดแย้งจากการแก้ไขโดยตรงในแบบที่ไม่เป็นธรรมชาติ ทำให้ผู้ใช้รับรู้ว่าเป็นข้อมูลเสียหาย
- การแก้ไขแบบออฟไลน์เพิ่มโอกาสของความขัดแย้งโดยตรง และอัลกอริทึมเหล่านี้ไม่เหมาะกับการแก้ไขแบบออฟไลน์
- ตัวอย่าง: ความขัดแย้งจากการแก้ไขเล็กน้อย
- Alice และ Bob แก้ไขเอกสารขณะออฟไลน์ Bob เปลี่ยน 'Color' เป็น 'Colour' ส่วน Alice ลบข้อความทั้งหมด จากนั้นเมื่อกลับมาออนไลน์ ก็ต้องหาทางแก้ความขัดแย้งนี้
- ความขัดแย้งลักษณะนี้เกิดขึ้นได้บ่อย และสุดท้ายผู้ใช้ก็มองว่าข้อมูลเสียหาย
- ข้อจำกัดของอัลกอริทึม
- โปรเจ็กต์อย่าง Yjs, ShareJS และ Peritext อ้างว่ารองรับการแก้ไขแบบออฟไลน์ แต่ในความเป็นจริงกลับเกิดข้อผิดพลาดบ่อยครั้ง
- อัลกอริทึมไม่สามารถรู้เจตนาของผู้ใช้ได้ และทำงานในระดับตัวอักษร จึงไม่มีหลักประกันมากพอสำหรับผลลัพธ์
- การเปลี่ยนมุมมองไปเป็นปัญหา UI/UX
- ปัญหานี้ไม่สามารถแก้ได้อย่างสมบูรณ์ด้วยอัลกอริทึมเพียงอย่างเดียว และควรเข้าหาในฐานะปัญหา UI/UX
- มี UI สำหรับรวมเอกสารอย่าง git อยู่แล้ว และควรศึกษาว่าจะทำให้สิ่งนี้เข้าถึงได้ง่ายขึ้นและทำงานอัตโนมัติได้อย่างไร
- นักวิจัยบางส่วนกำลังมุ่งเน้นปัญหานี้ในฐานะปัญหา UI/UX และงานศึกษาประวัติการทำงานร่วมกันของ Ink & Switch ก็เป็นตัวอย่างหนึ่ง
1 ความคิดเห็น
ความเห็นจาก Hacker News
ผู้เขียน Eg-walker และ ShareJS กล่าวถึงว่าเครื่องมือทำงานร่วมกันแบบเรียลไทม์มีประโยชน์เมื่อทำงานร่วมกันขณะออนไลน์ แต่สำหรับการแก้ไขแบบออฟไลน์หรือการแยกสาขาระยะยาว ควรมีตัวเลือกในการเพิ่ม conflict marker และตรวจทานด้วยตนเอง
อีกปัญหาหนึ่งของการนำ CRDT ไปใช้งานคือภาระด้านโครงสร้างพื้นฐาน
กล่าวขอบคุณผู้ใช้ที่กำลังทำงานผสาน CRDT เข้ากับซอฟต์แวร์จดบันทึก
มีการกล่าวว่าอัลกอริทึม merge เชิงกลอาจให้ประสิทธิภาพต่างกันไปตามชนิดของความขัดแย้ง และ CRDT ไม่สามารถตัดสินได้ว่าข้อความที่ merge แล้วตรงกับเจตนาของผู้ใช้หรือไม่
อัลกอริทึมที่ใช้ในการแก้ไขข้อความร่วมกัน (CRDTs และ OT) มีข้อกำหนดเชิงพีชคณิตที่เข้มงวดเกี่ยวกับการดำเนินการแก้ไขและปฏิสัมพันธ์ระหว่างกัน
มีการกล่าวว่าแนวคิดเรื่องความขัดแย้งทางคณิตศาสตร์ เชิงสาเหตุ และเชิงเอนโทรปี ถูกนำไปปะปนกับ semantic conflict
มีการเสนอความเป็นไปได้ในการใช้ AI เพื่อคาดการณ์การ merge
มีการกล่าวว่า CRDTs เป็นแบบจำลองเชิงรูปแบบที่ยอดเยี่ยมสำหรับโครงสร้างข้อมูลแบบกระจาย แต่แนวคิดที่ว่าต้องแก้ไขความขัดแย้งทั้งหมดโดยอัตโนมัตินั้นมีปัญหา
มีการกล่าวว่าการที่หลายฝ่ายมีสิทธิ์เหนือข้อมูลเดียวกันพร้อมกันเป็นปัญหาที่แก้ไม่ได้
ในปี 2009 มีการถกเถียงกันมากเกี่ยวกับอัลกอริทึมที่ Git ใช้ในการ merge การเปลี่ยนแปลงโดยอัตโนมัติ และมีการกล่าวว่า Torvalds เคยตั้งข้อสงสัยต่อข้อจำกัดของการ merge อัตโนมัติ