6 điểm bởi GN⁺ 2024-10-08 | 1 bình luận | Chia sẻ qua WhatsApp
  • Phiên bản beta đầu tiên của Ruby on Rails 8 đã chính thức được phát hành
  • Phiên bản này dựa trên Rails 7.2, giới thiệu các tính năng mới và các tối ưu hóa để việc phát triển Rails trở nên năng suất và thú vị hơn
  • Các điểm nổi bật chính
    • Tích hợp với Kamal 2
    • Giới thiệu Propshaft làm pipeline tài nguyên mặc định mới
    • Bao gồm nhiều cải tiến lớn cho ActiveRecord
    • Nâng cấp tích hợp SQLite để biến nó thành một lựa chọn phù hợp cho sử dụng production

Triển khai đơn giản với Kamal 2 và Thruster

  • Giúp việc triển khai ứng dụng trở nên đơn giản hơn thông qua Kamal 2 và Thruster
  • Kamal 2 cho phép triển khai nhanh và dễ dàng trên cloud VM, máy chủ bare metal hoặc môi trường VPS, qua đó giảm sự phụ thuộc vào các dịch vụ cloud được quản lý và các nền tảng PaaS.
  • Chỉ với một lệnh kamal setup, có thể thiết lập môi trường Rails sẵn sàng cho production trên một máy Linux tiêu chuẩn.
  • Ngoài ra, khi tích hợp với Thruster, có thể triển khai không gián đoạn, hỗ trợ HTTP/2, SSL tự động qua Let's Encrypt, nén Gzip và dễ dàng host nhiều ứng dụng trên một máy chủ duy nhất.

Đơn giản hóa triển khai Rails với Solid Adapters

  • Một trong những cải tiến chính của Rails 8 là đơn giản hóa việc triển khai bằng cách giảm số lượng dịch vụ bổ sung cần thiết để triển khai các nhu cầu phổ biến của ứng dụng web.
  • Chỉ với SQLite, có thể xử lý hàng đợi tác vụ, caching và nhắn tin pub/sub thông qua ba adapter mới dựa trên cơ sở dữ liệu: Solid Cable, Solid Cache và Solid Queue.

SQLite sẵn sàng cho production

  • Biến SQLite từ một công cụ phát triển nhẹ thành một lựa chọn đáng tin cậy phù hợp cho sử dụng production.
  • Nhờ những cải tiến sâu rộng dành cho adapter SQLite và Ruby driver, SQLite giờ đây có thể hỗ trợ hiệu quả Action Cable, Rails.cache và Active Job.

Kỷ nguyên pipeline tài nguyên mới với Propshaft

  • Giới thiệu Propshaft làm mặc định mới cho pipeline tài nguyên, thay thế hệ thống Sprockets đã được sử dụng trong thời gian dài.
  • Propshaft phản ánh một cách tiếp cận đơn giản và hiện đại trong quản lý tài nguyên, phù hợp với các nhu cầu cốt lõi của nhà phát triển hiện đại.

Xác thực tích hợp sẵn trở nên dễ dàng hơn

  • Cung cấp lệnh giúp thiết lập đơn giản một hệ thống xác thực có phiên dựa trên cơ sở dữ liệu và tính năng đặt lại mật khẩu.
  • Lệnh này tạo ra các tệp chính như model, controller, mailer và view, giúp nhanh chóng xây dựng cơ chế xác thực an toàn và sẵn sàng cho production.

Thư mục script và generator mới

  • Giới thiệu thư mục script mới để lưu trữ các script dùng một lần hoặc đa dụng như migration dữ liệu, tác vụ dọn dẹp hoặc các công việc tiện ích khác.
  • Generator script mới giúp tạo và chạy script một cách dễ dàng.

Nhiều cải tiến khác nhau cho Active Record

  • Đưa vào các cải tiến lớn cho Active Record nhằm cung cấp hiệu năng tốt hơn, đơn giản hóa migration, cải thiện khả năng xử lý sự cố và hỗ trợ các trường hợp sử dụng cơ sở dữ liệu phức tạp.

