Rails 5 có gì mới?

Hi all,

Rails 5 vừa ra mắt bản beta 1, sớm thôi sẽ có bản chính thức.

Chúng ta sẽ cùng điểm qua những thay đổi lớn trên bản Rails 5 này nhé.

Bài viết của năm mới, không có lời gì hơn ngoài cầu chúc mọi người đều có sức khoẻ, thành công trong năm mới 2016.

Quan trọng về yêu cầu của Rails 5 đó là bạn phải cài đặt Ruby v 2.2.2 trở lên thì mới có thể chạy.

Về tính năng mới:

  • Chắc chắn phải nhắc đến ActionCable, đây là một tính năng Rails quyết định hỗ trợ từ bản 5, nhiệm vụ của nó là bạn sẽ không phải tốn quá nhiều công sức để thực hiện một vài chức năng realtime (thời gian thực) bên trong ứng dụng Rails của chúng ta.
    • ActionCable sử dụng Redis (cơ chế Pub/Sub đã giới thiệu bài trước) để có thể hỗ trợ phần back-end. (Vì vậy để sử dụng được bạn cần cài đặt Redis trên hệ thống)
    • ActionCable tích hợp với websocket để bạn có thể làm việc với front-end và back-end một cách dễ dàng. (Bạn có thể xem thêm về websocket tại đây)
    • Về cảm nhận cá nhân, có thể thấy rằng Rails đã chú trọng đến vấn đề khá nan giải lâu nay và đã không phụ lòng các dev Rails.
  • Tiếp theo có thể kể đến việc Rails 5 chú trọng đến thế giới Mobile, vốn được đánh giá từ trước đến này Rails khá thích hợp dùng làm Back-end cho Mobile. Nay Rails cho phép tạo ứng dụng chỉ hỗ trợ api thông qua lệnh sau:

  • Về cơ bản thì Rails cho phép tạo ứng dụng này thông qua việc tích hợp gem  active_model_serializers
    • Về đánh giá cá nhân thì với cách này Rails sẽ mở rộng thị trường ảnh hưởng hơn xưa. 😀 Tuy nhiên với người lập trình api lâu có thể thấy rằng việc viết api cho ứng dụng đâu đơn giản chỉ là những xử lý và dữ liệu trả về có mức độ, nên nhiều khi bạn cần phải custom nhiều với cách viết mới này nhé. 😀
  • Tiếp theo là Attribute API
    • Chỉ cần với khai báo attribute trong Model nay bạn có thể thoả sức custom lại thuộc tính thuộc/ hoặc không thuộc Model. (bài viết sau sẽ nói rõ hơn cái này).
    • Tránh việc sử dụng quá nhiều serialize trong Model của bạn.
  • ApplicationRecord sẽ cập bến Rails 5, đây là super class của ActiveRecord::Base
    • Mục đích chính là nhắm tráng việc monkey path ActiveRecord.
    • Cá nhân nhận xét rằng với thay đổi này, khá nhiều gem phải sữa chữa trong lõi để có thể cập bến Rails 5 được. (hay đơn giản là có nhiều fork hơn nhỉ? )
  • Một điểm thay đổi nhỏ nữa là ActiveRecord đã hỗ trợ hàm OR trong truy vấn (cái này mình có nói vài lần ở các bài trước)
  • Một điểm đáng chú ý ít được nhắc đến là Rails 5 cũng sẽ hỗ trợ cơ chế auto loading constant (Tự động load lại biến hằng – Nếu bạn đã từng thêm biến hằng trong initializer thì phải restart server mới có hiệu lực), nay bạn sẽ không phải lo lắng nhiều nữa.
  • Turbolink 3.0 cũng sẽ cập bến Rails 5, hấp dẫn đây, ứng dụng chúng ta sẽ nhanh và hiệu quả hơn nữa.
  • Một số lệnh Rake sẽ thay thế bằng Rails
    • Đơn giản suy nghĩ rằng rake db:migrate nay sẽ là rails db:migrate
    • Việc này được giải thích rằng để phù hợp, và hợp lý hơn đối với ứng dụng rails.

Tạm vậy đã các bạn, mình sẽ có những bài giới thiệu về tính năng, cũng như cài đặt trong Rails 5 như thế nào qua các bài toán thực tế nho nhỏ.

 

Tiến An

Admin tại RubySG.com

You may also like...