9 คะแนน โดย bboydart91 28 일 전 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

บทความนี้สรุปเส้นทางของ es-toolkit ไลบรารียูทิลิตี JavaScript ที่มาแทน lodash ซึ่งสร้างโดยทีมฟรอนต์เอนด์ของ Toss จนมียอดดาวน์โหลดบน npm รายสัปดาห์ทะลุ 10 ล้านครั้ง

  • เริ่มต้นจากคำถามในปี 2024 ว่า “เคยมี JS library จากเกาหลีที่ถูกใช้งานในระดับโลกบ้างไหม?”
  • หลังจาก lodash ถูกออกแบบมาเมื่อ 10 ปีก่อน สภาพแวดล้อมอย่าง ES Modules, tree shaking, การปรับแต่งประสิทธิภาพของ V8 engine, TypeScript ฯลฯ เปลี่ยนไปมาก แต่โครงสร้างยังคงเดิม จึงมองว่านี่เป็นโอกาสในการออกแบบใหม่ทั้งหมดตั้งแต่ต้น
  • เมื่อเทียบกับ lodash ขนาดบันเดิลลดลงได้สูงสุด 97%, ประสิทธิภาพรันไทม์ดีขึ้น 2~3 เท่า, และมี test coverage 100%
  • ตัวอย่าง: เมื่อดูจาก 5 ฟังก์ชันคือ groupBy, keyBy, pick, omit, debounce ทาง lodash-es มีขนาดประมาณ ~30KB ส่วน es-toolkit อยู่ที่ประมาณ ~1KB
  • ผ่าน es-toolkit/compat สามารถแทนที่แบบ drop-in ที่เข้ากันได้กับ lodash 100% เพียงเปลี่ยนบรรทัดเดียวใน package.json เป็น "lodash": "npm:es-toolkit@^1.44.0" ก็สลับได้โดยไม่ต้องแก้โค้ด
  • Microsoft, Yarn, Storybook, IBM, Recharts, Ink ฯลฯ นำไปใช้งานด้วยความสมัครใจ และล่าสุด Dify ก็เริ่มย้ายจาก lodash มาแล้ว
  • เติบโตอย่างต่อเนื่องโดยไม่มีไวรัลโมเมนต์: 100K → 500K → 1M → 5M → 10M
  • คณะกรรมการโอเพนซอร์สของ Toss ก็กำลังพัฒนาไลบรารีอื่น ๆ ร่วมด้วย เช่น overlay-kit, use-funnel, suspensive

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

 
greekr4 28 일 전

อืม..

 
joyfui 27 일 전

ปกติก็คงใช้ lodash-es กัน แต่ถ้าเป็นของเกาหลีและเข้ากันได้ 100% ก็น่าลองใช้ดูเหมือนกันนะ
แต่ช่วงนี้ไม่ได้ใช้ lodash มานานแค่ไหนแล้วนะ...