Facebook vừa mới viết lại hoàn toàn React, một JavaScript library nổi tiếng chuyên về user interface. Mặc dù trước đây, công ty luôn tránh né nói về React Fiber, tên của project, thế nhưng thật ra nó vẫn đang được phát triển âm thầm. Và giờ thì project đã được công bố (sau khi tin đồn về nó xuất hiện từ năm ngoái), công việc rewrite đã được lên kế hoạch ngay khi bản cập nhật 16.0 của React được tung ra. Tuy vậy, React Fiber được dùng bởi Facebook.com ngay từ hôm nay, điều đó cũng có nghĩa là họ nghĩ rằng sự thay đổi này thật sự quan trọng và sẽ giúp Facebook.com tiếp tục thời hoàng kim của mình.
Ngoài ra, một phiên bản mới của Relay sau rewrite cũng được sẽ tung ra trong thời điểm này, đây là một framework chuyên dành cho tạo ra các ứng dụng với lượng data lớn.
React Fiber
Ý tưởng đằng sau React Fiber, như công ty biết, là sử dụng những gì họ học được sau khi phát triển React nhằm biến nó thành một framework tốt hơn nhưng vẫn tương thích được với những ứng dụng chạy trên React. Theo Facebook, React Fiber sẽ là nền tảng cho tất cả các update trong tương lai cũng như là đại diện cho sự phát triển của React framework.
“Mục tiêu quan trọng nhất ở đây là làm sao để React có thể xử lí và trả lời càng nhanh càng tốt”, kĩ sư phần mềm của Face book – đồng thời mà một thành viên chủ chốt của team React – Ben Alpert nói với tôi trong buổi phỏng vấn mới đây. “Khi tạo nên React, chúng tôi luôn nghĩ làm sao để có thể giúp các developer tạo ra một app ứng dụng chất lượng cao thật nhanh”-anh nói-”Chúng tôi muốn giúp việc tạo ra những ứng dụng như vậy không chỉ dễ dàng mà chúng còn xử lí nhanh“
Cũng trong buổi công bố, Facebook cũng nhấn mạnh highlight của sự thay đổi này nằm ở tính năng gia tăng và lên schedule rendering được built-in vào React Fiber -”Chúng tôi muốn đảm bảo việc render đúng đối tượng và đúng lúc” -Alpert nhấn mạnh -”Sự xử lí nhanh là key factor”
Thế nhưng tại sao lại phải rewrite toàn bộ mọi thứ? “ Không phải là code base của React dở nhưng chúng tôi muốn tạo ra một nền móng mới để có thể chạy được tất cả mọi thứ nhóm sẽ đưa vào trong tương lai tới đây” – Alpert cho biết. Điều đó cũng có nghĩa các dòng code mới đều được viết từ con số không nhằm đảm bảo chất lượng của chúng.
Alpert cũng nhấn mạnh rằng React Fiber sẽ có tính năng tương thích ngược, tuy vậy với hàng tá các bản update lớn của React, sẽ có một số thay đổi cần thiết được đưa ra. Thế nhưng nhóm phát triển vẫn tin là nó sẽ không làm khó họ “Chúng tôi luôn có những API contract tốt thế nên luôn có thời gian cho việc chỉnh sửa”
Relay Modern
Cũng theo tuyên bố của Facebook trong hôm nay, 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 với mục tiêu tương tự là tập trung vào hiệu suất và tính năng mở rộng. 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.
Static queries bảo đảm rằng các queries phức tạp vốn không thể thay đổi bởi những điều kiện của runtime sẽ được tạo sẵn và up lên các server của Facebook. Nhờ vậy mà thay vì phải chuyển đi các queries phức tạp khắp hệ thống thì giờ tất cả các ứng dụng chỉ cần gởi string để xác định pre-set query cũng như variable cần thiết để hoàn thành chúng. Hơn nữa, các optimization mới, được cài vào React complier, sẽ tìm những cấu trúc của query nhằm tối ưu hóa chúng để giúp cho việc xử lí diễn ra nhanh hơn, thời gian đưa ra kết quả và chuyển đến người dùng cũng sẽ được rút ngắn đáng kể.
Đố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.
Facebook cho biết khi họ chuyển tab Marketplace của Facebook app chạy trên React qua React Modern, thời gian tương tác với hệ điều hành Android được cải thiện tới 900ms. Tuy nó nghe có vẻ không nhiều nhưng đối với các ứng dụng mobile, từng mili giây đều rất quan trọng bởi nó đủ để tạo ra sự khác biết cho trải nghiệm của người dùng. Kết quả, khách hàng cho biết ứng dụng xử lí nhanh lên hẳng.
Techtalk via Techcrunch