Có gì hot? Tuần 40 - 2023

Viết bởi @kcjpop

Đăng ngày

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

"Bản tin Ehkoo tuần 40 năm 2023"

Tin vắn

  • Google ra mắt Google-Extended, cho phép các website lựa chọn đóng góp nội dung để xây dựng Bard và Vertex AI hay không. Đại loại nếu bạn không muốn Google sử dụng website của bạn trong hai công cụ AI trên thì thêm dòng này vào robots.txt:
User-agent: Google-Extended
Disallow: /
  • Deno mang đến một dịch vụ mới: Deno Queues, cho phép bạn đẩy các tác vụ nặng nề hoặc cần xử lý sau vào một hàng đợi. Tin nhắn trong hàng đợi này đảm bảo sẽ được lưu chuyển ít nhất một lần. Deno Queues được xây dựng trên nền tảng của Deno KV, sử dụng SQLite khi chạy ở local và FoundationDB khi triển khai trên Cloud. Biểu giá của Deno Queues sẽ dựa vào dung lượng sử dụng của Deno KV.

  • TypeScript giới thiệu phiên bản 5.3 beta. Tính năng nổi bật có lẽ là hỗ trợ khai báo thuộc tính cho từ khóa import, nghĩa là import obj from "./something.json" with { type: "json" } sẽ đọc tập tin này dưới dạng JSON mà không thực thi nó như tập tin JavaScript có đuôi là .json. Ngoài ra còn nhiều thay đổi khác mà bạn có thể click để tham khảo chi tiết.

  • Vitest, framework viết test thế hệ mới dựa vào Vite, chuẩn bị ra phiên bản 1.0. Mọi người có thể thử qua bằng cách chạy npm install --save-dev vitest@beta. Một diễn biến khác thì giáo chủ Evan You vừa thông báo dự án Rolldown, viết lại của Rollup bằng Rút 🦀

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 😛

  • bruno là một API client giống như Postman hay Insomnia, nhưng khác ở chỗ bạn sử dụng ngôn ngữ riêng Bru để mô tả API và lưu thành tập tin trong dự án. Bằng cách này bạn có thể dùng git để theo dõi phiên bản và sở hữu trực tiếp dữ liệu mà không cần phải dựa vào server của bên thứ ba. Bruno có ứng dụng cho desktop, CLI, và một extension cho VSCode.

  • sindresorhus/sort-on: Một thư viện nho nhỏ của Sindre Sorhus giúp bạn sắp xếp một mảng các objects dựa theo một thuộc tính nào đó. Hỗ trợ sắp xếp theo thuộc tính lồng nhau, sắp xếp ngược, đa ngôn ngữ, v.v.

  • prevwong/craft.js: Một framework cho React (framework on framework?) để xây dựng các trang web dạng kéo thả.

  • Nozbe/WatermelonDB là một cơ sở dữ liệu hỗ trợ reactive dành cho các dự án React và React Native.

  • instant-dev/instant là thư viện ORM + migrations cho Postgres được viết bằng JavaScript. Instant mang đến API giống như ActiveRecord của Ruby on Rails. Ngoài ra còn hỗ trợ pgvector để xây dựng ứng dụng AI 😮‍💨

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

  • To Type or Not to Type? A Systematic Comparison of the Software Quality of JavaScript and TypeScript Applications on GitHub: Một bài nghiên cứu của Justus BognerManuel Merkel, phân tích 604 dự án trên Github để xem xài TypeScript có nâng cao chất lượng phần mềm hay không. Kết luận là các dự án sử dụng TS có cải thiện về tính dễ đọc và trải nghiệm lập trình viên, nhưng số lượng bugs so với các dự án JS thì không ít hơn bao nhiêu.

  • Super-fast Sphinx docs, and SNOB driven development: Bài viết rất thú vị của Luke Plant, một trong những thành viên chủ chốt của nhóm phát triển framework Django, chia sẻ cách làm cho website tĩnh “nhanh như điện” với htmxhx-boost. Nhớ đọc đến cuối bài để xem cú bẻ lái ngoạn mục nhe.

  • An Interactive Intro to CRDTs: Bài viết của Jake Lazaroff giới thiệu về “Conflict-free Replicated Data Type” hay CRDT, là một kiểu dữ liệu rất thông dụng để xây dựng các ứng dụng hợp tác thời gian thực, cho phép nhiều người cùng chỉnh sửa trên một tài liệu như Google Docs hay Figma.

  • Photoshop is now on the web!: Adobe vừa giới thiệu Photoshop chạy thẳng trên trình duyệt web thì Addy Osmani của Google Chrome đã có ngay bài phân tích về những công nghệ đằng sau ứng dụng khủng này. Có thể kể đến Origin Private File System, WebAssembly, hệ màu P3 và hàm color() của CSS, Web Components, v.v.

  • Using the Intl segmenter API: Bài viết giới thiệu về Intl.Segmenter, có thể được dùng để tách các từ trong một câu/ đoạn văn bản dựa vào ngôn ngữ được chỉ định. Hiện tại chỉ có Safari và Chrome hỗ trợ API.

  • Counting Ghosts: P.C. Maffey giải thích vì sao đã gỡ bỏ hết các dịch vụ thống kê như Google Analytics ra khỏi các dự án.

  • Typescript Monorepo with NPM workspaces: Dmitry Kudryavtsev chia sẻ cách thiết lập dự án monorepo bằng tính năng workspace của npm.

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 🤗