2 คะแนน โดย GN⁺ 2023-06-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • TypeIDs: ส่วนขยายแบบ type-safe ที่ได้รับแรงบันดาลใจจาก API ของ Stripe และอิงตาม UUIDv7
  • TypeIDs ประกอบด้วยคำนำหน้าประเภท ตัวคั่นขีดล่าง และ UUIDv7 ขนาด 128 บิตที่เข้ารหัสเป็น base32 ความยาว 26 ตัวอักษร
  • TypeIDs มอบข้อดี เช่น ความปลอดภัยตามชนิดข้อมูล ความเข้ากันได้กับ UUID ความสามารถในการจัดเรียงแบบ K-sortable และการเข้ารหัสที่ออกแบบมาอย่างรอบคอบ
  • TypeIDs เข้ากันได้กับมาตรฐาน UUIDv7 ที่กำลังจะมาถึง และสามารถใช้เป็นคีย์หลักของฐานข้อมูลที่มี locality ที่ดี
  • TypeIDs มีการติดตั้งใช้งานใน Go และ SQL แล้ว และกำลังจะมีการติดตั้งใช้งานสำหรับ Python, Rust และ TypeScript
  • บทความนี้กล่าวถึงเครื่องมือบรรทัดคำสั่งสำหรับการสร้าง ถอดรหัส และเข้ารหัส TypeIDs
  • บทความนี้ยังกล่าวถึงงานที่เกี่ยวข้องกับ UUIDv7 และทางเลือกแทน UUIDv7 เช่น xid, ulid และ ksuid

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

 
GN⁺ 2023-06-29
ความคิดเห็นบน Hacker News
  • มีข้อเสนอให้กำหนดและจัดทำเอกสารสตริงคำนำหน้าให้ชัดเจน และอนุญาตให้ใช้ตัวคั่นเพียงตัวเดียวสำหรับชนิดแบบผสม
  • การติดตั้งใช้งานตัวระบุใน Go ยังขาดการทดสอบ และจำเป็นต้องมี unit test
  • อีกข้อเสนอหนึ่งคือทำให้สอดคล้องกับการติดตั้ง UUID ของ Google ใน Go โดยใช้ฟังก์ชัน parse และอาร์เรย์ไบต์ภายในแทนสตริง
  • การตัดสินใจด้านการออกแบบของตัวระบุได้รับคำชมว่าสร้างสมดุลที่ดีระหว่าง trade-off ต่าง ๆ
  • ผู้แสดงความคิดเห็นอีกรายได้แบ่งปันแนวทางของตนเองในการสร้างตัวระบุไม่ซ้ำ โดยใช้ base32 ที่ไม่มีสระและเพิ่ม checksum
  • พวกเขาวิจารณ์การเข้ารหัสแบบ Crockford และเสนอ base58 ว่ามีประสิทธิภาพและกระชับกว่า
  • มีการแชร์ลิงก์ไปยังระบบ base-32 ของ Crockford พร้อมแสดงความสับสนที่ตัดตัวอักษร U ออกเพราะ "ความลามกโดยบังเอิญ"
  • ผู้แสดงความคิดเห็นได้เล่าถึงการใช้ "tagged ID" ใน ORM และรู้สึกเสียดายที่ไม่ได้ใช้ขีดล่างเป็นตัวคั่นสำหรับการคัดลอกและวาง
  • มีการเน้นย้ำถึงความสำคัญของรายละเอียดในการติดตั้งใช้งานตัวระบุ
  • มีการกล่าวถึงความต้องการให้ UUIDv7 กลายเป็นมาตรฐาน และให้ไลบรารีกับฐานข้อมูลรองรับเป็นค่าเริ่มต้น
  • มีการถกเถียงถึงข้อดีข้อเสียของ UUIDv4 สำหรับฐานข้อมูล โดยในแอปพลิเคชันฐานข้อมูลแบบกระจายจะนิยม UUIDv4 มากกว่า
  • มีการเน้นถึงประโยชน์ของความสามารถในการดับเบิลคลิกเพื่อเลือก ID ทั้งหมด
  • มีการแนะนำ ksuid ซึ่งเป็นตัวสร้าง ID ทางเลือกที่มี key space ใหญ่กว่าและมี timestamp ที่จัดเรียงได้
  • ksuid ได้รับคำชมว่าเป็นตัวสร้าง ID อเนกประสงค์ที่ดีที่สุด โดยมีไลบรารีรองรับในแทบทุกภาษา และ UUID v1-7 ถูกมองว่าสิ้นเปลือง