Site icon PlusMagi's Blog By Pitt Phunsanit

TOML: Tom’s Obvious Minimal Language

Tom’s Obvious Minimal Language หรือที่เราเรียกกันติดปากว่า TOML คือภาษาสำหรับเขียนไฟล์การตั้งค่า ( Configuration file ) ที่เน้นความเรียบง่ายและอ่านง่ายสำหรับมนุษย์ ในขณะที่คอมพิวเตอร์ก็สามารถประมวลผลได้แม่นยำครับ ชื่อนี้มาจากผู้สร้างคือ Tom Preston-Werner ( หนึ่งในผู้ก่อตั้ง GitHub ) โดยเขาตั้งใจออกแบบมาให้ดีกว่า JSON ในแง่ความอ่านง่าย และมีความซับซ้อนน้อยกว่า YAML

รู้จักรูปแบบนี้ครั้งแรกตอน Stalwart mail server: reset admin password เป็นการแก้ config ที่ดูง่ายเลยสนใจมันขึ้นมาว่ามันคืออะไร แล้วก็เจออะไรที่มันต่างจากที่คาดเอาไว้


🛠 โครงสร้างและจุดเด่นของ TOML

TOML ถูกออกแบบมาให้ Map เข้ากับ Hash Table ( หรือ Dictionary / Objects ) ได้แบบ 1:1 โดยมีองค์ประกอบหลักดังนี้

  1. Key-Value Pairs
    ใช้เครื่องหมาย = ในการกำหนดค่า เหมือนการเขียนตัวแปรทั่วไป
    title = "TOML Example"
    enabled = true
    
  2. Tables ( Sections )
    ใช้เครื่องหมาย [ ] เพื่อแบ่งกลุ่มข้อมูล ( เหมือนส่วนหัวข้อในไฟล์ .ini )
    [database]
    server = "192.168.1.1"
    ports = [ 8000, 8001, 8002 ]
    
  3. Arrays of Tables
    ใช้ [[ ]] สำหรับสร้าง List ของ Object ซึ่งมีประโยชน์มากในการเก็บข้อมูลที่มีโครงสร้างซ้ำ ๆ
    [[products]]
    name = "Hammer"
    sku = 738594937
    
    [[products]]
    name = "Nail"
    sku = 284758393
    

เปรียบเทียบกับ Format อื่น

คุณสมบัติTOMLJSONYAML
ความอ่านง่ายสูงมาก ( คล้ายภาษาคน )ปานกลาง ( วงเล็บเยอะ )สูง ( แต่ระวังเรื่องการย่อหน้า )
ความซับซ้อนต่ำต่ำสูงมาก
Commentรองรับด้วย #ไม่รองรับรองรับด้วย #
Data Typesระบุวันที่/เวลาได้ชัดเจนจำกัดหลากหลาย

💡 ทำไมถึงควรใช้ TOML?

[!CAUTION] ข้อควรระวัง: แม้ TOML จะใช้ง่าย แต่ถ้าโครงสร้างข้อมูลของคุณมีความลึก ( Nested ) หลายชั้นมาก ๆ การเขียน TOML อาจจะดูเยิ่นเย้อกว่า JSON หรือ YAML ได้ครับ


อ่านเพิ่มเติม

Exit mobile version