1 คะแนน โดย GN⁺ 2024-01-23 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แนะนำ Diversion ระบบควบคุมเวอร์ชันแบบใหม่

    • Sasha และ Egal กำลังพัฒนา Diversion ซึ่งเป็นระบบควบคุมเวอร์ชันสมัยใหม่ที่ทำงานบนคลาวด์
    • ผู้ใช้กลุ่มแรกคือเหล่านักพัฒนาเกม ซึ่งชื่นชอบความเรียบง่ายและความสามารถในการขยายของ Diversion
    • ดูเดโมแบบรวดเร็วได้ที่นี่: ลิงก์เดโม
  • ข้อจำกัดของ Git และความจำเป็นของ VCS แบบใหม่

    • Git ยกระดับการพัฒนาซอฟต์แวร์อย่างมาก แต่ถูกออกแบบมาให้เหมาะกับสภาพแวดล้อมในปี 2005 (เครือข่ายช้า โปรเจ็กต์ขนาดเล็ก และยังไม่ใช้คลาวด์) จึงไม่ใช่เครื่องมือที่สมบูรณ์แบบสำหรับทุกคนในปัจจุบัน
    • ข้อเสียที่ใหญ่ที่สุดของ Git คือความสามารถในการขยายที่จำกัด ทั้งในด้านขนาดรีโพซิทอรี ขนาดไฟล์ และจำนวนผู้ใช้พร้อมกัน
    • นี่คือเหตุผลที่ Google และ Meta สร้างระบบควบคุมเวอร์ชันของตนเอง และเป็นเหตุผลที่องค์กรขนาดใหญ่ในอุตสาหกรรมอย่างการพัฒนาเกม เซมิคอนดักเตอร์ และบริการทางการเงิน ยังใช้เครื่องมือรุ่นเก่าอย่าง SVN และ Perforce อยู่
  • การแก้ความซับซ้อนของ Git และการรวมความสามารถสมัยใหม่

    • ต้องการแก้ปัญหาที่เกิดจากความซับซ้อนของ Git
    • ความสามารถด้าน branching และ merging ที่ยอดเยี่ยมของ Git มีส่วนสำคัญอย่างมากต่อแนวทางการพัฒนาซอฟต์แวร์สมัยใหม่
    • จึงตั้งคำถามว่าจะสร้างระบบควบคุมเวอร์ชันที่ใช้ง่าย เร็ว และขยายได้ โดยยังคงความสามารถด้าน branching ของ Git เอาไว้ พร้อมกับปรับปรุงสิ่งอื่น ๆ ได้อย่างไร
  • คุณสมบัติของ Diversion และประสบการณ์ผู้ใช้

    • Diversion สร้างอยู่บน distributed storage และฐานข้อมูล เข้าถึงได้ผ่าน REST API และรันบนโครงสร้างพื้นฐานคลาวด์แบบ serverless
    • การทำงานทั้งหมดกับรีโพซิทอรีเกิดขึ้นผ่านการเรียก API (commit, branch, merge ฯลฯ)
    • เดสก์ท็อปไคลเอนต์จะซิงก์ทุกอย่างที่กำลังทำงานอยู่กับคลาวด์แบบเรียลไทม์ (แม้ก่อน commit)
    • ผู้ใช้สามารถใช้งาน Diversion ได้ผ่าน CLI แบบโต้ตอบ, เว็บ UI และปลั๊กอิน IDE (ปัจจุบันรองรับ JetBrains และจะมีเพิ่มอีกในเร็ว ๆ นี้)
    • ผ่านเว็บ UI ผู้ใช้สามารถทำงานพื้นฐานได้โดยไม่ต้องติดตั้งเดสก์ท็อปไคลเอนต์
  • ความเข้ากันได้กับ Git และแผนโอเพนซอร์ส

    • Diversion เข้ากันได้กับ Git และสามารถซิงก์กับรีโพซิทอรี Git เดิมได้ (commit ใหม่ของ Diversion จะสะท้อนไปยัง Git และในทางกลับกันก็เช่นกัน)
    • มีแผนจะเปิดซอร์สเมื่อ codebase มีความสมบูรณ์มากขึ้น และเมื่อมีการทำไดเรกทอรีรีโพซิทอรีโอเพนซอร์สบนเว็บไซต์แล้ว (โค้ดของ Diversion เองก็ถูกจัดการด้วย Diversion)
  • โอเพนเบตาและการใช้งานฟรี

    • Diversion อยู่ในสถานะโอเพนเบตาและสามารถลองใช้ได้ที่นี่: เว็บไซต์ Diversion (คลิก Get Started)
    • เป็นบริการแบบ self-service เต็มรูปแบบ และฟรีสำหรับทีมขนาดเล็ก
  • ฟีเจอร์ที่กำลังพัฒนาและคำขอฟีดแบ็ก

    • การสร้างระบบควบคุมเวอร์ชันเป็นงานที่ยาก และ Diversion ยังต้องพัฒนาอีกมาก
    • ตอนนี้กำลังมุ่งเน้นไปที่การเพิ่มความเร็ว การผสานรวมกับ CI การพัฒนาปลั๊กอินสำหรับ IDE และเกมเอนจิน รวมถึงการปรับปรุงด้าน usability อื่น ๆ
    • อยากรับฟังความคิดเห็นและฟีดแบ็กเกี่ยวกับความคืบหน้าจนถึงตอนนี้

