Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 Контент вільний від AI. Цей пост на 100% написаний людиною, як і все на моєму блозі. Насолоджуйтесь!

25.08.2024

Функціональні структури та Redux

Може я вчора був надто критичним до функціональних структур. Насправді їх сила точно не в одноразовій обробці величезного файлу. Бо така обробка все одно перетворює всі дані, тобто немає нагоди нічого заощадити на незмінності.

А насправді функціональні структури сяють там, де змінюються поступово та частково. З моїх задач в таке означення вписується Redux - бібліотека функціонального стану для React (та не тільки). Тут дійсно є і велика структура даних, і поступові та дуже ізольовані її зміни.

Ще кориснішою незмінність буде при застосуванні Reselect, бо там ефективність спирається саме на рівність вхідних даних за значенням, а бібліотека Immutable як раз реалізує таку рівність для власних структур. (Бо без неї треба чимало робити самотужки, я про це колись писав статтю). Тобто тут ми вже заощаджуємо на тому, що робимо менше обчислень завдяки мемоїзації.

Залишається питання — чи пришвидшить Immutable роботу застосунку з Redux? Треба буде перевірити — це вже дійсно практична ситуація. (Та колись давно я навіть працював на проєкті де був Immutable+Redux, так що це рішення не нове.)

PS: знайшов цікавий проєкт The Benchmarks Game, який порівнює більш ніж 20 мов на декількох простих прикладах. Зокрема, там OCaml та Haskell виходять на такому самому рівні як Swift чи Node.js. А, до речі, Node.js виглядає як найшвидша з популярних “високорівневих” мов.