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

Viết bởi @kcjpop

Đăng ngày

Dài 1062 từ. Đọc trong 6 phút.

TypeScript kỉ niệm 10 tuổi 🥳🎂🎉

Chớp mắt đã thấy TypeScript xuất hiện được 10 năm rồi đó mọi người ơi. Lần đầu tiên TypeScript được giới thiệu với công chúng là vào ngày ngày 01 tháng 10 năm 2012 đó. Thời gian trôi qua nhanh quá 🥲

Hồi lúc mới nghe đến TypeScript mình nghĩ “Chời chắc chỉ có mấy cha viết C# xài thôi, roài sẽ lụi sớm thôi, hàng M$ mà.” Nào có ai ngờ TS được đông đảo lập trình viên đón nhận. Rồi team Angular thông báo Angular 2 sẽ viết bằng TypeScript hoàn toàn, thế là lượng người dùng TS lại càng mở rộng nữa 😅 Giờ thì nhà nhà xài TS, người người xài TS, ồ quao.

Xét về ưu điểm thì không phải nói nhiều. Nhờ TS mà bạn có thể kiểm tra kiểu dữ liệu ngay trong lúc viết code, giúp hạn chế lỗi khi biên dịch nè. TS cũng đem đến gợi ý code (code completion), nhảy đến định nghĩa biến, hàm, v.v. nhanh hơn, và hỗ trợ refactoring nữa. Các thư viện được viết bằng TS cũng đem đến trải nghiệp lập trình (DX) tốt hơn, khi các định nghĩa kiểu có thể xem như là tài liệu hướng dẫn (documentation) luôn.

Trong tương lai tới, TS chắc chắn sẽ có thêm nhiều công ty áp dụng. Câu hỏi là, bạn đã học/ sử dụng TypeScript chưa?

Nếu chưa thì nghía qua bài viết đầu tiên trong series Cùng học TypeScript của Ehkoo nha (mong là bài tiếp theo sẽ ra sớm). Hoặc bạn cũng có thể tham khảo khóa học Beginner’s TypeScript của Matt Pocock, bao gồm 18 chủ đề đi kèm với bài tập và lời giải.

git 2.38 phát hành

git ra bản 2.38, trong đó đáng chú ý là git rebase --update-refs. Hãy xét qua ví dụ sau: (copy từ blog của Github đó)

$ git log --oneline origin/main..HEAD
741a3174683 (HEAD -> my-feature/part-three) Part 3: all done!
1ff073007eb Part 3: step two
880c07e326f Part 3: step one
40529bd11dc (my-feature/part-two) Part 2: step two
0a92cc3acd8 Part 2: step one
eed018043ba (my-feature/part-one) Part 1: step three
646c870d69e Part 1: step two
9147f6d2eb4 Part 1: step one

Trong ví dụ trên thì chúng ta chia nhỏ my-feature thành 3 phần. Giả sử bạn gửi my-feature/part-one lên để review, sau đó mọi người góp ý và bạn phải chỉnh sửa my-feature/part-one lại. Lúc này 2 branches my-feature/part-twomy-feature/part-three sẽ không còn trỏ đến commit eed018043ba cũ nữa.

Một cách để giải quyết vấn đề này là git checkout 2 branches đó, xong chúng ta có thể git rebase my-feature/part-one, tùy thuộc vào bạn muốn kết quả cuối cùng như thế nào. Hoặc chúng ta có thể dùng git rebase --update-refs. --update-refs sẽ cập nhật các branch phụ thuộc vào branch hiện tại, giúp chúng ta không phải làm thủ công nữa.

Ngoài ra git 2.38 còn giới thiệu một công cụ quản lý cho các repo lớn, gọi là Scalar. Để biết thêm chi tiết thì bạn có thể đọc bài blog này.

web.dev giới thiệu 2 khóa học về accessibility và HTML

