ไปเห็น VDO แนะนำความสามารถของ Spring Boot 3.2.0 แล้วพบว่ามีการใช้งาน command uao (unzip and open) เพื่อทำการ extract zip file และเปิด project ใน IntelliJ IDEA CE ให้เลย เห็นแล้วอยากทำบ้างเลยลองไปค้นหาดู พบว่ามีขั้นตอนดังนี้
ขั้นตอนที่ 1 เรียนรู้การเปิด IntelliJ IDEA CE บน Mac ผ่าน command line ก่อน
[code]
As an AI language model, I don't have real-time capabilities and my knowledge cutoff is April 2023. Therefore, I cannot provide you with the current time in Thailand.
To get the most up-to-date and accurate information, I recommend checking a reliable source such as a world clock website or the official Thailand government website.
[/code]
ต่อมามีความต้องการเพิ่มเติมว่า unique id นั้นต้อง readable หรืออ่านแล้วตีความได้ง่าย เพื่อนำไปใช้งานต่อไปทางด้าน operation
เช่น order id ต้องการให้รู้ว่า order สร้างวันไหน เวลาอะไร ดังนั้นต้องเป็น timestamp หรือ date ที่มี format แต่อาจจะเกิดการซ้ำได้ ถ้ามีคนเข้ามาสร้าง order พร้อม ๆ กัน ดังนั้นต้องเพิ่ม sequence id และ random number เข้ามาอีก !! น่าคิดว่า ถ้า scale เครื่องเยอะ ๆ performance จะเป็นอย่างไร ? และแนวทางที่เลือกจะมีโอกาสซ้ำไหม ? ถ้าซ้ำแล้วจะทำ หรือ จัดการอย่างไร ? เพื่อให้ระบบงานทำงานต่อได้
อาจจะต้องเพิ่ม prefix เข้ามาใน id ของแต่ละเครื่อง สำหรับการ id ที่ generate ออกมา ถ้าใช้ sequence
ลองไปอ่านเกี่ยวกับ UUID หรือ GUID เพิ่มเติม พบว่า
มี UUID หลาย version มาก ๆ เช่น
Version 1 Time-based MAC ใช้ mac address และ current time ของเครื่องนั้น ๆ
Version 2 DCE Security เหมือนกับ type 1 แต่เพิ่ม POSIX UID หรือ GID เข้ามา
Version 3 Name-based md5 เพิ่ม string เข้ามา แล้วผ่าน md5
Version 4 Randomness เพิ่ม random data เข้ามา
Version 5 Name-based SHA1 เปลี่ยนจาก md5 มาเป็น SHA1
Version 5 Reordered Time
Version 7 Unix Epoch Time ซึ่งมีตัว TypeID ที่ implement ตาม v7