Các nhà phát triển đặt câu hỏi về giá trị của Pledge so với các Framework Reactive Swift hiện có

BigGo Editorial Team
Các nhà phát triển đặt câu hỏi về giá trị của Pledge so với các Framework Reactive Swift hiện có

Các nhà phát triển Swift đang tranh luận về ưu điểm của Pledge, một framework lập trình reactive mới, với nhiều người đặt câu hỏi về lợi thế của nó so với các giải pháp đã được thiết lập như Combine của Apple và quản lý trạng thái tích hợp của SwiftUI. Framework này, nhằm mục đích đơn giản hóa việc quản lý trạng thái và truyền tải sự kiện trong các ứng dụng Swift, đã làm dấy lên cuộc thảo luận về bối cảnh đang phát triển của lập trình reactive trong hệ sinh thái Apple.

Phản ứng từ cộng đồng cho thấy ý kiến trái chiều

Cộng đồng nhà phát triển đã bày tỏ sự hoài nghi về giá trị của Pledge so với các giải pháp hiện có. Mặc dù Pledge cung cấp các tính năng như triển khai an toàn đa luồng, thông báo dựa trên ưu tiên và giới hạn tốc độ, một số nhà phát triển đặt câu hỏi liệu những khả năng này có đủ để biện minh cho việc áp dụng một framework mới khi đã có những giải pháp mạnh mẽ tồn tại.

Điều này có vẻ giống như phần chủ thể của RxSwift/Combine mà không có bất kỳ phần hữu ích nào. Ví dụ, ví dụ về mạng yêu cầu một thuộc tính rõ ràng trong khi mã tôi sẽ sử dụng cho điều gì đó như thế này là trả về một Observable trực tiếp.

Quan điểm này phản ánh mối quan ngại rộng lớn hơn rằng Pledge có thể đang tái tạo lại bánh xe mà không thêm lợi ích đáng kể so với các framework đã được thiết lập. Một số nhà phát triển chỉ ra rằng bản thân Apple dường như đang dần xa rời các mô hình lập trình reactive chức năng truyền thống (FRP) với framework Observable dựa trên macro mới hơn, cho thấy rằng các phương pháp đơn giản hơn có thể đang được ưa chuộng.

Khả năng tương thích nền tảng có thể là điểm khác biệt

Một lợi thế tiềm năng được nhấn mạnh trong cuộc thảo luận là khả năng tương thích của Pledge với các môi trường mà framework Combine của Apple không có sẵn. Một người bình luận lưu ý rằng Pledge có thể có giá trị cho Swift trên Linux, nơi Combine không được hỗ trợ chính thức. Tuy nhiên, những người khác nhanh chóng chỉ ra các giải pháp thay thế hiện có như OpenCombine và CombineX đã giải quyết khoảng trống này.

Người tạo ra framework đã làm rõ rằng Pledge chủ yếu nhắm đến phát triển UIKit, nơi quản lý trạng thái reactive không được tích hợp sẵn, không giống như cách tiếp cận tích hợp của SwiftUI. Vị trí này cho thấy Pledge nhằm phục vụ các nhà phát triển làm việc với các framework UI cũ hơn hoặc những người không thể chuyển đổi sang SwiftUI vì nhiều lý do khác nhau.

Các tính năng chính của Pledge

  • Triển khai an toàn đa luồng
  • Thông báo dựa trên mức độ ưu tiên
  • Hàng đợi phân phối tùy chỉnh
  • Cập nhật hàng loạt
  • Giới hạn tốc độ (throttling và debouncing)
  • Các toán tử chức năng (map, filter, v.v.)
  • Quản lý trạng thái toàn cục

Các Framework phản ứng thay thế được đề cập

  • Combine của Apple
  • RxSwift
  • OpenCombine
  • CombineX
  • Property wrapper @Published của SwiftUI
  • Framework Observable mới dựa trên macro của Apple

Lo ngại về độ phức tạp trong lập trình Reactive

Một số bình luận đề cập đến những lo ngại rộng lớn hơn về các phương pháp lập trình reactive trong Swift. Một nhà phát triển đã đề cập đến việc bị PTSD từ các codebase quá phức tạp được xây dựng với lập trình reactive chức năng, cụ thể đề cập đến cách tiếp cận MVVM của Kickstarter. Điều này làm nổi bật một căng thẳng đang diễn ra trong cộng đồng Swift giữa các mô hình reactive mạnh mẽ nhưng có khả năng phức tạp và các phương pháp đơn giản, trực tiếp hơn.

Cuộc thảo luận phản ánh một hệ sinh thái đang trưởng thành, nơi các nhà phát triển trở nên kỹ lưỡng hơn về việc thêm các phụ thuộc mới, đặc biệt khi chúng chồng chéo đáng kể với các giải pháp hiện có. Khi Swift tiếp tục phát triển, với việc Apple giới thiệu các mô hình mới như framework Observable dựa trên macro, cộng đồng dường như đang tìm kiếm sự cân bằng giữa tính phản ứng và sự đơn giản.

Điều thú vị là có một số nhầm lẫn trong cuộc thảo luận, với một người bình luận rõ ràng nhầm lẫn Pledge là một framework xác thực thay vì một giải pháp lập trình reactive, làm nổi bật những thách thức trong việc truyền đạt rõ ràng mục đích của một framework mới trong một hệ sinh thái đông đúc.

Tham khảo: Pledge