20 คะแนน โดย GN⁺ 2024-08-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือที่ช่วยให้สามารถคิวรีและแก้ไขโครงสร้างข้อมูลได้โดยใช้สตริงตัวเลือก
    • รองรับ JSON, YAML, TOML, XML, CSV และไม่มี runtime dependency
    • ไม่จำเป็นต้องเรียนรู้เครื่องมือใหม่เพื่อจัดการกับรูปแบบข้อมูลที่หลากหลาย
    • ใช้ไวยากรณ์ selector มาตรฐาน ดังนั้นเรียนรู้ครั้งเดียวก็สามารถคิวรี/แก้ไขข้อมูลได้กับทุกรูปแบบที่รองรับ
  • ติดตั้งได้ผ่าน homebrew, ASDF, scoop, docker, Nix หรือไบนารีที่คอมไพล์ไว้แล้วจากรีลีสล่าสุด
    • รองรับการทำงานเติมคำสั่งอัตโนมัติในเทอร์มินัลด้วย
  • Features
    • คิวรี/เลือกข้อมูลจากไฟล์ข้อมูลแบบมีโครงสร้าง
    • อัปเดตข้อมูลในไฟล์ข้อมูลแบบมีโครงสร้าง
    • สร้างไฟล์ข้อมูล
    • รองรับรูปแบบ/ประเภทข้อมูลหลายแบบ
    • แปลงระหว่างรูปแบบ/ประเภทข้อมูล
    • ใช้ไวยากรณ์คิวรี/selector มาตรฐานกับข้อมูลทุกรูปแบบ
    • ไม่มี runtime dependency
    • ใช้งานได้บน Linux, Mac, Windows
    • สามารถนำเข้าไปใช้ในโปรเจ็กต์ของตัวเองได้
    • รันผ่าน Docker ได้
    • เร็วกว่า jq/yq
    • Pre-commit hook
  • Playground
    • มี playground สำหรับทดสอบคำสั่ง dasel
    • ดูซอร์สโค้ดของ playground ได้ที่ github.com/TomWright/daselplayground
  • Benchmarks
    • ผลการทดสอบระบุว่า dasel เร็วกว่า jq ได้สูงสุด 3 เท่า และเร็วกกว่า yq ได้สูงสุด 15 เท่า
    • ดูได้ในไดเรกทอรี benchmark

สรุปโดย GN⁺

  • Dasel เป็นเครื่องมือที่รองรับรูปแบบข้อมูลหลากหลาย และช่วยให้คิวรีกับแก้ไขข้อมูลได้ง่ายด้วยไวยากรณ์ selector มาตรฐาน
  • ไม่มี runtime dependency ใช้งานได้หลายแพลตฟอร์ม และเร็วกว่า jq/yq
  • มีวิธีติดตั้งหลายแบบและมี pre-commit hook ทำให้ผสานเข้ากับสภาพแวดล้อมการพัฒนาได้ง่าย
  • มีประโยชน์กับโปรเจ็กต์ที่ต้องแปลงระหว่างรูปแบบข้อมูลหรือจัดการข้อมูลหลายรูปแบบ
  • เครื่องมือที่มีฟังก์ชันคล้ายกัน ได้แก่ jq, yq เป็นต้น

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

 
GN⁺ 2024-08-19
ความคิดเห็นบน Hacker News
  • ชอบแนวคิดในการคิวรีที่เก็บข้อมูลแบบไม่สัมพันธ์ด้วยไวยากรณ์สไตล์ SQL
    • เลยสงสัยว่าสามารถคิวรีรูปแบบการจัดเก็บข้อมูลทุกแบบด้วย SQL ได้หรือไม่
  • ถ้าชอบการคิวรีสไตล์ jq ก็สามารถใช้ qq ได้
  • สามารถใช้ Nushell เพื่อจัดการรูปแบบข้อมูลที่หลากหลายได้
  • ดูเหมือนว่าเครื่องมือแบบนี้จะได้รับความสนใจทุกไตรมาส
    • กำลังรอให้ผู้คนมาโชว์หรือรวบรวมเครื่องมือที่รองรับกรณีการใช้งานเฉพาะของตัวเอง
    • ได้เรียนรู้อะไรใหม่ ๆ มากมายเสมอ
  • เป็นโปรเจ็กต์ที่เจ๋ง แต่จำเป็นต้องมีภาษาคิวรีที่เป็นมาตรฐาน
    • ทำให้คุ้นเคยกับไวยากรณ์คิวรีของ jq ได้ยาก
    • ถ้าไม่ใช่มาตรฐานที่ได้รับการยอมรับอย่างกว้างขวาง ก็ไม่ค่อยอยากลงทุนเวลาเพื่อเรียนรู้
    • JMESPath อาจเป็นแนวทางต่อไป
    • gron ใช้งานเข้าใจง่ายและเข้ากันได้ดีกับเครื่องมืออื่น
  • เคยใช้เครื่องมือแบบนี้เยอะมากใน Go
    • บางครั้งแค่อยากแปลง yaml โดยไม่ต้องพาร์ส
    • ความสามารถในการเลือก แทนที่ และเพิ่มข้อมูลลงในเอกสาร yaml ที่มีอยู่เดิม ช่วยงานอัตโนมัติได้มาก
  • เครื่องมือคล้ายกันสำหรับไฟล์ ini
  • รายชื่อเครื่องมืออีกชุดหนึ่ง
  • ไม่นานมานี้ได้ลองใช้ JMESPath บน AWS
    • สงสัยว่าเครื่องมือข้อมูลแบบมีโครงสร้างตัวไหนเรียนรู้ง่ายกว่า มีเอกสารดีกว่า และเขียนได้เร็วกว่า
    • ถามว่ามีใครรู้จักบทความเปรียบเทียบดี ๆ บ้างไหม
    • ตอนนี้ก็ยังใช้ jq เป็นตัวหลักอยู่
  • yq ก็ทำสิ่งนั้นได้อยู่แล้ว แต่ตาม README บอกว่าช้า