1 điểm bởi GN⁺ 2025-02-15 | 1 bình luận | Chia sẻ qua WhatsApp
  • Thay đổi ngôn ngữ
    • Go 1.24 giờ đã hỗ trợ đầy đủ generic type alias. Type alias có thể nhận tham số giống như kiểu được định nghĩa.
  • Cải thiện hiệu năng
    • Runtime đã có nhiều cải thiện hiệu năng, giúp giảm trung bình 2-3% chi phí CPU trên các bộ benchmark tiêu biểu.
    • Bao gồm triển khai map built-in mới, cải thiện hiệu quả cấp phát bộ nhớ cho các đối tượng nhỏ, và triển khai mutex nội bộ runtime mới.
  • Cải thiện công cụ
    • Lệnh go cung cấp cơ chế theo dõi các phụ thuộc công cụ của module. Có thể dùng go get -tool để thêm chỉ thị công cụ vào module hiện tại.
    • Bộ phân tích kiểm thử mới của lệnh con go vet báo cáo các lỗi thường gặp trong khai báo test, fuzzer, benchmark và example của gói kiểm thử.
  • Bổ sung cho thư viện chuẩn
    • Thư viện chuẩn bao gồm cơ chế mới để tuân thủ FIPS 140-3, và không cần thay đổi mã nguồn để sử dụng các thuật toán đã được phê duyệt.
    • Nhiều package trước đây nằm trong module x/crypto nay đã có sẵn trong thư viện chuẩn.
    • Benchmark giờ có thể dùng phương thức testing.B.Loop nhanh hơn và ít lỗi hơn.
    • Kiểu os.Root mới cung cấp khả năng thực hiện các thao tác hệ thống tệp bên dưới một thư mục cụ thể.
    • Runtime cung cấp cơ chế dọn dẹp mới là runtime.AddCleanup, linh hoạt hơn, hiệu quả hơn và ít lỗi hơn so với runtime.SetFinalizer.
  • Cải thiện hỗ trợ WebAssembly
    • Go 1.24 bổ sung chỉ thị go:wasmexport để chương trình Go có thể export hàm cho host WebAssembly, đồng thời hỗ trợ build chương trình Go thành WASI reactor/library.

1 bình luận

 
GN⁺ 2025-02-15
Ý kiến trên Hacker News
  • Đặc biệt hài lòng với việc triển khai map nhanh hơn và việc text/template giờ đã hỗ trợ kiểu hàm
  • Go 1.23 đã giới thiệu range cho kiểu hàm, nhưng giờ mới hoạt động trong template của Go
  • Tò mò không biết có thể chỉ định tag sẽ dùng khi cài các công cụ được khai báo trong chỉ thị tool hay không
    • Đã thử nhưng không hoạt động (được cài mà không có tag)
    • Đã dùng go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
  • Tò mò về trường hợp sử dụng của os.Root
    • Hiểu là nó liên quan đến bảo mật
    • Vì nội bộ không dùng Chroot, nên có thể hình dung cuối cùng ai đó sẽ tìm ra cách thoát khỏi Root
  • Hơi nhàm chán nhưng vẫn thích
  • Mong chờ nhất là các cờ tool mới
    • Có thể sẽ bỏ được tools.go xấu xí
  • Khi dùng GODEBUG=fips140=only, các thuật toán mật mã không tuân thủ FIPS 140-3 sẽ trả về lỗi hoặc panic
    • Không thích ý tưởng thư viện chuẩn cố tình gây ra panic
    • Chưa xem mã, nhưng tò mò không biết điều này chỉ xảy ra với các hàm hiện tại không trả về lỗi hay không
  • Cuối cùng thì alias kiểu generic mà tôi đã chờ rất lâu cũng có rồi
  • Tuyệt! Tôi đã mong chờ bản phát hành này vì GOAUTH
    • Hy vọng việc làm với kho git riêng tư sẽ bớt phiền phức hơn
    • Xem go help goauth xong thì không quá kỳ vọng