เครื่องมือ yamlfmt ของ Google เผชิญอนาคตที่ไม่แน่นอนขณะที่ชุมชนถกเถียงทางเลือกสำหรับการจัดรูปแบบ YAML

ทีมชุมชน BigGo
เครื่องมือ yamlfmt ของ Google เผชิญอนาคตที่ไม่แน่นอนขณะที่ชุมชนถกเถียงทางเลือกสำหรับการจัดรูปแบบ YAML

yamlfmt ของ Google ซึ่งเป็นเครื่องมือบรรทัดคำสั่งสำหรับจัดรูปแบบไฟล์ YAML ได้จุดประกายการสนทนาในชุมชนเกี่ยวกับความยั่งยืนในระยะยาวและภาพรวมของโซลูชันการจัดรูปแบบ YAML เครื่องมือนี้ซึ่งปัจจุบันได้รับการดูแลโดยนักพัฒนาคนเดียวในเวลาว่างโดยไม่มีการสนับสนุนอย่างเป็นทางการจาก Google แสดงให้เห็นทั้งประโยชน์และความเปราะบางของโครงการโอเพนซอร์สจากบริษัทเทคโนโลยีใหญ่

ข้อกำหนดการติดตั้ง

  • ต้องใช้ Go เวอร์ชัน 1.21 หรือสูงกว่า
  • มีให้ใช้งานเป็นไฟล์เดียวโดยไม่ต้องพึ่งพาไลบรารีอื่น
  • สามารถติดตั้งได้ผ่าน: go install github.com/google/yamlfmt/cmd/yamlfmt@latest
  • สามารถติดตั้งผ่าน Homebrew ได้เช่นกัน: brew install yamlfmt

ข้อกังวลเรื่องการดูแลรักษาและประวัติของ Google

ชุมชนได้แสดงความสงสัยเกี่ยวกับอนาคตของ yamlfmt โดยเปรียบเทียบกับโครงการอื่นๆ ของ Google ที่ถูกละทิ้งไป คำปฏิเสธความรับผิดชอบของเครื่องมือที่ระบุว่ายังไม่ได้รับการสนับสนุนอย่างเป็นทางการจาก Google และได้รับการดูแลเป็นหลักในเวลาว่างได้ทำให้เกิดสัญญาณเตือนสำหรับนักพัฒนาที่เคยประสบสถานการณ์คล้ายกันกับเครื่องมืออื่นๆ ของ Google เช่น Kaniko ความไม่แน่นอนนี้ทำให้ผู้ใช้บางคนแสวงหาทางเลือกที่มั่นคงกว่าก่อนที่จะลงทุนเวลาในการนำมาใช้

ตำแหน่งที่ถกเถียงของ YAML ในการพัฒนาสมัยใหม่

การสนทนาได้จุดประกายการถกเถียงเกี่ยวกับ YAML เองในฐานะรูปแบบการกำหนดค่าอีกครั้ง แม้ว่า YAML จะกลายเป็นสิ่งที่แพร่หลายในการพัฒนาสมัยใหม่ผ่านเครื่องมือเช่น Kubernetes และ Ansible แต่นักพัฒนาบางคนยังคงวิพากษ์วิจารณ์ความซับซ้อนและผลกระทบด้านความปลอดภัย วิวัฒนาการของรูปแบบจากเวอร์ชันแรกๆ ที่เรียบง่ายไปสู่ข้อกำหนดที่มีฟีเจอร์มากขึ้นได้นำมาซึ่งช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้น โดยเฉพาะเกี่ยวกับการอ้าง YAML ที่สามารถเรียกใช้งานได้และการเรียกใช้โค้ดโดยพลการระหว่างการ deserialization

ข้อกังวลด้านความปลอดภัยทั้งหมดเกี่ยวกับข้อกำหนด YAML รุ่นหลัง แท็ก และโค้ด นั่นเป็นเหตุผลที่ส่วนใหญ่ยังคงใช้เวอร์ชันแรกๆ พร้อมกับ API รายการอนุญาตบางส่วน

ข้อพิจารณาด้านความปลอดภัยของ YAML

  • YAML เวอร์ชันแรกๆ (เช่น syck) มีปัญหาด้านความปลอดภัยน้อยกว่า
  • ข้อกำหนดในเวอร์ชันหลังๆ ได้เพิ่มความสามารถในการรันโค้ดที่สามารถทำงานได้
  • การใช้งานสมัยใหม่ควรใช้ API ที่อยู่ในรายการอนุญาตสำหรับข้อมูลที่ไม่น่าเชื่อถือ
  • การ deserialization แบบไม่จำกัดสามารถสร้างช่องโหว่ด้านความปลอดภัยได้

โซลูชันการจัดรูปแบบทางเลือก

ชุมชนได้เน้นทางเลือกที่มีอยู่หลายตัวที่อาจให้ความมั่นคงและการสนับสนุนภาษาที่กว้างขึ้น Prettier ซึ่งเพิ่มการสนับสนุน YAML ในปี 2020 ให้ความสามารถในการจัดรูปแบบหลายภาษาแต่ประสบปัญหาประสิทธิภาพในโครงการขนาดใหญ่ เครื่องมือจัดรูปแบบของ Deno ได้กลายเป็นทางเลือกที่รวดเร็วอย่างน่าประหลาดใจ สามารถประมวลผลไฟล์หลายพันไฟล์ต่อวินาที เครื่องมือแบบดั้งเดิมเช่น yq ก็ให้ความสามารถในการจัดรูปแบบ YAML และมีประวัติที่มั่นคงในระบบนิเวศ

เครื่องมือจัดรูปแบบ YAML ทางเลือก

  • Prettier: รองรับหลายภาษา, รองรับ YAML ตั้งแต่ปี 2020, มีปัญหาด้านประสิทธิภาพในโปรเจกต์ขนาดใหญ่
  • Deno fmt: เร็วมาก (หลายพันไฟล์ต่อวินาที), การรองรับ YAML อยู่ภายใต้ unstable flag
  • yq: เครื่องมือที่มีชื่อเสียงพร้อมความสามารถในการจัดรูปแบบ
  • yamlfmt: ไฟล์เดียว, ขยายได้, อนาคตการบำรุงรักษายังไม่แน่นอน

ความท้าทายของระบบนิเวศในวงกว้าง

สถานการณ์นี้สะท้อนความท้าทายทั่วไปในระบบนิเวศโอเพนซอร์สที่เครื่องมือที่มีประโยชน์จากบรรษัทใหญ่อยู่ในสถานะของความไม่แน่นอน แม้ว่า yamlfmt จะมีข้อได้เปรียบเฉพาะเช่นการแจกจ่ายแบบไบนารีเดียวและความสามารถในการขยาย แต่สถานะการดูแลรักษาที่ไม่แน่นอนบังคับให้นักพัฒนาต้องชั่งน้ำหนักระหว่างประโยชน์กับความเสี่ยงของการถูกละทิ้งในอนาคต ความพร้อมใช้งานของทางเลือกหลายตัวแสดงให้เห็นว่าชุมชนได้รับรู้รูปแบบนี้และพัฒนาโซลูชันสำรองไว้

การสนทนาเรื่อง yamlfmt ในท้ายที่สุดเน้นความตึงเครียดระหว่างนวัตกรรมและความมั่นคงในเครื่องมือนักพัฒนา ที่แม้แต่เครื่องมือที่ออกแบบมาอย่างดีก็อาจเผชิญอนาคตที่ไม่แน่นอนเนื่องจากลำดับความสำคัญขององค์กรและการจัดสรรทรัพยากร

อ้างอิง: yamlfmt