Summary
View original tweet →API Dẫn Dắt Bởi Frontend: Một Cú Lật Bàn Trong Thiết Kế API
Mới đây trên Twitter, Brotzky (@brotzky_) đã châm ngòi cho một cuộc tranh luận sôi nổi về triết lý thiết kế API, khi anh chàng này khẳng định rằng frontend mới là người "cầm trịch" API, chứ không phải backend. Nghe có vẻ hơi ngược đời nhỉ? Nhưng mà cái quan điểm này đang ngày càng được nhiều anh em dev đồng tình, vì nó giúp cải thiện trải nghiệm người dùng và làm cho quá trình phát triển phần mềm trơn tru hơn.
Mở đầu thread, Brotzky quăng ngay một phát "hot take" cực gắt: "Another hot take: Your frontend should dictate your API not the backend. If you backend engineers are defining your API response data you're gonna have a bad time." (Tạm dịch: "Frontend nên là người quyết định API, không phải backend. Nếu mấy ông backend tự định nghĩa API response thì xác định là toang đấy.") Nghe xong mà thấy thấm, vì nó đúng với triết lý thiết kế lấy người dùng làm trung tâm. API mà được "may đo" theo nhu cầu của frontend thì đảm bảo dễ xài, dễ hiểu, mà người dùng cũng khoái hơn.
Trong thread, Brotzky còn nhấn mạnh rằng nếu một người làm cả frontend lẫn backend thì mọi thứ sẽ mượt mà hơn hẳn. Ý tưởng này khá giống với mô hình Backend for Frontend (BFF), nơi backend được thiết kế riêng để phục vụ một frontend cụ thể. Cách này không chỉ tối ưu hóa dữ liệu mà còn giúp app chạy nhanh hơn, mượt hơn. Đúng kiểu "đúng người, đúng việc", vừa tiết kiệm công sức vừa tạo ra một kiến trúc ứng dụng gọn gàng, hợp lý.
Khi được @joelcolucci bình luận, Brotzky đáp lại: "Even better when it's the same person building it end to end. Cleans up a lot of this." (Tạm dịch: "Còn ngon hơn nữa nếu một người làm từ A đến Z. Mọi thứ gọn gàng hơn hẳn.") Nghe mà thấy hợp lý ghê, vì khi một người hiểu cả frontend lẫn backend thì hai bên sẽ phối hợp nhịp nhàng hơn, đỡ cãi nhau, đỡ mất thời gian.
Rồi đến lượt @nooriefyi thêm mắm thêm muối: "the biggest flex is if they're the same 😎." (Tạm dịch: "Đỉnh nhất là khi một người cân cả hai 😎.") Câu này đúng kiểu "cà khịa" nhẹ nhưng mà thật, vì dev nào mà làm được cả frontend lẫn backend thì đúng là "flex" thật sự. Hiểu sâu cả hai bên thì API làm ra vừa xịn vừa dễ xài, đúng chuẩn "người trong nghề".
Brotzky cũng không quên nhắc đến mấy cái phức tạp trong thiết kế API, đặc biệt là GraphQL. Anh chàng thẳng thừng: "Yes, but graphql sucked," khi trả lời @Fourteia. (Tạm dịch: "Ừ, nhưng mà graphql chán lắm.") Câu này chắc chắn sẽ gây tranh cãi, vì GraphQL thì linh hoạt thật, nhưng cũng lắm rắc rối, không phải app nào cũng hợp. Trong khi đó, REST API thì đơn giản hơn, nhất là khi được thiết kế theo nhu cầu của frontend.
Thread tiếp tục với @shivkanthb, người khen ngợi việc có một backend dành riêng cho frontend, gọi người làm việc này là "a saint" (tạm dịch: "thánh sống"). Nghe mà thấy đúng, vì mô hình BFF đang ngày càng được coi là best practice trong thiết kế API hiện đại. Backend mà phục vụ đúng nhu cầu của frontend thì công việc của cả team sẽ nhẹ nhàng hơn nhiều.
Cuối cùng, @jordienr hỏi một câu khá cơ bản: "what's BFF?" (Tạm dịch: "BFF là gì?"). Câu hỏi này cho thấy vẫn còn nhiều anh em dev chưa biết đến mấy mô hình thiết kế API mới. Thế nên, việc chia sẻ kiến thức và cập nhật xu hướng là cực kỳ quan trọng để cả cộng đồng cùng tiến bộ.
Tóm lại, thread của Brotzky là một lời nhắc nhở đáng giá về tầm quan trọng của việc thiết kế API dựa trên nhu cầu của frontend. Khi ưu tiên người dùng và tạo điều kiện để frontend và backend phối hợp ăn ý, chúng ta có thể tạo ra những API không chỉ hoạt động tốt mà còn dễ dùng, thân thiện. Trong thế giới phát triển phần mềm ngày càng phức tạp, việc áp dụng cách tiếp cận lấy người dùng làm trung tâm sẽ là chìa khóa để xây dựng những ứng dụng linh hoạt, dễ mở rộng và thành công trong việc đáp ứng nhu cầu của người dùng hiện đại.