12/08/2018, 14:54

Rails 5.0: Action Cable, API mode và nhiều hơn thế

Sau sáu tháng đánh bóng, bốn bản betas, và hai ứng cử viên phát hành, Rails 5.0 cuối cùng đã hoàn tất! Nó đã lấy hàng trăm đóng góp và hàng ngàn cam kết để có được, nhưng những gì một điểm đến: Rails 5,0 là không nghi ngờ gì là tốt nhất, hoàn thiện nhất phiên bản của Rails chưa. Thật không thể tin ...

Sau sáu tháng đánh bóng, bốn bản betas, và hai ứng cử viên phát hành, Rails 5.0 cuối cùng đã hoàn tất! Nó đã lấy hàng trăm đóng góp và hàng ngàn cam kết để có được, nhưng những gì một điểm đến: Rails 5,0 là không nghi ngờ gì là tốt nhất, hoàn thiện nhất phiên bản của Rails chưa. Thật không thể tin được rằng cộng đồng này vẫn còn rất mạnh sau một thời gian dài. Nhờ những người đã giúp chúng tôi ở đây.

Có 2 tính năng nổi bật của Rails 5.0 như sau: +Action Cable Action Cable là một khuôn khổ hoàn toàn mới để xử lý WebSockets trong Rails. Đó là một giải pháp tích hợp hoàn chỉnh để quản lý các kết nối, một lớp kênh để xử lý phía máy chủ, và một lớp JavaScript để tương tác phía máy khách. Thật dễ dàng sử dụng và giúp thiết kế các tính năng trực tuyến như trò chuyện, thông báo, và sự hiện diện dễ dàng hơn nhiều. Đó là những gì làm cho tất cả các tính năng của Basecamp 3, nếu bạn muốn xem nó trong hành động.

Điều thực sự đáng yêu đối với Cáp Hành động là bạn có quyền truy cập toàn bộ mô hình miền Active Record và PORO trong công việc WebSockets của bạn. Chúng tôi thậm chí còn thêm một hệ thống ActionController :: Renderer mới hoàn toàn làm cho nó trở nên tầm thường khi render các khuôn mẫu của bạn bên ngoài các bộ điều khiển, khi bạn muốn sử dụng lại mẫu phía máy chủ cho các phản hồi WebSocket.

Trong phát triển, Action Cable đang chạy trong quá trình với phần còn lại của ứng dụng. Để thực hiện việc này, chúng tôi đã chuyển máy chủ phát triển mặc định từ Webrick sang Puma. Trong sản xuất, bạn cũng có thể muốn chạy các máy chủ Action Cable trong các quy trình của riêng mình. Đó là cách chúng tôi chạy nó tại Basecamp theo quy mô. +API mode Rails không chỉ là một lựa chọn tuyệt vời khi bạn muốn xây dựng một ứng dụng đầy đủ stack mà sử dụng render-side của máy chủ HTML, nhưng cũng là một người bạn đồng hành tuyệt vời cho các vụ mới của các ứng dụng JavaScript phía máy khách hoặc các ứng dụng gốc mà chỉ cần các phụ trợ để Nói JSON. Chúng tôi đã thực hiện điều này rõ ràng hơn bây giờ với chế độ -api mới. Nếu bạn tạo một ứng dụng Rails mới bằng cách sử dụng đường ray phụ trợ mới, bạn sẽ nhận được bộ khung và cấu hình giảm xuống giả định bạn sẽ làm việc với JSON chứ không phải HTML.

Vẫn còn nhiều việc phải làm đối với tính năng này, nhưng chúng tôi đang có một khởi đầu tuyệt vời. Theo mặc định, chế độ API chỉ dựa vào các lệnh #to_json trên các lớp mẫu. Nhưng bạn có thể sử dụng Jbuilder, Active Model Serializers, hoặc xem dự án JSONAPI :: Resources mới cho một giải pháp tiên tiến hơn. +Các điểm nổi bật khác Một lệnh Rails thay vì thiết lập split-brain giữa rake và ray, vì vậy bây giờ là bin/rails db:migrate thay vì bin/rake db:migrate. Người chạy thử nghiệm hiện báo cáo lỗi trực tuyến, do đó bạn không phải hoàn thành bộ để xem có vấn đề gì xảy ra. ApplicationRecord đã được sinh ra như là một lớp cha mẹ mặc định của tất cả các mô hình tạo ra bởi các máy phát điện. ActiveRecord :: Relation # in_batches làm cho việc xử lý hồ sơ theo từng đợt dễ dàng hơn nhiều để giảm sự quá tải của bộ nhớ. Post.where ('id = 1') hoặc (Post.where ('id = 2')) cho bạn chính xác những gì bạn nghĩ! Không còn tình cờ ngưng Active Record vì callbacks cuối cùng là sai. Bây giờ bạn ném (: hủy bỏ) một cách rõ ràng! Bạn nên thực sự kiểm tra CHANGELOGs, mặc dù. Có rất nhiều thứ mới và tốt có sẵn trong tất cả các khuôn khổ: Action Mailer CHANGELOG Action Pack CHANGELOG Action View CHANGELOG Active Model CHANGELOG Active Record CHANGELOG Active Support CHANGELOG Active Job CHANGELOG Railties CHANGELOG Rails 5.0 cũng đi kèm với Turbolinks 5 - một trong những phiên bản iOS và Android wrapper bản xứ! (Nguồn: http://weblog.rubyonrails.org)

0