CodeCafé เพิ่งเปิดตัวในฐานะแพลตฟอร์มการเขียนโค้ดแบบทำงานร่วมกันบนเบราว์เซอร์ ซึ่งออกแบบมาเพื่อแก้ไขข้อจำกัดของเครื่องมือที่มีอยู่เดิมที่ไม่ได้สร้างมาเฉพาะสำหรับการทำงานร่วมกันในการเขียนโปรแกรม การตอบรับจากชุมชนเป็นไปในเชิงบวก โดยผู้ใช้ได้เสนอการปรับปรุงและสำรวจการใช้งานที่เป็นไปได้นอกเหนือจากที่นำเสนอในตอนแรก
เทคโนโลยีการทำงานร่วมกันแบบเรียลไทม์
หัวใจสำคัญของ CodeCafé คือระบบ Operational Transformation (OT) ที่สร้างขึ้นเอง ซึ่งช่วยให้สามารถทำงานร่วมกันแบบเรียลไทม์คล้ายกับ Google Docs เทคโนโลยีนี้ช่วยให้ผู้ใช้หลายคนสามารถแก้ไขเอกสารเดียวกันพร้อมกันได้ โดยรักษาเจตนาของทุกคนและแก้ไขความขัดแย้งโดยอัตโนมัติ อย่างไรก็ตาม สมาชิกบางคนในชุมชนได้ตั้งคำถามเกี่ยวกับทางเลือกทางเทคนิคนี้ และเสนอแนวทางอื่น
Question for you, how come you didn't use CDRT like yjs? It could simplify the codebase
นักพัฒนายอมรับว่าการตัดสินใจใช้ OT แทน CRDTs (Conflict-free Replicated Data Types) ไม่ได้มาจากข้อมูลเชิงลึก แต่อิงจากการใช้งาน OT อย่างแพร่หลายในเครื่องมือการทำงานร่วมกันที่มีชื่อเสียง เช่น Google Docs การสนทนาทางเทคนิคนี้แสดงให้เห็นว่าแม้แต่โครงการที่เพิ่งเปิดตัวก็สามารถได้รับประโยชน์จากความเชี่ยวชาญของชุมชนเพื่อปรับปรุงแนวทางของพวกเขา
โครงสร้างเทคโนโลยีของ CodeCafé
ฝั่งหน้าบ้าน (Frontend):
- React
- TypeScript
- Zustand (การจัดการสถานะ)
- Tailwind CSS
- Monaco Editor
- Xterm.js (เทอร์มินัลแบบบูรณาการ)
- Framer Motion
- Axios
- WebSocket Client
ฝั่งหลังบ้าน (Backend):
- Java Spring Boot
- WebSocket API
- Jackson (การประมวลผล JSON)
- การใช้ Operational Transformation (OT) ที่พัฒนาเอง
- Redis ( AWS ElastiCache) พร้อมด้วย Lua Scripting
การโฮสต์:
- AWS EC2 (ฝั่งหลังบ้าน)
- Vercel (ฝั่งหน้าบ้าน)
- AWS ElastiCache (Redis)
ข้อเสนอแนะและการปรับปรุงคุณสมบัติ
ข้อเสนอแนะจากผู้ใช้ในช่วงแรกได้ระบุการปรับปรุงที่เป็นไปได้หลายประการ ผู้ใช้คนหนึ่งเสนอให้สร้าง URL ที่ไม่ซ้ำกันโดยอัตโนมัติเมื่อโหลดหน้า เพื่อเพิ่มความมั่นใจให้กับผู้ใช้เมื่อโหลดหน้าใหม่ ข้อเสนอที่ปฏิบัติได้จริงนี้แก้ไขความกังวลเกี่ยวกับประสบการณ์ผู้ใช้ทั่วไปและแสดงให้เห็นว่าข้อมูลจากชุมชนสามารถปรับปรุงผลิตภัณฑ์ใหม่ได้อย่างรวดเร็ว
การสนทนาที่น่าสนใจอีกประเด็นหนึ่งเกิดขึ้นเกี่ยวกับการใช้งาน CodeCafé ร่วมกับผู้ช่วยเขียนโค้ด AI โดยผู้ใช้คนหนึ่งเสนอว่ามันสามารถเปิดใช้งานแนวทาง จับคู่กับฉัน แทนที่จะเป็นรูปแบบการโต้ตอบ เขียนโค้ดให้ฉัน กับ AI แบบทั่วไป สิ่งนี้แสดงให้เห็นว่าเครื่องมือการเขียนโค้ดแบบทำงานร่วมกันอาจปรับเปลี่ยนความร่วมมือระหว่างมนุษย์กับ AI ในการเขียนโค้ด
คุณสมบัติหลัก
- การแสดงตัวอย่างแบบเรียลไทม์ที่สมบูรณ์แบบ: การแสดงผลทันทีเมื่อมีการเปลี่ยนแปลง HTML, CSS และ JavaScript
- การทำงานร่วมกันแบบเรียลไทม์: ผู้ใช้หลายคนสามารถพิมพ์ในไฟล์เดียวกันได้พร้อมกัน
- ประสบการณ์คล้าย VS Code: การแก้ไขที่คุ้นเคยพร้อมการไฮไลต์ไวยากรณ์และการตรวจสอบข้อผิดพลาด
- ไม่ต้องติดตั้ง: ทุกอย่างทำงานในเบราว์เซอร์โดยไม่จำเป็นต้องติดตั้งโปรแกรมเพิ่มเติม
คุณสมบัติที่วางแผนไว้
- การยืนยันตัวตนผู้ใช้และโปรเจกต์แบบถาวร
- การแชทด้วยเสียง/ข้อความแบบบูรณาการ
- การย้อนกลับเซสชันและการเล่นประวัติย้อนหลัง
- การรองรับภาษาและเครื่องมือที่หลากหลายมากขึ้น
สแตกทางเทคนิคและทางเลือกในการใช้งาน
แพลตฟอร์มนี้สร้างขึ้นด้วยฟรอนต์เอนด์ React และ TypeScript พร้อมกับแบ็กเอนด์ Java Spring Boot สมาชิกบางคนในชุมชนตั้งคำถามเกี่ยวกับการเลือกใช้ Java สำหรับแบ็กเอนด์ โดยเสนอว่าการใช้ Node.js อาจมีประสิทธิภาพมากกว่า เนื่องจากจะช่วยให้สามารถแชร์โค้ดระหว่างฟรอนต์เอนด์และแบ็กเอนด์สำหรับตรรกะการทำงานร่วมกันได้ นักพัฒนายอมรับประเด็นนี้ โดยระบุว่า Java ถูกเลือกเนื่องจากความคุ้นเคยส่วนตัวมากกว่าการปรับให้เหมาะสมทางเทคนิค
ข้อจำกัดในปัจจุบันและแผนในอนาคต
ปัจจุบัน ฟังก์ชันพรีวิวของ CodeCafé ใช้งานได้กับเทคโนโลยีฝั่งไคลเอนต์ (HTML, CSS, JavaScript) แต่ผู้ใช้กำลังถามถึงการสนับสนุนภาษาฝั่งเซิร์ฟเวอร์ นักพัฒนาระบุว่ามีแผนที่จะย้ายการทำงานของไฟล์ไปยังฝั่งเซิร์ฟเวอร์ ซึ่งจะช่วยให้สามารถรองรับภาษาเช่น Python, Node.js และ PHP ที่ไม่ได้รับการสนับสนุนโดยเบราว์เซอร์โดยตรง
แผนงานยังรวมถึงการตรวจสอบสิทธิ์ผู้ใช้ โครงการที่ถาวร เครื่องมือการสื่อสารแบบบูรณาการ และคุณสมบัติประวัติเซสชัน ซึ่งแสดงให้เห็นถึงเส้นทางที่ชัดเจนสำหรับการพัฒนาต่อจากการเปิดตัวครั้งแรก
CodeCafé เป็นผู้เล่นที่น่าสนใจในพื้นที่การเขียนโค้ดแบบทำงานร่วมกัน โดยเน้นที่การทำงานร่วมกันแบบเรียลไทม์และไม่ต้องตั้งค่าใดๆ แม้ว่าจะมีทางเลือกอื่น รวมถึง VS Code's Live Share และ Replit แต่ CodeCafé มุ่งที่จะสร้างความแตกต่างด้วยวิธีการที่เรียบง่ายและการทำงานบนเบราว์เซอร์ เมื่อชุมชนยังคงให้ข้อเสนอแนะและนักพัฒนาดำเนินการปรับปรุง จะเป็นเรื่องที่น่าสนใจที่จะเห็นว่าแพลตฟอร์มนี้จะพัฒนาอย่างไรเพื่อตอบสนองความต้องการของนักเขียนโค้ดที่ทำงานร่วมกัน
อ้างอิง: CodeCafé: Code Together, Instantly.