pnpm 11.23 gives the registries setting a shape that describes each registry once — its tarball layout, the scopes routed to it, the prefix it answers to — so an Artifactory or GitLab registry can finally keep its tarball URLs out of pnpm-lock.yaml. It adds virtualStoreType, makes undeclared imports resolve under ESM with the global virtual store without a plugin, teaches pnpm config get to report the settings pnpm actually acts on, and warns about settings no pnpm version recognizes.
Why read it: Bài viết này giúp bạn hiểu cách pnpm 11.23 tối ưu hóa quản lý registry và cải thiện trải nghiệm lập trình với tính năng mới về cấu hình và quản lý package.
Source: https://pnpm.io/blog/releases/11.23. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Đang tải bình luận…
Node.js phiên bản 26.11.1 là một runtime environment mã nguồn mở cho phép phát triển server, ứng dụng web, công cụ dòng lệnh và script. Phiên bản này tiếp tục phát triển trên nền tảng JavaScript, tích hợp các cải tiến về hiệu năng và bảo mật. Các lập trình viên nên cân nhắc nâng cấp lên phiên bản mới nhất để tận hưởng các bản vá bảo mật quan trọng và tối ưu hóa performance trong ứng dụng. Đặc biệt, phiên bản Current mang đến những tính năng experimental có thể định hình hướng phát triển trong tương lai của ecosystem Node.js.
Bài viết này giúp lập trình viên nắm rõ phiên bản Node.js 26.11.1 với các cải tiến và tính năng mới nhất.
Booking.com đã tiết giảm chi phí compute cho Node.js tới 38% khi chuyển từ pm2 sang Watt. …
Node.js đang đối mặt với thách thức hiệu năng khi xử lý tác vụ I/O nặng. Trong môi trường production, các tác vụ tính toán phức tạp có thể block event loop, làm giảm hiệu suất ứng dụng. Nghiên cứu chỉ ra rằng sử dụng worker threads trong Node.js hiệu quả hơn so với việc tạo các process riêng biệt, giảm thiểu memory overhead tới 30% và tăng throughput lên 25% trong các test benchmark. Đáng học hỏi là cách Node.js quản lý thread pool với tham số UV_THREADPOOL_SIZE cho phép tối ưu hóa tài nguyên hệ thống. Các lập trình viên nên cân nhắc kỹ khi quyết định giữa worker threads và processes dựa trên đặc thù ứng dụng và tài nguyên hệ thống sẵn có.
Bài viết giải thích khi nào và tại sao sử dụng worker threads hiệu quả hơn processes trong Node.js để tối ưu hóa hiệu năng ứng dụng.
Nhiều lập trình viên lầm tưởng rằng khi sử dụng ORM, nguy cơ SQL injection sẽ được loại bỏ hoàn toàn, nhưng thực tế chỉ chuyển dịch sang vị trí khác. Các ORM như Sequelize, Prisma, TypeORM, và Knex vẫn có thể bị khai thác SQL injection khi phép ánh xạ đối tượng quan hệ không được triển khai chính xác. Kẻ tấn công có thể lợi dụng các phương thức động hoặc hàm không được parameter hóa để chèn mã độc vào truy vấn. Lỗi thường gặp nhất là sử dụng template literals kết hợp với các giá trị đầu vào không được kiểm soát, dẫn đến lỗ hổng bảo hiểm nghiêm trọng. Mặc dù có SQL injection ORM vẫn tồn tại, bài viết cung cấp các giải pháp cụ thể để bảo vệ ứng dụng, nhấn mạnh tầm quan trọng của việc kiểm tra đầu vào và sử dụng prepared statements thay vì concatenation strings.
ORM có thể vẫn để lỗ hổng SQL injection đi qua nếu bạn không sử dụng chúng đúng cách.
V8 engine gặp vấn đề khi đối tượng với __proto__: null bị mắc kẹt ở dictionary mode. Nguyên nhân kỹ thuật nằm ở cách V8 xử lý prototype chain khi prototype được đặt thành null. Hệ quả là hiệu năng giảm đáng kể, như test case cho thấy WebStreams throughput chỉ đạt 500MB/s. Điều đáng học là thay thế literal object bằng classes hoặc Object.setPrototypeOf giúp tăng hiệu năng lên 2x, đạt 1GB/s throughput trong Node core.
Tìm hiểu cách tối ưu hiệu suất bằng cách loại bỏ nguyên mẫu null để tăng gấp đôi throughput trong Node.js.
Node.js phiên bản 26.11.0 đã được phát hành với nhiều cải tiến đáng chú ý. Bản cập nhật này tập trung vào hiệu suất của JavaScript engine V8 và tăng cường hỗ trợ cho ES2024 features. Phiên bản mới mang lại lợi ích đáng kể cho các ứng dụng server-side và CLI tools nhờ vào bộ nhớ quản lý hiệu quả hơn. Các nhà phát triển nên cân nhắc cập nhật nếu đang sử dụng các tính năng mới nhất của ECMAScript để tối ưu hóa hiệu suất ứng dụng.
Bài viết này giúp lập trình viên nắm bắt thông tin cập nhật về phiên bản Node.js 26.11.0 và các tính năng mới quan trọng.
Trong hệ thống phân tán, vấn đề "save-then-publish" có thể gây mất sự kiện (event) mà không ghi log lỗi nào. Nguyên nhân kỹ thuật là transaction database và message broker hoạt động độc lập, dẫn đến tình trạng message bị drop dù insert thành công. Hệ quả là các subscriber không nhận được event cần thiết, làm hỏng tính toàn vẹn dữ liệu. Pattern Outbox + Inbox sử dụng cùng một transaction để lưu cả event và dữ liệu vào database, đảm bảo không mất sót message, thực hiện hiệu quả với Postgres và Node.js.
Bài này giải thích cách tránh mất sự kiện khi lưu trữ dữ liệu bằng pattern Outbox trong Postgres và Node.js.
Node.js là runtime environment cho việc thực thi JavaScript ngoài trình duyệt web. Bài viết giải thích cách xây dựng server, routes, routers và views trong Express.js framework cho các ứng dụng back-end. Node.js cung cấp APIs và công cụ cần thiết để phát triển từ các script nhỏ đến ứng dụng quy mô lớn. Bài hướng dẫn này sẽ giúp lập trình viên nắm vững các khái niệm cơ bản về xây dựng ứng dụng web server với Node.js và Express.js.
Bài viết này cung cấp kiến thức nền tảng cần thiết để xây dựng ứng dụng back-end với Node.js và Express.js từ cơ bản đến nâng cao.
Read the news here, practice coding, follow structured courses and train for IELTS on our sibling products — all connected through one 8 Sync account.
The ecosystem home: product overviews, blog and full pricing.
ExploreLearn along a clear roadmap: videos, auto-graded quizzes, certificates and mentors who ship for a living.
View the roadmap1,000+ DSA problems in Vietnamese, auto-graded across 7 languages — many FREE, right in your browser.
Practice for freeAI grading for all four IELTS skills with detailed rubric feedback.
Try it freeA 22 MB AI IDE for Vietnamese devs.
Download freeOrganizational memory for AI agents.
ExploreAI that staffs your Fanpage and qualifies leads for you.
Try it