นักพัฒนาถกเถียงเรื่องการปฏิบัติตามมาตรฐานใน Repository ของไฟล์ที่ถูกต้องขนาดเล็กที่สุด

BigGo Editorial Team
นักพัฒนาถกเถียงเรื่องการปฏิบัติตามมาตรฐานใน Repository ของไฟล์ที่ถูกต้องขนาดเล็กที่สุด

โครงการ GitHub repository ที่รวบรวมไฟล์ที่ถูกต้องขนาดเล็กที่สุดจากภาษาโปรแกรมมิ่งและรูปแบบไฟล์ต่างๆ ได้จุดประกายการอพิพากษ์ที่น่าสนใจเกี่ยวกับสิ่งที่ถือว่าเป็นโค้ดและรูปแบบไฟล์ที่ถูกต้องจริงๆ โครงการนี้มีจุดประสงค์เพื่อแสดงให้เห็นข้อกำหนดขั้นต่ำสุดสำหรับไฟล์ที่ถูกต้องทางไวยากรณ์ในเทคโนโลยีต่างๆ

สстатิสติกของ Repository:

  • ไฟล์ทั้งหมด: 137 ไฟล์
  • ไฟล์ว่าง: 31 ไฟล์ (22.6%)
  • หมวดหมู่ไฟล์: Archives, Audio, Documents, Executables, Graphics, Languages, Markup, Video, Unsorted

ไฟล์เปล่าครองส่วนใหญ่แต่ทำให้เกิดคำถาม

Repository นี้มีไฟล์ทั้งหมด 137 ไฟล์ โดยมี 31 ไฟล์ที่เป็นไฟล์เปล่าสมบูรณ์ แม้ว่าไฟล์ขนาดศูนย์ไบต์เหล่านี้จะตอบสนองข้อกำหนดของ interpreter ในภาษาอย่าง Python ได้ แต่นักพัฒนาก็ตั้งคำถามว่าไฟล์เปล่าสามารถเป็นตัวแทนของภาษาโปรแกรมมิ่งได้จริงหรือไม่ บางคนโต้แย้งว่าหากคุณสามารถรันคำสั่งอย่าง python myfile.py โดยไม่มีข้อผิดพลาด ไฟล์นั้นควรถือว่าถูกต้อง โดยไม่คำนึงถึงเนื้อหา

การถกเถียงเชิงปรัชญานี้ขยายไปเกินกว่าภาษาโปรแกรมมิ่ง คอลเลกชันนี้รวมถึงตัวอย่างขั้นต่ำสำหรับรูปแบบไฟล์ตั้งแต่รูปภาพและไฟล์บีบอัดไปจนถึงเอกสารและไฟล์ปฏิบัติการ แม้ว่าหลายไฟล์จะอาศัยการแยกวิเคราะห์แบบผ่อนปรนมากกว่าการปฏิบัติตามมาตรฐานอย่างเคร่งครัด

การปฏิบัติตามมาตรฐานถูกตรวจสอบอย่างละเอียด

สมาชิกชุมชนได้ระบุไฟล์หลายไฟล์ที่ไม่ตรงตามข้อกำหนดอย่างเป็นทางการ ตัวอย่าง PDF ขาดองค์ประกอบที่จำเป็นอย่างมาร์กเกอร์ %%EOF และตารางอ้างอิงไขว้ ในขณะที่รูปแบบรูปภาพบางอย่างผลักดันขอบเขตของสิ่งที่เบราว์เซอร์และแอปพลิเคชันต่างๆ จะยอมรับ นักวิจารณ์ชี้ให้เห็นว่าผู้เขียนไม่ได้ระบุว่าไฟล์เหล่านี้ควรทำงานใน implementation ใด ทำให้ยากต่อการตรวจสอบความเข้ากันได้ที่แท้จริง

ไฟล์เหล่านี้บางไฟล์ไม่เป็นไปตามมาตรฐานอย่างมาก แม้ในเมื่อมาตรฐานไม่เหลือที่ว่างให้... น่าเสียดายที่ผู้เขียนไม่ได้ระบุว่าสิ่งเหล่านี้ควรทำงานใน implementation ใด

