Size: a a a

2020 July 27

DS

Dmitriy Shuleshov in ☄️ effector
А даже так
источник

BB

Bugs Bunny in ☄️ effector
т.е. ее результат predictable
источник

DS

Dmitriy Shuleshov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
в таком месте, которое позволит тебе доказать, что ты видишь мутацию
"Видишь мутацию" - ты подразумеваешь что мутация как то аффектит на другую часть системы?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
следующий пример

const add4 = (() => {
 let x = 0

 return add({
   get x() {
     x += 1
     return 5
   }
 })
})()
и наконец, вот первая не чистая функция в череде примеров

const add5 = (() => {
 let x = 0

 return {
   add5: add({
     get x() {
       x += 1
       return 5
     }
   }),
   getState: () => x
 }
})()
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitriy Shuleshov
"Видишь мутацию" - ты подразумеваешь что мутация как то аффектит на другую часть системы?
чтобы сломаться от непредвиденной мутации, нужно о ней сначала узнать
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
и наконец, вот первая не чистая функция в череде примеров

const add5 = (() => {
 let x = 0

 return {
   add5: add({
     get x() {
       x += 1
       return 5
     }
   }),
   getState: () => x
 }
})()
чтобы внешний код узнал о мутации x я сделал функцию getState
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
это единственное что отличает этот пример от предыдущего
источник

BB

Bugs Bunny in ☄️ effector
ну если взять за аксиому, что у нас есть всевидящий наблюдатель, который всегда знает об этом, то это будет корректно
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Bugs Bunny
ну если взять за аксиому, что у нас есть всевидящий наблюдатель, который всегда знает об этом, то это будет корректно
попрошу оставаться в рамках нашей вселенной
источник

BB

Bugs Bunny in ☄️ effector
😅
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
абсолюта не существует) чтобы код мог сломаться от мутации, ему нужно иметь доступ к мутируемой информации
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
интерпретатор (наблюдатель) не обязан быть разумным, ему достаточно иметь возможность сломаться от некорректной мутации
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
в зависимости от положения кода, ему доступны разные замыкания, с разной информацией. чем больше информации использует код, тем проще его сломать. при усердной примитивизации можно свести это к принципу «юзай только аргументы функции» но это просто не поможет
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
и никогда не помогало. иначе в наших программах не было бы проблем
источник

BB

Bugs Bunny in ☄️ effector
эту концепцию не запихнешь во все подряд места. к сожалению или к счастью
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
почему вообще срабатывает геттер в примерах выше? потому что исходная функция исходит из информации о том, что у переданных ей аргументов есть поле x и если его прочитать то ничего не произойдёт
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Bugs Bunny
эту концепцию не запихнешь во все подряд места. к сожалению или к счастью
поэтому код и наполнен багами, потому что с шутками прибаутками все учат друг друга бесполезному взгляду на чистоту
источник

n

null in ☄️ effector
Всем привет! Заметил, что useList возвращает JSX.Element, хотя по сути он возвращает JSX.Element[]. Это ошибка в тайпингах?
источник

BB

Bugs Bunny in ☄️ effector
ну определения так или иначе помогают понять, как это работает. начнешь копать глубже — есть ньансы. так с любой концепцией в принципе
источник

BB

Bugs Bunny in ☄️ effector
и нужно иметь отправочный ориентир в любом случае
источник