Tổng kết của GN⁺

  • Rails 8 mang đến nhiều cập nhật giúp tăng năng suất cho nhà phát triển và phù hợp với các thực tiễn tốt hiện đại, cho phép tập trung vào việc xây dựng ứng dụng thay vì xử lý sự phức tạp của hạ tầng
  • Triển khai đơn giản với Kamal và Thruster, quản lý tài nguyên hiện đại với Propshaft, cùng khả năng sẵn sàng cho production của SQLite là những ưu điểm nổi bật của Rails 8

1 bình luận

 
GN⁺ 2024-10-08
Ý kiến Hacker News
  • Ruby và Rails gần đây đang bước vào thời kỳ phục hưng

    • Sách Programming Ruby đã được xuất bản bản mới trong năm nay, đề cập đến Ruby 3.3
    • The Rails Way đang được cập nhật cho Rails 8, và dự kiến sẽ có hai cuốn sách đồng hành được phát hành
    • PragProg đang phát hành sớm một cuốn sách mới tên là Rails Scales
    • Ruby đã trở nên rất nhanh nhờ YJIT
    • Rails được bổ sung các tính năng mới dành cho thành công ở "quy mô trung gian"
    • Ruby được bổ sung các tính năng mới như Data (Struct bất biến), pattern matching, Fibers, Ractors, v.v.
    • Đã rời Ruby từ sau năm 2013, nhưng thấy hứng thú với khả năng quay lại
  • Vấn đề lớn nhất của Ruby vẫn là tài liệu

    • Trên trang tài liệu chính thức, các sách cũ và tài liệu API bị trộn lẫn với nhau
    • Các tính năng ngôn ngữ được liệt kê bên dưới API nên gây khó hiểu
    • So với tài liệu của Python thì thiếu một mục lục có cấu trúc rõ ràng
  • Đang làm việc trong một dự án sử dụng Rails và kiến trúc dựa trên microservices

    • Có xu hướng khuyên nên tránh kiến trúc monolithic, nhưng vẫn đánh giá rất cao giá trị cốt lõi mà Rails mang lại
    • Rất thích việc đội ngũ Rails liên tục bổ sung giá trị và cải tiến
  • Rails là một framework mang lại năng suất và độ ổn định cho các dự án web mới

    • Các bản cập nhật major version mới được thực hiện mà không gây thay đổi lớn cho ứng dụng hiện có
  • Thỉnh thoảng nghĩ rằng giá như đã chọn Ruby/RoR thay vì Node.js cách đây 10-15 năm

  • Không dùng Rails, nhưng Solid Adapters trông rất hay

    • Có thể dùng chỉ một cơ sở dữ liệu trong một thời gian rất dài là đủ
    • Việc dùng giải pháp tốt nhất cho cache, pub/sub, full-text search, v.v. làm tăng độ phức tạp vận hành
  • Chủ yếu là lập trình viên Go, nhưng đã bắt đầu dùng Rails cho các dự án cá nhân khi phiên bản Rails 7 ra mắt

    • Việc triển khai lên Dokku mà không cần công cụ frontend phức tạp rất thú vị
  • Đã thử Rails vài lần, nhưng Node dễ hiểu hơn

    • Đang tìm kiếm sự đơn giản, và Rails không phải như vậy
  • Là một lập trình viên Rails với 20 năm kinh nghiệm, đang tìm công việc full-time

    • GitHub handle là như nhau
  • Đã dùng RoR từ năm 2008, và nó vẫn là một framework mạnh mẽ và linh hoạt

    • Có thể nhanh chóng tự mình xây dựng các ứng dụng lớn
    • Đang kỳ vọng việc triển khai sẽ được cải thiện, và hiện đang dùng Dokku thay vì Kamal v1
    • Rất mong đợi Kamal 2