Có gì hot? Tuần 47 & 48 - 2023

Viết bởi @kcjpop

Đăng ngày

Dài 885 từ. Đọc trong 5 phút.

Thông báo nhỏ

Tháng 12 này mình xin phép tạm ngưng gửi bản tin Ehkoo nha mọi người. Lý do chính là mình đang tập trung cho một dự án mới, hi vọng sẽ ra mắt vào đầu năm sau. Còn lý do phụ thì vô mùa lễ lạc Noel Xmas tè le hột me nên cũng muốn nghỉ ngơi một chút á mà.

Hẹn gặp lại mọi người trong bản tin đầu tiên của năm 2024 nhe.

Còn một lý do nữa là Advent of Code 2023 🎄 đã bắt đầu rồi. Mình sẽ viết bài trên Ehkoo ghi lại những điều thú vị khi mình giải các câu đố AoC bằng JavaScript. Đừng bỏ qua nha.

Ngoài ra nhóm WeBuild cũng đang thực hiện chương trình Advent of Sharing để các thành viên chia sẻ kiến thức, không chỉ gói gọn trong frontend mà ở những lĩnh vực khác nữa. Rất đáng để học hỏi.

Nếu chưa tham gia WeBuild thì bạn có thể nhận click vào đây để nhận lời mời.

Tuần này học gì: Number.isNaN()isNaN()

Cái này chắc phải gọi là căn bản của căn bản luôn mà giờ này mình mới chịu coi kỹ 🥲 Đại loại chắc bạn đã biết hai hàm/ phương thức này đều có thể dùng để kiểm tra một giá trị có phải là NaN không. Nhưng chúng khác nhau ra sao?

Hóa ra isNaN(val) sẽ tìm cách chuyển val sang giá trị số trước khi kiểm tra. Thành ra chúng ta sẽ có kết quả thế này.

Number.isNaN('hello') // false vì 'hello' không phải là NaN
isNaN('hello') // true vì Number('hello') là NaN

Lời khuyên là luôn dùng Number.isNaN() để kiểm tra NaN nha mọi người.

Ngoài ra mình còn “vô tình biết lại” phương thức tĩnh Number.isInteger(val) để kiểm tra một giá trị có phải là số nguyên không.

Tin vắn

  • Đâu đó vài tuần trước, Christopher Chedeau (@vjeux) trong nhóm phát triển Prettier, Guillermo Rauch CEO của Vercel, và mấy chế khác vừa treo giải thưởng $25k để viết lại Prettier bằng Rút cho nhanh hơn thì tuần này nhóm phát triển Biome đã thông báo giựt giải. Biome hiện đang tương thích với Prettier tới 96% khi định dạng JavaScript, TypeScript, và JSX. Tính ra cũng hợp lý vì Biome đang phát triển một giải pháp tất cả trong một bao gồm format, lint, v.v. để phát triển web nên đã có nền tảng sẵn rồi.

  • Deno giới thiệu tính năng Deno Cron để lên lịch chạy các tác vụ web. Cách sử dụng cũng khá đơn giản, bạn chỉ cần gọi Deno.cron(taskName, cronTab, callback) là được. Bênh cạnh Deno KV và Deno Queues, sự xuất hiện của Deno Cron làm cho xây dựng ứng dụng web trên Deno ngày càng đơn giản.

Mới thấy trên quầy

Một vài thư viện/ công cụ/ dự án hữu ích mà bọn mình mới phát hiện 😛

  • Font Inter thì rất quen thuộc với mọi người rồi đúng hông? Được xài khắp nơi trên web luôn á. Inter vừa ra bản cập nhật 4.0.

  • eta-dev/eta: là một template engine được phát triển cho Deno, nhưng có thể chạy trên trình duyệt và Node.js. Được viết bằng TypeScript, không sử dụng dependencies, gọn nhẹ chỉ với 3.5KB, và có hiệu suất khá nhanh, hỗ trợ layout, v.v.

  • CheerpJ là cài đặt của Java Virtual Machine được xây dựng bằng WebAssembly. CheerpJ tương thích 100% với Java 8 và mang đến một môi trường thực thi cho các ứng dụng Java ngay trên trình duyệt 🤯 Mình đang nghĩ liệu có thể chạy các ngôn ngữ JVM khác như Clojure hay Kotlin trên CheerpJ không. Bạn có thể đọc qua bài viết deep dive về CheerpJ 3.0 để tìm hiểu thêm.

  • henriqueinonhe/promises-training: Tập hợp những bài tập liên quan tới Promise. Mình hứa sẽ xem qua và kể lại với mọi người có gì hay trong này.

Đọc/ xem gì cuối tuần

  • Why I Tend Not To Use Content Negotiation: Bài viết của Carson Gross trên trang htmx giải thích vì sao theo ý ổng thì “thương thảo nội dung” không phải là giải pháp tốt để trả về JSON và HTML từ cùng một API endpoint.

  • Should AVIF be the dominant image format on the web?: Tim Severien thử so sánh định dạng ảnh AVIF mới xuất hiện với các định dạng nén quen thuộc như JPG hay WebP để xem chất lượng cũng như dung lượng của AVIF có vượt trội hơn không. Kết luận hiện tại là: it depends.

  • Web Components Eliminate JavaScript Framework Lock-in: Lại một bài viết nữa về Web Components đến từ Jake Lazaroff. Trong bài viết này Jake thử nghiệm xây dựng một ứng dụng web mà mỗi component được cài đặt bằng một framework khác nhau. Kết quả như thế nào thì mời bạn đọc bài hen.

  • Reality Check #2: Building out a fancy 404 page: Andy Bell của Set Studio có bài hướng dẫn xây dựng một trang 404. Bài viết có khá nhiều kỹ thuật HTML CSS đáng học hỏi nha.

  • GraphQL is Finally Boring.: Bài này vui, GraphQL cuối cùng cũng trở thành công nghệ của người già. Cơ mà kêu mình dựng server GraphQL thấy cũng làm biếng ghê.

  • An Interactive Guide to CSS Grid: Một bài viết tương tác về CSS Grid bởi không ai khác ngoài Josh Comeau.

Kết

Hẹn gặp lại các bạn trong tuần tiếp theo 👋

Bản tin Ehkoo hàng tuần 💌

Đăng ký ngay để nhận những tin và bài viết mới nhất về lập trình frontend, cũng như các thủ thuật hay thư viện mới…

Powered by Buttondown

Gửi tặng cà phê ☕️

Nếu thấy bài viết này hữu ích, bạn có thể gửi tặng Ehkoo một ly cà phê theo link bên dưới 👇

Cám ơn bạn rất nhiều 🤗