Relay framework của Facebook đơn giản hóa API
- Ngoc Huynh
Theo tuyên bố của Facebook, Relay – một framework chuyên dành cho việc tạo ra các ứng dụng với lượng data lớn – cũng đã được viết lại để có thể sử dụng hơn.
Relay cùng với React, Facebook’s GraphQL query và giờ đây là Replay modern, theo cách gọi của công ty về việc rewrite lần này, nhằm đẩy những concept của họ tiến xa nữa cũng như là vượt qua những giới hạn của các sản phẩm cũ. Điều đó cũng có nghĩa một số thiết kế sẽ được đơn giản hóa nhằm tăng cường hiệu năng của Framework.
“Replay Modern giữ lại những phần tốt nhất của Replay đồng thời đơn giản hóa API, thêm tính năng mới, cải thiện hiệu năng và làm framework nhỏ gọn nhẹ hơn”-Nhóm phát triển giải thích trong buổi công bố. Để làm được điều này, nhóm đã phải đưa ra một số các thay đổi khác nhau cũng như static queries và các optimization được đánh giá là đi trước thời đại.
Đối với các developer đang sử dụng phiên bản cũ của Replay, Relay Modern cũng sẽ kèm theo tính năng tương thích API.
GraplQL đã được sử dụng trong các ứng dụng iOS và Android native của Facebook kể từ năm 2012, nhưng nhóm ứng dụng native của Facebook nhận thấy rằng nó mang đến nhiều chi phí cho việc xây dựng các truy vấn bằng cách nối chuỗi và tải các truy vấn về các kết nối chậm. Nhóm đã xác định rằng nếu các truy vấn GraphQL được biết đến về mặt thống kê, chúng có thể được xây dựng một lần và lưu trên các máy chủ của Facebook và được thay thế trong ứng dụng di động bằng một số danh biểu (identifier) nhỏ, dẫn đến giảm lưu lượng mạng và hiệu suất ứng dụng di động nhanh hơn.
Relay Modern có cách tiếp cận tương tự. Các kỹ sư cho biết: “Trình biên dịch Relay sẽ chiết xuất các đoạn mã GraphQL từ một ứng dụng, xây dựng các truy vấn cần thiết, lưu trữ chúng trên máy chủ sớm hơn và xuất (output) các tạo tác (artifact) mà Relay runtime sử dụng để lấy các truy vấn đó và xử lý kết quả của chúng trong thời gian chạy.
Ahead-of-time compilation (AOT) được sử dụng trong Relay Modern, đóng vai trò như là một garbage collection. Các kỹ sư cho biết: “Garbage collection được kích hoạt trong runtime chính và cũng được tích hợp cẩn thận trong API chung để các nhà phát triển không phải quản lý bộ nhớ cache một cách rõ ràng.
Mục đích ban đầu của việc thiết kế là để xây dựng các ứng dụng cho máy tính để bàn, máy tính bảng và các thiết bị cao cấp khác, Relay đã được sử dụng cho các ứng dụng khác nhau, từ công cụ web đến các ứng dụng di động được xây dựng với React Native. Trước đây, Relay bao gồm một thư viện, nhưng với Relay Modern, nó có ba tính năng, bao gồm một trình biên dịch, runtime, và React/Relay integration layer. Mô đun này có thể cho phép Relay sử dụng với các view library khác tại một số điểm hoặc như một thư viện độc lập. Trình biên dịch của Relay được thiết kế để thêm nhiều khả năng dựa trên type system của GraphQL.
Nguồn bài viết : http://www.infoworld.com