Pembangun Swift sedang membincangkan kelebihan Pledge, rangka kerja pengaturcaraan reaktif baharu, dengan ramai yang mempersoalkan kelebihannya berbanding penyelesaian sedia ada seperti Combine daripada Apple dan pengurusan keadaan terbina dalam SwiftUI. Rangka kerja ini, yang bertujuan untuk memudahkan pengurusan keadaan dan penyebaran peristiwa dalam aplikasi Swift, telah mencetuskan perbincangan tentang landskap pengaturcaraan reaktif yang berkembang dalam ekosistem Apple.
Sambutan Komuniti Menunjukkan Reaksi Bercampur
Komuniti pembangun telah menyuarakan keraguan tentang nilai Pledge berbanding penyelesaian sedia ada. Walaupun Pledge menawarkan ciri-ciri seperti pelaksanaan selamat-bebenang, pemberitahuan berasaskan keutamaan, dan pengehadan kadar, beberapa pembangun mempersoalkan sama ada keupayaan ini mewajarkan penggunaan rangka kerja baharu apabila alternatif yang mantap sudah wujud.
Ini kelihatan seperti bahagian subjek RxSwift/Combine tanpa mana-mana bahagian yang berguna. Contohnya, contoh rangkaian memerlukan harta yang jelas sedangkan kod yang saya gunakan untuk sesuatu seperti ini adalah untuk mengembalikan Observable secara langsung.
Sentimen ini mencerminkan kebimbangan yang lebih luas bahawa Pledge mungkin mencipta semula roda tanpa menambah faedah besar berbanding rangka kerja yang sudah mantap. Sesetengah pembangun menunjukkan bahawa Apple sendiri kelihatan bergerak jauh daripada corak pengaturcaraan reaktif fungsian tradisional (FRP) dengan rangka kerja Observable berasaskan makro yang lebih baharu, mencadangkan bahawa pendekatan yang lebih mudah mungkin semakin digemari.
Keserasian Platform Boleh Menjadi Pembeza
Satu kelebihan yang ditonjolkan dalam perbincangan ialah keserasian Pledge dengan persekitaran di mana rangka kerja Combine daripada Apple tidak tersedia. Seorang pengulas menyatakan bahawa Pledge boleh menjadi berharga untuk Swift di Linux, di mana Combine tidak disokong secara rasmi. Walau bagaimanapun, yang lain dengan cepat menunjukkan alternatif sedia ada seperti OpenCombine dan CombineX yang sudah menangani jurang ini.
Pencipta rangka kerja menjelaskan bahawa Pledge terutamanya mensasarkan pembangunan UIKit, di mana pengurusan keadaan reaktif tidak terbina dalam, tidak seperti pendekatan bersepadu SwiftUI. Kedudukan ini mencadangkan Pledge bertujuan untuk membantu pembangun yang bekerja dengan rangka kerja UI lama atau mereka yang tidak dapat beralih kepada SwiftUI atas pelbagai sebab.
Ciri-ciri Utama Pledge
- Pelaksanaan thread-safe
- Pemberitahuan berasaskan keutamaan
- Barisan penghantaran yang boleh disesuaikan
- Kemas kini secara kelompok
- Pengehadan kadar (throttling dan debouncing)
- Operator berfungsi (map, filter, dll.)
- Pengurusan keadaan global
Rangka Kerja Reaktif Alternatif yang Disebut
- Apple's Combine
- RxSwift
- OpenCombine
- CombineX
- Pembungkus sifat @Published SwiftUI
- Rangka kerja Observable baharu Apple berasaskan makro
Kebimbangan Tentang Kerumitan dalam Pengaturcaraan Reaktif
Beberapa komen menyentuh kebimbangan yang lebih luas tentang pendekatan pengaturcaraan reaktif dalam Swift. Seorang pembangun menyebut mengalami PTSD daripada pangkalan kod yang terlalu kompleks yang dibina dengan pengaturcaraan reaktif fungsian, khususnya merujuk kepada pendekatan MVVM Kickstarter. Ini menyoroti ketegangan berterusan dalam komuniti Swift antara corak reaktif yang berkuasa tetapi berpotensi kompleks dan pendekatan yang lebih mudah dan langsung.
Perbincangan mencerminkan ekosistem yang semakin matang di mana pembangun menjadi lebih bijak tentang menambah kebergantungan baharu, terutamanya apabila mereka bertindih secara ketara dengan penyelesaian sedia ada. Ketika Swift terus berkembang, dengan Apple memperkenalkan corak baharu seperti rangka kerja Observable berasaskan makro, komuniti kelihatan mencari keseimbangan antara reaktiviti dan kesederhanaan.
Menariknya, terdapat beberapa kekeliruan dalam perbincangan, dengan seorang pengulas nampaknya tersilap menganggap Pledge sebagai rangka kerja pengesahan dan bukannya penyelesaian pengaturcaraan reaktif, menyoroti cabaran dalam menyampaikan tujuan rangka kerja baharu dengan jelas dalam ekosistem yang sesak.
Rujukan: Pledge