Size: a a a

$mol: Разработка

2021 December 01

ДК

Дим К in $mol: Разработка
Любая необоснованная - ошибочная наверняка.
источник

SY

Sergey Yuferev in $mol: Разработка
ну про js то она кое-как обоснована, тем что яндекс не умеет в js, а ранжировать как-то надо, деньги уплочены
источник

SY

Sergey Yuferev in $mol: Разработка
сео - это целиком серверная история
источник

SY

Sergey Yuferev in $mol: Разработка
хы, lazy loading картинок негативно влияет на lcp https://web.dev/lcp-lazy-loading/
источник

ДК

Дим К in $mol: Разработка
Давай лучше что-то более полезное обсудим. Например, есть такая проблема: интерактивное изменение атома, от которого текущий косвенно уже зависит, в процессе вычисления текущего. Так как от изменённого растекаются уведомления об устаревании, то это приходит в текущий и игнорируется. Потом текущий помечается актуальным и ветка до изменённого остаётся висеть в необновлённом состоянии.

Какие тут есть варианты:

1. Детектировать ситуацию и кидать ошибку. Но запишется ошибка, а ветка останется необновлённой. Зато программист увидит, что где-то накосячил. Сейчас так в $mol_atom2.
2. Запретить любые проталкивания в процессе затягивания. Тогда программист будет вынужден шедулить любые пуши на следующий микротаск. Уже нельзя будет делать такие выкрутасы: сюда записать, там дёрнуть и получить значение с учётом внесённого изменения.
3. Как-то сделать так, чтобы даже после завершения текущего атома, он и ветка от него до корня оставалась в неактуальном состоянии, если пуш вызвал её устаревание в процессе вычисления. Тогда она автоматически обновится в следующем фрейме.
4. Откладывать все нотификации о пушах до следующего микротаска. В принципе эквивалентно (2), но автоматизированное. И при прямом обращении в изменённому атому будет уже актуальное состояние. То есть система временно впадает в неконсистентное состояние.
источник

ДК

Дим К in $mol: Разработка
источник

SY

Sergey Yuferev in $mol: Разработка
лучше код
источник

ДК

Дим К in $mol: Разработка
источник

ДК

Дим К in $mol: Разработка
Этот тест, кстати, сейчас, проходит так как this.count( count + 1 ) теперь вызывает подписку на count. Вот думаю теперь хорошо это или плохо.
источник

SY

Sergey Yuferev in $mol: Разработка
вроде логично
источник

SY

Sergey Yuferev in $mol: Разработка
а, не, ты ж пушишь в count, откуда подписка?
источник

SY

Sergey Yuferev in $mol: Разработка
подписка только на count2 должна быть
источник

SY

Sergey Yuferev in $mol: Разработка
если ты про res
источник

ДК

Дим К in $mol: Разработка
Отсюда.
источник

a

artalar in $mol: Разработка
А какие есть декораторы для полей класса / атома и какие из них самые часто используемые? Я помню mem для мемоизации, ещё что-то?
источник

SY

Sergey Yuferev in $mol: Разработка
mem_key еще, для реактивных мап
источник

SY

Sergey Yuferev in $mol: Разработка
а как сделать тоже самое, но не подписываться на count?
источник

ДК

Дим К in $mol: Разработка
Ну и $mol_fiber.method ещё для экшенов.
источник

ДК

Дим К in $mol: Разработка
Завернуть в файбер. Тогда при отписке от этого файбера потеряется и подписка на count.
источник

ДК

Дим К in $mol: Разработка
Но я ещё автоотписку от файберов не сделал.
источник