6 คะแนน โดย beenzinozino 2025-09-02 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

สรุปประเด็นสำคัญ

  • ESLint v9.34.0 เพิ่มความสามารถในการ lint แบบมัลติเธรด ทำให้ประมวลผลหลายไฟล์พร้อมกันได้
  • มีเป้าหมายเพื่อลดเวลาในการ lint สำหรับโค้ดเบสขนาดใหญ่อย่างมีนัยสำคัญ
  • ฟีเจอร์ที่เตรียมกันมานานกว่า 10 ปีนี้ถูกพัฒนาเสร็จและเปิดใช้อย่างเป็นทางการแล้ว

อะไรที่ดีขึ้น

  • ใช้งาน CPU core ได้คุ้มค่าขึ้นด้วยการประมวลผลแบบขนาน จึงช่วยลดเวลา lint โดยรวม
  • ได้ผลชัดเจนเป็นพิเศษกับ monorepo/รีโพขนาดใหญ่ที่มีจำนวนไฟล์มาก
โฆษณา

วิธีใช้งาน

  • ใน CLI มีตัวเลือกสำหรับควบคุม concurrency (จำนวนเธรด) ให้ใช้งานได้แล้ว (เช่น การตั้งค่าที่เกี่ยวข้องกับ concurrency)
  • สามารถปรับค่า concurrency ให้เหมาะกับโปรเจ็กต์หรือสภาพแวดล้อม CI เพื่อหาจุดที่เหมาะสมที่สุดได้

ข้อจำกัดและสิ่งที่ควรระวัง

  • มีรายงานว่าเมื่อรันผ่าน external wrapper/เครื่องมือ integration บางตัว ประสิทธิภาพอาจไม่เป็นไปตามที่คาดหวัง (แตกต่างกันไปตามสภาพแวดล้อมและชุดเครื่องมือ)
  • เนื่องจากเป็นฟีเจอร์ใหม่ จึงแนะนำให้ตรวจสอบทั้งประสิทธิภาพและความเสถียรทั้งใน CI และบนเครื่อง local เมื่อนำไปใช้กับ lint flow
โฆษณา

เคล็ดลับในการนำไปใช้

  • แทนที่จะเปิดใช้กับทั้งรีโพในครั้งเดียว ควรเริ่มใช้อย่างค่อยเป็นค่อยไปเป็นรายไดเรกทอรี พร้อมหาค่า concurrency ที่เหมาะสม
  • ใน CI ควรปรับทั้ง cache และกลยุทธ์แบบขนานร่วมกัน พร้อมตรวจสอบกฎ/ปลั๊กอินที่เป็นคอขวดก่อน โดยเฉพาะส่วนที่ใช้ file I/O หรือใช้เวลารันกฎนาน

สรุปสั้นๆ

  • “การ lint แบบขนานที่รอกันมานาน ถึงเวลาลองดูว่าช่วยให้เวลา lint ของโปรเจ็กต์ขนาดใหญ่ดีขึ้นได้แค่ไหน”

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

 
hso2341 2025-09-02

เมื่อเทียบกับ Biome แล้ว ความเร็วจะเป็นอย่างไรบ้างนะ?

 
pmc7777 2025-09-03

biome ก็ยังคงเร็วกว่าอยู่ดี แต่ถ้ามองแค่เรื่องความเร็ว oxlint ของ voidzero ก็เร็วกว่าอีก

แต่ในแง่การใช้งานและเอกสารประกอบ biome ใช้งานได้สะดวกกว่า ดังนั้นถ้า ESLint เดิมไม่สามารถทำให้เร็วขึ้นพร้อมกับเสถียรมากขึ้นได้จากการเปลี่ยนจากชุด ESLint + Prettier ไปเป็น ESLint + ESLint Stylistic การปรับแต่งแบบมัลติเธรดครั้งนี้ก็น่าทึ่งก็จริง แต่อดคิดไม่ได้ว่าสักวันหนึ่งมันอาจถูกแทนที่