Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Умные nano stores, или как мы сделали веб-разра...

Умные nano stores, или как мы сделали веб-разработку проще

Nina Torgunakova

August 31, 2023
Tweet

More Decks by Nina Torgunakova

Other Decks in Programming

Transcript

  1. Храните знания в данных так, чтобы логика программы была тупой

    и надёжной. 10 Эрик Рэймонд, “Правило представления” @ninoid_
  2. 13

  3. Мы тоже можем изменить нашу модель и хранить знания в

    данных, а не в компонентах фреймворка: 15 @ninoid_
  4. 23 Применяя к стейт-менеджменту: Компонент Компонент Компонент Подписчик 1 Подписчик

    2 Подписчик 3 @ninoid_ Небольшой стор Небольшой стор Небольшой стор
  5. 24 @ninoid_ Небольшой стор Изменение состояния Подписанные компоненты Получение нового

    значения Небольшой стор Изменение состояния Subscribed components Получение нового значения Только подписанные компоненты получат изменения из нужных сторов:
  6. Совершенство достигается не тогда когда уже ничего нельзя добавить, а

    тогда, когда ничего нельзя убрать. 27 Антуан де Сент-Экзюпери @ninoid_
  7. Всё должно быть изложено настолько просто, насколько это возможно, но

    не проще. 30 (этим человеком был Альберт Эйнштейн) @ninoid_
  8. Нам нужно учитывать ряд челленджей. - Синхронизация изменений между вкладками

    браузера - Добавление навигации в SPA-приложение - Автоматический перевод контента на другой язык - Автоматическое разрешение конфликтов с помощью CRDT …и многое другое… 32 @ninoid_
  9. 3. Обеспечить минимализм и простоту 37 Стор Однострочные команды: •

    Создание стора • Получить значение • Установить значение Получить значение Установить значение @ninoid_
  10. 4. Учитывать разные проблемы разработчиков. 38 Навигация в SPA-приложении Умный

    фетчинг данных Перевод на другой язык CRDT Синхронизация @ninoid_ Ленивая загрузка
  11. Так, и что же дальше? 1. Попробуйте минималистичный стейт- менеджер

    в своём проекте. 2. Почувствуйте силу простоты! 41 @ninoid_ github.com/nanostores