2 คะแนน โดย GN⁺ 2023-09-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความนี้กล่าวถึงการใช้งาน YAML ในเทคโนโลยี DevOps
  • YAML ได้รับคำชื่นชมว่าให้ test coverage 100%, คอมไพล์ผ่านโดยไม่มี error หรือ warning เสมอ และอยู่ในสถานะพร้อมส่งมอบเสมอ
  • YAML ไม่ได้บังคับให้จัดการข้อผิดพลาดระหว่างการพัฒนา ซึ่งอาจนำไปสู่ปัญหา runtime ใน production ได้
  • ผู้เขียนกล่าวว่า YAML ได้รับการยอมรับอย่างแพร่หลายในอุตสาหกรรม และถูกใช้งานใน Kubernetes
  • YAML ถูกมองว่าดีกว่า windows.ini เพียงเล็กน้อย และต่างจาก JSON ตรงที่รองรับ comment
  • บทความนี้ชี้ว่า YAML ขาดเอกสารทางการที่เพียงพอ นอกเหนือจากสเปกสำหรับผู้พัฒนา implementation
  • YAML ถูกเน้นย้ำว่าเป็นวิธีในการรันโค้ดอย่างปลอดภัย พร้อมมีการอ้างอิงถึงปัญหาด้านความปลอดภัยที่อาจเกิดขึ้น
  • ผู้เขียนเตือนว่าการใช้ YAML อาจนำไปสู่ผลลัพธ์ที่ไม่คาดคิด เช่น 'NO' ถูก parse เป็นชนิดบูลีน หรือจำนวนเต็มขนาดใหญ่ถูกแปลงเป็นเลขฐานแปดโดยอัตโนมัติ
  • บทความนี้พูดถึงความท้าทายของการใช้ YAML อย่างมีอารมณ์ขัน เช่น ปัญหา debugging ที่เกี่ยวข้องกับการเข้ารหัสเวลาและรูปแบบเลขฐานแปด
  • ผู้เขียนแชร์ทวีตที่แสดงความไม่พอใจต่อ YAML ในบริบทของ GitHub Actions
  • บทความนี้ปิดท้ายด้วยสถานการณ์สมมติที่ SQL สร้างขึ้นบนพื้นฐานของ YAML

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

 
GN⁺ 2023-09-29
ความคิดเห็นจาก Hacker News
  • สมมติฐานของ YAML เกี่ยวกับเลขฐานแปดและสตริงอาจทำให้เกิดผลลัพธ์ที่ไม่คาดคิดและระบบล้มเหลวได้
  • YAML เป็นรูปแบบข้อมูลที่มนุษย์อ่านและเขียนได้ แต่เมื่อถูกใช้กับตรรกะแทนข้อมูลแบบง่าย ๆ ก็มักเกิดปัญหา
  • CI/CD มักมีตรรกะรวมอยู่ด้วย ซึ่งไม่ใช่สิ่งที่ YAML ล้วน ๆ จัดการได้อย่างเหมาะนัก
  • ไม่ควรใช้ YAML นอกระบบนิเวศของ Python เพื่อหลีกเลี่ยงปัญหาจากความแตกต่างของรูปแบบสคริปต์และรักษาความสม่ำเสมอ
  • Jinja-in-YAML ถูกมองว่าเป็นแอนตีแพตเทิร์น เนื่องจากการออกแบบตั้งต้นไม่ได้รองรับความสามารถในการเขียนโปรแกรม
  • ทางเลือกของ YAML ได้แก่ Dhall, Jsonnet และ Starlark ซึ่งเป็นภาษาที่ไม่สมบูรณ์แบบทัวริงและมีที่มาจาก Python
  • YAML ได้รับการยอมรับเรื่องความอ่านง่าย แต่ความซับซ้อนของการดีพลอยในไปป์ไลน์ CI/CD เป็นปัญหาหลัก
  • การใช้ YAML ในแนวคิดโครงสร้างพื้นฐานในรูปแบบโค้ดอาจก่อให้เกิดความสับสนและความไม่มีประสิทธิภาพ โดยเฉพาะกับนักพัฒนาที่ไม่คุ้นเคยกับอินฟราสตรักเจอร์
  • BCL ถูกเสนอเป็นทางเลือกที่อาจใช้แทน YAML สำหรับการนิยามรีซอร์สในสไตล์ Terraform
  • ใน YAML มักเห็นปรากฏการณ์แพลตฟอร์มภายในองค์กร ซึ่งการตั้งค่าจะค่อย ๆ ขยายตัวจนกลายเป็นภาษาโปรแกรม
  • การใส่เครื่องหมายอัญประกาศให้กับลิเทอรัลทั้งหมดใน YAML สามารถแก้ปัญหาที่พบบ่อยได้หลายอย่าง
  • EDN (Extensible Data Notation) ซึ่งเป็นส่วนย่อยของ Clojure ถูกเสนอเป็นทางเลือกของ YAML
  • YAML มีประโยชน์ต่อการประเมินและการให้ข้อเสนอแนะในสภาพแวดล้อมการศึกษา เพราะอ่านง่ายและใช้ไวยากรณ์แบบ Markdown ได้สะดวก
  • YAML ทำให้การเขียน CI pipeline และการตั้งค่าระบบโฮมอัตโนมัติเป็นเรื่องยาก