9 điểm bởi bboydart91 20 ngày trước | 2 bình luận | Chia sẻ qua WhatsApp

Đây là bài viết tổng hợp quá trình es-toolkit, thư viện tiện ích JavaScript thay thế lodash do đội frontend của Toss tạo ra, vượt mốc 10 triệu lượt tải mỗi tuần trên npm.

  • Bắt đầu từ câu hỏi vào năm 2024: “Đã từng có thư viện JS nào từ Hàn Quốc được dùng trên toàn cầu chưa?”
  • Sau khi lodash được thiết kế từ 10 năm trước, môi trường đã thay đổi rất nhiều với ES Modules, tree shaking, tối ưu hóa của engine V8, TypeScript..., nhưng cấu trúc của nó vẫn giữ nguyên; nhóm xem đây là cơ hội để thiết kế lại từ đầu
  • So với lodash, kích thước bundle giảm tối đa 97%, hiệu năng runtime tăng 2~3 lần, độ bao phủ kiểm thử đạt 100%
  • Ví dụ: với 5 hàm groupBy, keyBy, pick, omit, debounce, lodash-es khoảng ~30KB, còn es-toolkit khoảng ~1KB
  • Thông qua es-toolkit/compat, có thể thay thế drop-in tương thích 100% với lodash. Chỉ cần đổi một dòng trong package.json từ "lodash": "npm:es-toolkit@^1.44.0" là có thể chuyển đổi mà không cần sửa mã
  • Microsoft, Yarn, Storybook, IBM, Recharts, Ink... đã tự nguyện áp dụng. Gần đây Dify cũng đang tiến hành migration từ lodash
  • Tăng trưởng đều đặn mà không cần khoảnh khắc viral: 100K → 500K → 1M → 5M → 10M
  • Ủy ban mã nguồn mở của Toss cũng đang đồng thời phát triển các thư viện khác như overlay-kit, use-funnel, suspensive

2 bình luận

 

Hmm..

 

Thông thường thì sẽ dùng lodash-es, nhưng nếu là hàng nội địa và tương thích 100% thì cũng đáng để thử một lần.
Mà dạo này mình không dùng lodash đã bao lâu rồi nhỉ...