Vừa qua web.dev đã trình làng khóa học Learn Accessibility, giới thiệu cơ bản về khả năng tiếp cận (accessibility hay a11y) cho web/ ứng dụng. Khóa học được thiết kế bởi Carie Fisher, hiện đang có 7 phần, và những phần còn lại sẽ được hoàn thành vào cuối năm 2022.

Bên cạnh đó web.dev cũng ra lò khóa học Learn HTML do Estelle Weyl xây dựng. Khóa học này hiện đang có 5 phần. Mặc dù là lập trình viên frontend có lẽ ai cũng phải biết HTML rồi, nhưng HTML liên tục phát triển và cải tiến nên chắc chắn bạn sẽ học được vài điều mới trong khóa học này.

Tin vắn

  • CodeSandbox giới thiệu Repositories: Tên cũ là CodeSandbox Projects, Repositories cho phép bạn kết nối với repository trên Github, tự động tạo sandbox riêng cho từng branch. Mỗi sandbox sẽ chạy trên một micro VM, được quảng cáo là “nhanh như điện”. Với Repositories, bạn có thể code ở bất cứ nơi đâu, review PRs nhanh hơn vì không cần phải tốn thời gian thiết lập/ cài đặt, chia sẻ code với mọi người/ đồng nghiệp dễ dàng hơn, v.v và m.m.

    Repositories cũng được đưa vào cùng dashboard trên CodeSandbox, giúp việc truy cập dễ dàng hơn.

  • Supabase và Snaplet cùng xây dựng postgres-wasm: Supabase và Snaplet vừa mở mã nguồn của postgres-wasm, một server PostgreSQL chạy trực tiếp trên trình duyệt. Hồi tháng 8 CrunchyData cũng đã có một bản PostgreSQL Wasm, nhưng không phải mã nguồn mở. Bạn có thể xem bản demo trực tiếp ở https://wasm.supabase.com/.

  • Supabase giới thiệu Auth UI, một component được xây dựng sẵn giúp bạn xác thực người dùng dễ dàng hơn. Bạn cũng có thể thay đổi theme và styles để phù hợp với ứng dụng của mình. Hiện tại Auth UI chỉ mới hỗ trợ React và sẽ xây dựng cho những framework khác trong tương lai gần.

  • Cloudflare giới thiệu Turnstile, một giải pháp thay thế cho CAPTCHA nhưng thân thiện với người dùng hơn và chú trọng vào quyền riêng tư.

  • Firefox hỗ trợ TextDecoderStreamTextEncoderStream từ phiên bản 105.

Đọc gì cuối tuần

  • Making React fast by default and truly reactive: Bài viết điểm qua vấn đề muôn thuở của React: re-render quá nhiều và không đáng có, đồng thời giới thiệu hướng giải quyết bằng cách dùng Legend-State, một thư viện quản lý trạng thái. Đọc code làm mình liên tưởng đến Preact Signal.

  • Optimize long tasks: Tìm hiểu task trong trình duyệt là gì, và một số chiến lược để quản lý những task chiếm nhiều thời gian.

  • Why I don’t Use Prettier: Anthony Fu, thành viên nòng cốt của Vue, Nuxt, Vite, tác giả của Slidev, UnoCSS, v.v., mặc dù rất thích Prettier nhưng vẫn không xài vì:

    • opinionated nên muốn chỉnh sửa cũng khó
    • Line wrapping thỉnh thoảng làm code xấu đi và tạo ra những thay đổi không đáng khi review code
    • Ảnh hưởng khi xài chung với ESLint

    Kết luận là ảnh để ESLint định dạng code thay vì Prettier.

  • The Future of the Web is on the Edge: Hiệu suất tốt hơn? Bảo mật tốt hơn? Trải nghiệm lập trình viên tốt hơn? Đó là những gì được quảng cáo khi bạn livin’ on the edge.

Kết

Hẹn gặp lại các bạn trong bản tin Ehkoo tuần 41 nhe, bái bai 👋

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 🤗