Có gì hot? Tuần 41 - 2023
Tuần này học gì: Kiểm tra chính tả của một trang web
Mẹo này được Stephanie Eckles chia sẻ trên Mastodon. Đại loại là bạn có thể chạy document.designMode = 'on'
trong console để bật chế độ design của một trang web lên. Vì chế độ này chuyển tất cả nodes trong trang thành contenteditable
, nó cũng đồng thời kiểm tra chính tả và ngữ pháp luôn.
Tiếng Anh thì dễ rồi chắc để kiểm tra tiếng Việt trình duyệt sẽ dựa vào thuộc tính lang
của thẻ <html>
hoặc thẻ tương ứng. Mình chưa kiểm chứng nha.
Tin vắn
-
Stackblitz thông báo hỗ trợ WASI cho WebContainers. WebAssembly System Interface là cầu nối đứng giữa, cho phép code WebAssembly có thể tương tác với các tài nguyên của hệ thống như hệ thống tập tin, network, v.v. mà không cần phải đi qua JavaScript. Hỗ trợ WASI mở ra cơ hội cho các ngôn ngữ có thể biên dịch ra WASM như Rust, C/C++, Python, Golang, hay cả PHP chạy trực tiếp trên trình duyệt web. Bạn chỉ cần kéo thả tập tin
*.wasm
vào dự án Stackblitz là đã có thể chạy rồi. -
Một diễn biến khác thì Codesandbox giới thiệu tính năng mới hỗ trợ Dev Containers. Đây là một đặc tả được phát triển bởi Microsoft, giúp việc thiết lập môi trường phát triển (dev environment) trong một dự án dễ dàng và đồng nhất hơn. Bạn có thể dùng Dev Containers trong VSCode hay Github Codespace, và giờ đây là Codesandbox. Codesandbox sẽ tự động nhận dạng ngôn ngữ lập trình và các dịch vụ cần thiết trong dự án và thiết lập cho bạn. Ngoài ra bạn cũng có thể chọn chế độ Nâng cao để tha hồ tùy chỉnh theo ý muốn. Hỗ trợ tất cả ngôn ngữ lập trình nhe.
-
Netlify mang đến Netlify Functions 2.0. Thay đổi đầu tiên là các hàm serverless sẽ sử dụng đối tượng Request và Response theo tiêu chuẩn. Bên cạnh đó một đối tượng Context chứa thông tin về request như geolocation, địa chỉ IP, metadata, v.v. cũng được đính kèm. Thay đổi tiếp theo là cho phép định nghĩa đường dẫn đến hàm serverless, ví dụ như
/api/my-endpoint
, thay vì mặc định vào/.netlify/functions/<function name>
. Những thay đổi khác bao gồm: hỗ trợ routing vớiURLPattern
, tùy chỉnh phương thức HTTP cho hàm serverless, hỗ trợ response streaming. Netlify đảm bảo các hàm cũ vẫn tương thích và hoạt động bình thường trên nền tảng 2.0 mới. -
Lit, framework xây dựng Web Components rất phổ biến, vừa phát hành phiên bản 3.0. Một thay đổi đáng chú ý là tích hợp Preact Signals. Bên cạnh lý do signal 1/ đang hot rần rần 2/ cải thiện hiệu suất và trải nghiệm lập trình viên thì Preact Signal tỏa sáng khi rất gọn nhẹ và không phụ thuộc vào framework/ thư viện nào.
-
Framework Trái Chanh của Deno ra bản 1.5, giới thiệu khái niệm Partials giúp đánh dấu một phần của website sẽ thay đổi khi người dùng chuyển trang, và Fresh sẽ chỉ cập nhật phần đó. Partials giúp chuyển trang mượt mà hơn mà vẫn giữ trạng thái (state) của các islands.
-
Parcel ra bản 2.10.0 với những cải tiến đáng kể về hiệu năng. Tác giả Devon Govett cũng có một thread trên X mô tả về những thay đổi kỹ thuật trong phiên bản này.
-
The Verge cho hay, Microsoft đã tạm biệt React và sử dụng Lit, Web Components, và Vite để xây dựng Microsoft Store cho Windows 10 và 11.
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 😛
-
github/hotkey là thư viện nhỏ gọn 4kB minified giúp bạn gắn phím tắt vào một element trong trang thông qua thuộc tính HTML. Ví dụ như
<button data-hotkey="Shift+?">Show help dialog</button>
. -
boxshadows.xyz là công cụ tạo
box-shadow
cho CSS trực quan, sinh động, dễ xài lại có ngay kết quả. Lời tự thú là trước giờ mình toàn xài các khai báobox-shadow
có sẵn của Material UI thôi 🥲 -
.classnames là tập hợp những từ bạn có thể dùng để đặt tên biến, class, hàm, hay bất cứ thứ gì. Chẳng hạn như CSS class chứa danh sách các phần tử có thể gọi là
wrapper
,container
, haygroup
. Nói chung đặt tên khó lắm. -
ekmas/neobrutalism-components: Tập hợp các components cho React được thiết kế theo chủ nghĩa tân thô mộc (neo-brutalism), là phong cách giống như Gumroad hay Figma. Thư viện này sử dụng Tailwind.
Đọc/ xem gì cuối tuần
-
CSS Blend Modes: Bài viết rất đẹp của Brad Woods giới thiệu về các chế độ trộn màu (blend modes) của CSS. Ngoài mô tả các giá trị của hai thuộc tính
background-blend-mode
vàmix-blend-mode
, bài viết còn đưa ra những ví dụ rất thực tế. Đáng để đọc nha 👍 -
Maybe you don’t need Rust and WASM to speed up your JS (2018): Bài viết của Slava Egorov, kỹ sư trình biên dịch của Dart, về tối ưu hóa trong V8. Có thể hơi nặng về kỹ thuật nếu bạn giống mình chỉ viết JavaScript bình thường, nhưng trong bài cũng có một số lời khuyên dành cho chúng ta.
-
Strong static typing, a hill I’m willing to die on…: Lại tiếp tục chủ đề khai báo kiểu dữ liệu hay không, bài viết này của Tom Hacohen nêu ra 3 lý do để sử dụng ngôn ngữ kiểm tra kiểu dữ liệu trong dự án: ít bugs, trải nghiệm lập trình viên tốt hơn, khai báo types = tài liệu phát triển. Câu chuyện này giống như vim vs emacs, hay tab vs spaces, mãi mãi không có hồi kết.
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 ButtondownGử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 🤗