การประยุกต์ใช้งานจริง:

  • GIF ขนาดเล็กที่สุด (42 ไบต์): ใช้เป็นตัวแทน favicon เพื่อป้องกันข้อผิดพลาด 404
  • รูปแบบ Data URI: <link rel="icon" href="data:image/gif;base64,R0lGODlhAQABAAAAADs=">
  • favicon ขนาดเล็กทางเลือก: <link rel=icon href=data:> (สั้นกว่าเดิม)

การตรวจสอบความถูกต้องของ HTML จุดประกายการอพิพากษ์ทางประวัติศาสตร์

ต้นกำเนิดของโครงการในการสำรวจไฟล์ HTML5 ขั้นต่ำได้จุดประกายการถกเถียงเกี่ยวกับวิวัฒนาการของมาตรฐาน HTML ขึ้นใหม่ นักพัฒนาได้อภิปรายว่า HTML5 เปลี่ยนแปลงอย่างพื้นฐานจากเวอร์ชันก่อนหน้าโดยการกำหนดอัลกอริทึมที่เคร่งครัดสำหรับการจัดการมาร์กอัปที่หลวม แทนที่จะต้องการโครงสร้างที่แข็งแกร่ง การเปลี่ยนแปลงนี้หมายความว่าเอกสารอย่าง <!DOCTYPE html><title>Hello</title> ตอนนี้เป็นไปตามมาตรฐานอย่างสมบูรณ์ แม้ว่านักพัฒนาหลายคนยังคงต่อต้านการยอมรับมาร์กอัปขั้นต่ำเช่นนี้ว่าถูกต้อง

การสนทนาเผยให้เห็นว่าปรัชญาการแยกวิเคราะห์เปลี่ยนแปลงอย่างมากระหว่าง HTML 4 และ HTML5 โดยมาตรฐานใหม่กว่าได้ทำการประมวลผลการแยกวิเคราะห์ tag soup ที่เบราว์เซอร์ได้ทำอย่างไม่เป็นทางการมานานหลายปี

วิวัฒนาการของมาตรฐาน HTML:

  • HTML 4 และรุ่นก่อนหน้า: ข้อกำหนดโครงสร้างที่เข้มงวดพร้อมการแยกวิเคราะห์ SGML
  • HTML5: อัลกอริทึมการแยกวิเคราะห์ที่ยืดหยุ่นซึ่งจัดการกับมาร์กอัป "tag soup" ได้
  • HTML5 ที่ถูกต้องขั้นต่ำ: &lt;!DOCTYPE html&gt;&lt;title&gt;Hello&lt;/title&gt;
  • การเปลี่ยนแปลงสำคัญ: มาตรฐานในปัจจุบันกำหนดวิธีการดึง DOM จากข้อมูลอักขระใดๆ

แอปพลิเคชันในทางปฏิบัติเกิดขึ้น

แม้จะมีลักษณะทางวิชาการของแบบฝึกหัด นักพัฒนาก็พบการใช้งานในทางปฏิบัติสำหรับไฟล์ขั้นต่ำเหล่านี้ GIF ที่ถูกต้องขนาดเล็กที่สุดทำหน้าที่เป็น favicon placeholder ที่มีประสิทธิภาพในระหว่างการพัฒนา ป้องกันข้อผิดพลาด 404 ในบันทึกของเบราว์เซอร์ นักพัฒนาเว็บยังแบ่งปันเทคนิคสำหรับการสร้าง SVG favicon ขั้นต่ำและอภิปรายการใช้ GIF โปร่งใสขนาดเล็กในอดีตในเลย์เอาต์ที่ใช้ตารางจากหลายทศวรรษที่ผ่านมา

โครงการนี้แสดงให้เห็นว่าการเข้าใจข้อกำหนดขั้นต่ำสุดสำหรับรูปแบบไฟล์สามารถนำไปสู่การปรับปรุงประสิทธิภาพที่มีประโยชน์ได้ แม้ว่าตัวอย่างเหล่านั้นจะไม่เหมาะสมสำหรับการใช้งานจริง นอกจากนี้ยังเน้นความตึงเครียดที่ดำเนินต่อไประหว่างการปฏิบัติตามมาตรฐานเชิงทฤษฎีและความเข้ากันได้ของ implementation ในโลกแห่งความเป็นจริงข้ามแพลตฟอร์มและแอปพลิเคชันต่างๆ

อ้างอิง: Smallest possible […] file