ความเห็นของ GN⁺

  • Diversion เป็นระบบควบคุมเวอร์ชันสมัยใหม่ที่ทำงานบนคลาวด์ โดยมีจุดสำคัญคือการพยายามแก้ปัญหาความสามารถในการขยายและความซับซ้อนของ Git
  • ความสามารถอย่างการทำงานร่วมกันแบบเรียลไทม์ การประมวลผลผ่าน API และความเข้ากันได้กับ Git อาจเป็นฟีเจอร์ที่ดึงดูดนักพัฒนาได้มาก
  • การเปิดโอเพนเบตาและให้ใช้งานฟรีเป็นโอกาสที่ดีให้ผู้พัฒนาจำนวนมากได้ทดลองเครื่องมือใหม่ ซึ่งจะช่วยให้ Diversion เติบโตและพัฒนาได้รวดเร็วยิ่งขึ้น

1 ความคิดเห็น

 
GN⁺ 2024-01-23
ความคิดเห็นบน Hacker News
  • Cloud-Native Git Alternative

    • คำว่า cloud-native เป็นรายละเอียดด้านการนำไปใช้จริง และไม่สำคัญนัก เว้นแต่จะมีแผนขายระบบควบคุมเวอร์ชัน (VCS) แบบใหม่เป็นซอฟต์แวร์แพ็กเกจแทนที่จะเป็นบริการ
    • ยังไม่ชัดเจนว่า cloud-native จะแก้ปัญหาในชีวิตประจำวันของผู้ใช้ Git ได้อย่างไร
  • The biggest drawback of Git is its limited scalability

    • สงสัยว่าสัดส่วนของผู้ใช้ที่เจอปัญหาด้านการขยายตัวของ Git มีมากแค่ไหน
    • เคยทำงานในบริษัทที่มีวิศวกรตั้งแต่หลักร้อยถึงหลักหมื่นคน แต่โดยส่วนตัวไม่เคยเจอปัญหาด้านการขยายตัวของ Git
    • การใช้ monorepo อาจทำให้เกิดปัญหาด้านการขยายตัวได้ แต่ตัว monorepo เองก็ยังเป็นประเด็นถกเถียง
  • Diversion is built on top of distributed storage and databases, accessible via REST API, and runs on serverless cloud infrastructure. Every repository operation is an API call (commit, branch, merge etc.).

    • ในมุมผู้ใช้ แทบไม่ได้สนใจโปรโตคอลภายใน
    • เมื่อใช้ CLI หรือ UI โปรโตคอลภายในไม่ได้สำคัญ
    • สนใจแนวคิด VCS ที่อิงกับ abstract syntax tree (AST)
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • ควรโฟกัสไม่ใช่ความซับซ้อนของ Git แต่เป็นการที่ Git ไม่เหมาะกับการจัดการทรัพย์สินไบนารีขนาดใหญ่
    • ยกคำพูดของ Linus Torvalds ที่ว่า Git จัดการไฟล์ขนาดใหญ่ได้ไม่ดี
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • Git ถูกออกแบบมาในปี 2005 ซึ่งเป็นสภาพแวดล้อมที่ต่างจากปัจจุบัน ทั้งเครือข่ายช้า โปรเจ็กต์เล็กกว่า และยังไม่มีคลาวด์
    • Git เป็นแบบกระจายศูนย์ จึงควรทำงานได้ดีในสภาพแวดล้อมคลาวด์ด้วย
    • กรณีที่นักวิทยาศาสตร์ข้อมูลทำลายงานไปหนึ่งเดือนด้วยคำสั่ง Git ที่ผิด ดูเหมือนเป็นปัญหาด้านการตั้งค่ามากกว่า
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • ควรเน้นที่ผลิตภัณฑ์ของตัวเองมากกว่าการวิจารณ์ Git
    • Git เป็น VCS แบบกระจายศูนย์ และปัญหาอยู่ที่การพยายามใช้งานมันแบบรวมศูนย์โดยไม่มีระบบสำรอง
  • git is bad we're better

    • ในฐานะนักพัฒนาเกม ยังไม่รู้สึกสนใจกับข้อเสนอที่นำเสนอมา
    • เวิร์กโฟลว์สมัยใหม่ที่ใช้ Git LFS ทำงานได้ราบรื่น
    • มีการนำเสนอ cloud-native เป็นฟีเจอร์ แต่ขาดรายละเอียดเรื่องการรองรับ on-premise และ private cloud แบบโฮสต์เอง
    • ศิลปินมักชอบฟีเจอร์ file locking แต่การใช้การล็อกกับ P4 streams และ branches ทำได้ยาก
  • File locking across branches - coming soon!

    • ฟีเจอร์ file locking กำลังจะมาเร็ว ๆ นี้ แต่ข้อเสนอโดยรวมยังต้องปรับปรุงอีกมาก
  • Git cli UX made be not great, but the git datastructure of representing commits, branches, trees and blobs as immutable pointers and merkle trees is a phenomenal invention.

    • โครงสร้างข้อมูลของ Git เป็นสิ่งประดิษฐ์ที่ยอดเยี่ยม แต่ไม่เห็นด้วยกับแนวคิดที่ให้ทุกคำสั่งทำงานผ่าน REST API
    • จุดแข็งของ Git คือสามารถทำงานแบบ partial clone ได้แม้ออฟไลน์ และค่อยซิงก์ commit เมื่อกลับมาออนไลน์
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • ยอมรับว่าควรปรับปรุง usability ของ Git แต่ปัญหาที่เกิดขึ้นดูเหมือนเป็นความล้มเหลวด้านการปฏิบัติการพัฒนา
    • จำเป็นต้องมีเส้นทางการเรียนรู้ที่ง่ายขึ้นเพื่อแนะนำข้อดีของ source control ให้คนที่ไม่ใช่โค้ดเดอร์ โดยยังคงความสามารถขั้นสูงไว้ได้
  • The world needs a git alternative.

    • โลกต้องการทางเลือกแทน Git
    • Git มีข้อจำกัดเมื่อมีหลายคน commit ลง repository เดียวกันทุกวัน
    • ถ้า Git จัดการ rebase ได้ดีกว่านี้ คาดว่าความเร็วการทำงานของทีมพัฒนาซอฟต์แวร์จะเพิ่มขึ้น 20%
  • I get that enterprises will buy anything with "Cloud" or "AI" in the name, but VCS doesn't have anything to do with the cloud.

    • มีมุมมองว่าองค์กรจะซื้อทุกอย่างที่มีคำว่า "Cloud" หรือ "AI" อยู่ในชื่อ
    • สิ่งสำคัญคือการโฟกัสที่การแก้ปัญหา มากกว่าตัวเทคโนโลยี
    • ถ้าประสบการณ์ผู้ใช้ไม่ดี รายละเอียดทางเทคนิคก็ไม่มีความหมาย
    • จำเป็นต้องมีกลยุทธ์การขายสำหรับผลิตภัณฑ์ที่มอบประสบการณ์ซึ่งช่วยลดเวลาพัฒนา ลดข้อผิดพลาด และปรับปรุงการทำงานร่วมกัน