https://www.youtube.com/watch?v=yy8jQgmhbAU
По рекомендация из чата:
По рекомендация из чата:
помню доклад, года 2017 на cppcon, где часть браузера с OOP на DOP переписали и код стал в 450 раз быстрее
YouTube
CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
http://CppCon.org
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018
—
For decades C++ developers have built software around OOP concepts that ultimately failed us - we didn’t see…
—
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018
—
For decades C++ developers have built software around OOP concepts that ultimately failed us - we didn’t see…
artalog
Как бы я не любил перф и нативку, но бандлинг css мне нанес столько боли за все эти лета, что я очень склонен к css-in-js, у которого ну очень уже много крутых преимуществ просто из коробки. Но что с перфом делать? Вы наверняка слышали что SC и так быстрый.…
Видимо, время пришло.
GitHub
GitHub - hudochenkov/postcss-styled-syntax: PostCSS syntax for CSS-in-JS like styled-components
PostCSS syntax for CSS-in-JS like styled-components - hudochenkov/postcss-styled-syntax
😢3👍2🔥2💩2
artalog
Video
За час сделали поддержку условного рендеринга для act!
Посмотреть можно тут. Принцип act-jsx: рендер один раз (мемоизировать ничего не надо), в значения прокидываем акты (обсерваблы) и происходит очень точечная автоподписка на все свойства. Все очень ленивое и быстрое, но стейт нужно хранить вне компонентов. К счастью с act с этим проблем нет, смотрите пример, в общем 🙂
P.S. этот же пример на реакте занимает в 2 раза больше кода и в десятки раз больше памяти и бандлсайза. act + act-jsx всего 700 байт.
Посмотреть можно тут. Принцип act-jsx: рендер один раз (мемоизировать ничего не надо), в значения прокидываем акты (обсерваблы) и происходит очень точечная автоподписка на все свойства. Все очень ленивое и быстрое, но стейт нужно хранить вне компонентов. К счастью с act с этим проблем нет, смотрите пример, в общем 🙂
P.S. этот же пример на реакте занимает в 2 раза больше кода и в десятки раз больше памяти и бандлсайза. act + act-jsx всего 700 байт.
GitHub
GitHub - artalar/act: Act is the most efficient reactive state library in both: speed, size, correctness.
Act is the most efficient reactive state library in both: speed, size, correctness. - artalar/act
🔥17👍2
artalog
За час сделали поддержку условного рендеринга для act! Посмотреть можно тут. Принцип act-jsx: рендер один раз (мемоизировать ничего не надо), в значения прокидываем акты (обсерваблы) и происходит очень точечная автоподписка на все свойства. Все очень ленивое…
GitHub
Add types for act-jsx · Issue #2 · artalar/act
Follow this repl you could see errors for using acts as properties. We need to allow for all native element properties the both types of values: primitives and the save ActValue. It could be done b...
👍6
Новостей много, но не успеваю их расписать на посты :)
Вот вам первая демка
Этой ночью запаблишил альфа версию, там ещё могут быть баги. Фичи кмк наивкуснейшие:
- апи специально задизайнено для наилучшего решения всех простых и сложных случаев: максимальный вывод типов и возможность легко работать с динамически добавляемыми полями
- фреймворк агностик, более того, используются стандартные биндинги из пакета npm-react, те не нужен еще пакет биндингов для формы, как у tanstack распространено
- построен поверх
- естественно, работает на
- весит всего 3кб
- по скорости инициализации как react-hook-form (мб еще ускорю), ререндеров вообще нет даже при срабатывании логики зависимых полей
Это лишь сухой список фич. Попозже понаделаю примеров и покажу как рвать в хлам другие библиотеки.
Вот вам первая демка
@reatom/form-web: https://codesandbox.io/s/reatom-form-web-tefn82?file=/src/App.tsxЭтой ночью запаблишил альфа версию, там ещё могут быть баги. Фичи кмк наивкуснейшие:
- апи специально задизайнено для наилучшего решения всех простых и сложных случаев: максимальный вывод типов и возможность легко работать с динамически добавляемыми полями
- фреймворк агностик, более того, используются стандартные биндинги из пакета npm-react, те не нужен еще пакет биндингов для формы, как у tanstack распространено
- построен поверх
@reatom/form - абстрактной либы для фабрикации филдов, включающей в себя менеджемент фокуса и валидации. Достаточно просто можно писать свои филды (актуально для react-native, сложных автокомплитов, дарг&дропов и вообще чего угодно)- естественно, работает на
@reatom/core, что дает кучу слажанных фич: зависимые поля, динамические филды, лайфсайкл хуки и куча оптимизаций производительности- весит всего 3кб
- по скорости инициализации как react-hook-form (мб еще ускорю), ререндеров вообще нет даже при срабатывании логики зависимых полей
Это лишь сухой список фич. Попозже понаделаю примеров и покажу как рвать в хлам другие библиотеки.
🔥19
Давайте минут через 10 войсом расскажу о дерти-чекинге внутри реатома
🔥2🆒1
Вот вам маленькая задачка.
У вас нет ссылки на эту только что созданную и немедленно вызванную функцию, она и ее содержимое вам никак не доступны. Убьет ли ее сборщик мусора? если да, то когда? Если нет, то почему?
Ответ:вопрос вас намеренно запутывает. Принцип работ GC прост - чиститься все на что нет ссылки во внешнем мире. Внешний мир - не только вьюшка и ваш код, это любое IO. В данном случае ссылка на функцию всегда доступна через замыкание создаваемого для авейта колбека, который хранится в очереди таймаутов.
У вас нет ссылки на эту только что созданную и немедленно вызванную функцию, она и ее содержимое вам никак не доступны. Убьет ли ее сборщик мусора? если да, то когда? Если нет, то почему?
Ответ:
👍12🤯4❤2
Что быстрее: JSDOM в Jest или puppeteer? 🙃
Мне тут в чате напомнили, что я год назад это тестировал и пупетир оказался быстрее! Конечно, там достаточно странные тесты и подозрительно медленные результаты на джесте, скорее всего можно что-то как-то оптимизировать, но… Зачем, если можно писать в нативной среде без проблем с перфом?
Если у вас есть тоже какие-то заметки на этот счет - поделитесь, пожалуйста. В моей голове откуда-то информация о том что JSDOM медленнее обычного дома раз в 30, в среднем. Ну и, конечно, имеет пачку багов и не поддерживает кучу фич. Хедлес браузер же только стартует долго, а сами тесты должен гнать очень быстро.
P.S. https://docs.cypress.io/guides/component-testing/overview
Мне тут в чате напомнили, что я год назад это тестировал и пупетир оказался быстрее! Конечно, там достаточно странные тесты и подозрительно медленные результаты на джесте, скорее всего можно что-то как-то оптимизировать, но… Зачем, если можно писать в нативной среде без проблем с перфом?
Если у вас есть тоже какие-то заметки на этот счет - поделитесь, пожалуйста. В моей голове откуда-то информация о том что JSDOM медленнее обычного дома раз в 30, в среднем. Ну и, конечно, имеет пачку багов и не поддерживает кучу фич. Хедлес браузер же только стартует долго, а сами тесты должен гнать очень быстро.
P.S. https://docs.cypress.io/guides/component-testing/overview
Twitter
artalar
@puruvjdev I was curious too. So here my little experiment, it took 200ms in gitpod :) github.com/PuruVJ/svelte-…
artalog
Новостей много, но не успеваю их расписать на посты :) Вот вам первая демка @reatom/form-web: https://codesandbox.io/s/reatom-form-web-tefn82?file=/src/App.tsx Этой ночью запаблишил альфа версию, там ещё могут быть баги. Фичи кмк наивкуснейшие: - апи специально…
Буду сейчас править баги и пилить фичи для пакета форм