JavaScript Weekly Issue #799: Bun 1.4 is (finally) fresh out of the oven
Source: https://javascriptweekly.com/issues/799. 8 Sync News only summarizes and links out; content copyright belongs to the authors and original sources.
Bài viết mô tả cách xây dựng phiên trò chuyện video tạm thời trên trình duyệt bằng WebRTC, WebSockets và Node.js, với mục tiêu giảm thiểu dữ liệu lưu trữ sau khi cuộc gọi kết thúc. Nó giải thích việc tách luồng média ra khỏi kênh tín hiệu, yêu cầu quyền truy cập camera/mic chỉ khi người dùng thực hiện hành động, và sử dụng máy chủ để ghép phiên dựa trên thông báo qua WebSocket. Khi thiết lập kết nối peer‑to‑peer, bài viết chi tiết quá trình trao đổi SDP offer/answer và ứng viên ICE, lý do STUN thường không đủ và cần TURN làm phương án dự phòng để vượt qua NAT/firewall. Các phiên được mô hình như máy trạng thái rõ ràng, đảm bảo việc ngắt kết nối đúng cách bao gồm đóng RTCPeerConnection, dừng các MediaTrack và xóa trạng thái phiên ở phía server để tránh rò rỉ tài nguyên. Ngoài ra, bài viết đề xuất thêm các hook kiểm duyệt, giám sát trạng thái kết nối và deliberately test các đường dẫn lỗi (mất ICE, thất bại TURN) để nâng cao độ ổn định và bảo mật của hệ thống chat video tạm thời.
Đang tải bình luận…
ESLint vừa phát hành phiên bản 10.9.0, công cụ linting phổ biến để kiểm tra mã JavaScript. Phiên bản này nâng cấp hệ thống plugin và cấu hình, cho phép tùy chỉnh quy tắc sâu hơn mà không cần thay đổi core. Nhờ đó, các nhà phát triển có thể phát hiện sớm các mẫu mã lỗi, kiểu dữ liệu không nhất quán và vi phạm phong cách với ít lỗi lặp hơn. Cải thiện hiệu suất của quá trình lint cũng giúp giảm thời gian chạy CI/CD trong các dự án lớn. Bài học là việc cập nhật ESLint định kỳ giúp duy trì chất lượng mã và tận dụng tối đa khả năng mở rộng của công cụ.
Lập trình viên nên đọc bài này để cập nhật những tính năng mới và cải tiến quan trọng trong ESLint v10.9.0 giúp nâng cao chất lượng code và tăng hiệu quả công việc.
Bản phát hành ứng viên SvelteKit 3 đã được ra mắt với nhiều cải tiến và loại bỏ những phần không cần thiết.
Một lập trình viên nên đọc bài này để khám phá những cải tiến mới trong SvelteKit 3, giúp phát triển ứng dụng web nhanh hơn và đơn giản hơn với các tính năng hiện đại như tích hợp tự động, quản lý trạng thái tiên tiến và hỗ trợ cho các công nghệ tương lai.
webpack ra đời như một công cụ module bundler để giải quyết vấn đề quản lý phụ thuộc trong các dự án front‑end phức tạp. Nguyên nhân kỹ thuật của nó là phân tích đồ thị phụ thuộc của các file JavaScript (và qua loader, các tài nguyên khác như CSS, hình ảnh) rồi tạo ra một hoặc nhiều bundle tối ưu để chạy trên trình duyệt. Hệ quả là các nhà phát triển có thể viết mã theo chuẩn ES modules hoặc CommonJS mà không lo về sự tương thích của trình duyệt, đồng thời giảm số lượng request HTTP và kích thước tải nhờ các tính năng như code splitting và tree shaking. Điều đáng học là việc hiểu cách cấu hình entry, output, loader và plugin giúp bạn tùy chỉnh quy trình build linh hoạt, tối ưu hiệu suất và dễ dàng tích hợp các công nghệ mới như TypeScript, React hoặc Sass. Nếu bạn đang cân nhắc đọc bài gốc, lưu ý rằng bài sẽ đi sâu hơn vào ví dụ cấu hình thực tế và các mẹo nâng cao như module federation hoặc caching lâu dài.
Đọc bài này giúp bạn hiểu cách webpack tối ưu hóa việc quản lý và đóng gói tài nguyên trong dự án web.
npm 12 mặc định tắt cài đặt scripts trong quá trình cài đặt package, buộc người dùng phải cho phép rõ ràng khi chạy scripts. Thay đổi này nhằm tăng cường bảo mật khi registry npm chuyển sang mô hình tin cậy minh bạch.
Lập trình viên nên đọc bài này vì npm 12 thay đổi cơ chế bảo mật bằng cách cắt bỏ mặc định quyền chạy script từ các gói npm, giúp giảm rủi ro từ các cuộc tấn công thông qua các lệnh tự động chạy trong dự án.
Bài viết hướng dẫn cách tối ưu hóa việc lấy dữ liệu song song trong Next.js bằng cách kết hợp Suspense, Promise.all và Promise.allSettled nhằm tránh tình trạng loading kéo dài.
Nếu bạn muốn tối ưu hóa hiệu suất ứng dụng Next.js bằng cách xử lý tải dữ liệu song song một cách hiệu quả và tránh tình trạng chặn UI với các spinner không dứt, bài viết này sẽ cung cấp cách kết hợp Suspense, Promise.all và Promise.allSettled để giải quyết vấn đề.
Cảnh báo về aria-hidden bị chặn là đúng, nhưng hầu hết các cách khắc phục bạn tìm thấy đều sai. Bài viết hướng dẫn cách sửa lỗi này đúng cách.
Lập trình viên nên đọc bài này để tránh những lỗi phổ biến và sai lầm trong cách xử lý thuộc tính aria-hidden trong HTML, giúp cải thiện tính khả dụng (accessibility) của ứng dụng mà không gây ra những vấn đề kỹ thuật không mong muốn.
Thay vì dùng localStorage hack, giờ đây có thể dùng BroadcastChannel API để đồng bộ tab trình duyệt một cách tự nhiên, ví dụ như đăng xuất cùng lúc trên nhiều tab hay cập nhật giỏ hàng tức thì.
Lập trình viên nên đọc bài này để tìm hiểu cách sử dụng BroadcastChannel thay vì giải pháp thủ công với localStorage để đồng bộ hóa dữ liệu giữa các tab mà không cần server, giúp giải quyết vấn đề logout hoặc cập nhật cart một cách hiệu quả và an toàn hơn.
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