2 điểm bởi GN⁺ 2023-06-29 | 1 bình luận | Chia sẻ qua WhatsApp
  • TypeIDs: một phần mở rộng an toàn kiểu lấy cảm hứng từ API của Stripe, dựa trên UUIDv7.
  • TypeIDs bao gồm tiền tố kiểu, dấu phân cách bằng dấu gạch dưới và UUIDv7 128 bit được mã hóa bằng base32 dài 26 ký tự.
  • TypeIDs mang lại các lợi ích như an toàn kiểu, tương thích với UUID, khả năng sắp xếp theo K và mã hóa được thiết kế cẩn thận.
  • TypeIDs tương thích với tiêu chuẩn UUIDv7 sắp ra mắt và có thể được dùng làm khóa chính trong cơ sở dữ liệu với tính cục bộ tốt.
  • TypeIDs đã được triển khai trong Go và SQL; các bản triển khai cho Python, Rust và TypeScript sẽ sớm được cung cấp.
  • Bài viết này đề cập đến công cụ dòng lệnh để tạo, giải mã và mã hóa TypeIDs.
  • Bài viết này cũng nhắc đến các công việc liên quan đến UUIDv7 và các lựa chọn thay thế UUIDv7 như xid, ulid và ksuid.

1 bình luận

 
GN⁺ 2023-06-29
Ý kiến trên Hacker News
  • Một đề xuất đã được đưa ra nhằm cố định và tài liệu hóa chuỗi tiền tố, đồng thời cho phép một dấu phân cách duy nhất cho các kiểu ghép.
  • Bản triển khai Go của định danh còn thiếu kiểm thử và cần có các bài kiểm thử đơn vị.
  • Một đề xuất khác là làm cho nó phù hợp với bản triển khai UUID của Google trong Go, sử dụng hàm phân tích cú pháp và mảng byte nội bộ thay vì chuỗi.
  • Các quyết định thiết kế của định danh được khen ngợi vì đạt được sự cân bằng tốt giữa các đánh đổi.
  • Một người bình luận khác chia sẻ cách tiếp cận riêng của họ để tạo định danh duy nhất, dùng base-32 không có nguyên âm và thêm checksum.
  • Họ chỉ trích mã hóa Crockford và đề xuất base 58 như một kiểu mã hóa hiệu quả và gọn hơn.
  • Một liên kết tới hệ thống base-32 của Crockford đã được chia sẻ, cùng sự bối rối về việc chữ U bị loại trừ do "tục tĩu ngoài ý muốn".
  • Người bình luận chia sẻ việc sử dụng "ID gắn thẻ" trong ORM và tiếc rằng họ đã không dùng dấu gạch dưới làm ký tự phân tách để thuận tiện cho việc sao chép và dán.
  • Tầm quan trọng của chi tiết trong việc triển khai định danh được nhấn mạnh.
  • Mong muốn UUIDv7 trở thành tiêu chuẩn và được các thư viện cũng như cơ sở dữ liệu hỗ trợ mặc định đã được nhắc đến.
  • Ưu và nhược điểm của UUIDv4 đối với cơ sở dữ liệu đã được thảo luận, và trong các ứng dụng cơ sở dữ liệu phân tán thì UUIDv4 được ưa chuộng hơn.
  • Tính hữu ích của khả năng chọn toàn bộ ID bằng cách nhấp đúp được nhấn mạnh.
  • ksuid, một trình tạo ID thay thế cung cấp không gian khóa lớn hơn và dấu thời gian có thể sắp xếp, được khuyến nghị.
  • ksuid được ca ngợi là trình tạo ID đa dụng tốt nhất với thư viện cho hầu hết các ngôn ngữ, trong khi UUID v1-7 bị xem là lãng phí.