นักพัฒนาที่ใช้ชื่อบัญชี PatrickJS ทดลองสร้างแพ็กเกจ "everything" โดยลากเอาทุกแพ็กเกจใน NPM เข้ามาเป็น dependency แล้วปล่อยแพ็กเกจนี้ขึ้นสู่ NPM ส่งผลให้นักพัฒนาทั้งระบบไม่สามารถลบหรือซ่อนแพ็กเกจออกไปได้
แนวทางของ PatrickJS คือสร้างแพ็กเกจย่อยจำนวน 5 แพ็กเกจ แต่ละตัวระบุว่าต้องใช้งานแพ็กเกจอื่นๆ ใน NPM ประมาณ 800 รายการ จากนั้นทุกตัวมารวมกันที่ everything ตัวหลัก หากผู้ใช้คนใดสั่ง npm install everything
ก็จะเป็นการลากทุกแพ็กเกจใน NPM ลงมาในเครื่องทันที โดยรวมน่าจะดาวน์โหลดแพ็กเกจทั้งหมดนับล้านรายการ
ผลกระทบข้างเคียงคือนักพัฒนาบางรายต้องการซ่อนแพ็กเกจของตัวเองกลับไม่สามารถซ่อนได้ เนื่องจาก NPM มองว่ามีแพ็กเกจอื่นใช้งานอยู่ โดยแนวทางนี้มีไว้เพื่อป้องกันเหตุการณ์ที่นักพัฒนาแพ็กเกจ left-pad ลบแพ็กเกจออก ทำให้ซอฟต์แวร์จำนวนมากใช้งานไม่ได้
ภาพสุดท้ายของ everything มีการดาวน์โหลดไปประมาณ 235 ครั้ง
ที่มา - Bleeping Computer
Comments
everything jingle bell
วอฟต์แวร์ => ซอฟต์แวร์
เจ๋งง
แน่นอนมากไอ้ทิด
..: เรื่อยไป
สงสัยว่า left-pad มันมีอะไรพิเศษกว่าเขียนเอง เพราะเท่าที่นึกออกมันไม่ได้เขียนยากอะไรขนาดนั้นครับ
Spolier: nothing special with it. Nobody could ever anticipate such a series of events to happen.
Obligatory xkcd
Blog | Twitter
ไม่มีครับ
พวกนี้มันเคยเป็นประเด็นช่วงนึงว่า อะไรแบบนี้ต้องทำ lib ด้วยเหรอ
นอกจากนี้ยังมี isArray (1 บรรทัด), isPositive (4 บรรทัด) อีก
แถมไอ้ left-pad นี่มันมีเขียน comment ไว้ทุกบรรทัดอีก ตลกมาก
ขนาดประกาศตัวแปร ก็ยังเขียน comment
อันที่สั้นๆแต่มีประโยชน์ผมชอบ just