Вхід Реєстрація
Реклама
Ваше рекламне місце
Забронюйте цей слот без конкуренції на обраний період.
Купити рекламу →
Логотип телеграм спільноти - BW Swift
Додано 06 січ 2025

BW Swift

@bwswift
Кількість підписників: 1 749
Фото: 1,710
Відео: 176
Посилання: 1,590
Опис:
Канал створений для навчання програмування на swift та розробці програм під iOS. Мета проекту - допомогти студентам пройти шлях від розробника-початківця до оплачуваного фахівця. Тут я публікую актуальні та цікаві статті щодо iOS розробки. Адмін: @bws2007
Джерело

BW Swift | З Новим Роком 🥳 Хочу поділитися бібліотекою над якою я наразі працюю і...

Логотип телеграм спільноти - BW Swift BW Swift @bwswift
1 740 Охват/переглядів 2026-01-05 18:26 Повідомлення №2308
З Новим Роком 🥳 Хочу поділитися бібліотекою над якою я наразі працюю і на яку я зараз збираю відгуки.Бібліотека приносить потужну систему контролю над сайд-ефектами (I/O, networking, concurrency, randomness) яка не прив'язує до конкретного архітектурного патерна (зазвичай системи ефектів вимагають переписати логіку на Unidirectional Data Flow або Монадні, прости господи, ланцюжки). Тут ваш код лишається лінійним та процедурним, як в туторіалах Apple 🙂Бібліотека базується на двох простих абстракціях, Effect та Effect Handler, з яких можна будувати складні програми за рахунок композиції дуже подібної на exception handling блоки.Одна з головних killer фічей бібліотеки - це можливість тестування складної поведінки *без моків*! Спеціальний Test Handler може перехоплювати контроль над виконанням програми яка тестується та рухатись покроково, від одного видимого ефекту та стану до іншого, та передавати тестові данні в програму на ходу, коли вона іх потребує щоб просунутись далі. Таке тестування дзеркально відображує як би видиму поведінку програми тестувала людина вручну взаємодіючи з програмою.Також бібліотека приносить детерміністичне тестування Swift Concurrency за рахунок того, що примітиви асинхронності такі як Task та AsyncStream теж змодельовані як ефекти які можна перехоплювати і контролювати. Подивіться приклади з детерміністичним плануванням неструктурованих Taskів. Якщо коротко, то одна з цілей цього проєкту - це порухати Swift товариство від unidirectional архітектур чи DI-фреймворків та тестуванням зі складними моками, в бік лінійного процедурного коду, але надати можливість писати модульні та складні програми "ванільним" процедурним кодом який має такі ж, або навіть кращі можливості для ізоляції та тестування ефектів як в TCA та подібних підходах з нелінійними струкрурами коду.Якщо є відгуки, ідеї, чи запитання, пищіть тут або в дискусіях на GitHub. Ну і від ⭐️я теж не відмовлюся 🙂https://github.com/Alex-Ozun/swift-effect