@react_js

Страница 1721 из 5115
Дмитрий
16.07.2017
05:11:15
ну ежели бы ты фигачил столько хайлоад фронтенда сколько мордокниговцы, ты бы сам давно уже файбер сочинил :)
Я был уже на пол пути. Бесконечный call stack у меня уже был, потому что очевидно насущная идея, и команда реакта размышляла в том же направлении

Я просто даже не ожидал такого трюка — я искал практический функциональный стек в жс, никогда бы не подумал что нужно было смотреть в эту сторону вместо всяких gcanti) Тут будто под носом летающая тарелка приземлилась

Google
Дмитрий
16.07.2017
05:20:41
Чтобы не вылетать со stack overflow У тебя есть алгоритм, который описывается с помощью длинного ряда функций — purescript, ocaml реализации, просто фп в жс и так далее. Если ты используешь стек, то играешь с огнём — рано или поздно ты обязательно вылетишь, плюс он потенциально выполняется бесконечно

Дмитрий
16.07.2017
05:22:41
Если у тебя стек в виде простого плоского массива, то можно аккуратно выполнять его, останавливаясь в любом месте, можно оптимизировать его на лету, обобщать, менять, координировать, параллелизировать и так далее

Vladimir
16.07.2017
05:22:54
Это понятно

Дмитрий
16.07.2017
05:23:44
Ну там же совсем грустно должно быть чтобы SO вылетел
Тут действует закон больших чисел, если ты рассуждаешь о такой базовой вещи, то вероятность вылета рано или поздно — равна единице

Просто нельзя полагать, нужно располагать

Тл;тр — они делают оптимизированный стек из функциональных языков

Fiber — это абстрактная единица вычислений, вызов функции в терминах жс

Vladimir
16.07.2017
05:25:59
Ну те у них по сути будет свой call-stack?

Дмитрий
16.07.2017
05:29:30
Да, но это само по себе довольно тривиально, минимальная имплементация у меня — строк сто. У них он просто уже прокачан на приоритизацию, параллельные вычисления и всё остальное, то есть является прикладной, готовой к принесению профита штукой

Vladimir
16.07.2017
05:33:37
Интересно, как на это отреагирует деоптимищатор v8?

Дмитрий
16.07.2017
05:33:52
Очень рад

Vladimir
16.07.2017
05:38:10
Хотя ему вообще должно же быть пофиг, он конкретно за вызовами следит, а не за стеком

Google
Дмитрий
16.07.2017
05:38:11
const jsStack = f(f(f(f(f(f(d))))))) Все функции выполняются разом, требуют всего внимания V8, потенциально готовы упасть function fiber(stack, d) { let result = d for( const fn of stack ) { result = fn(result) } return result } Плоский массив выполнения, в любой момент можно прерваться, остановиться, если ясно что данные больше не нужны и так далее

Vladimir
16.07.2017
05:39:45
Не, я говорил конкретно про ту часть, которая занимается реалтайм (де)оптимизацией

Дмитрий
16.07.2017
05:40:27
А, ну ему наверное всё равно, да

Я до этого места ещё не дошёл ?

Да, но это само по себе довольно тривиально, минимальная имплементация у меня — строк сто. У них он просто уже прокачан на приоритизацию, параллельные вычисления и всё остальное, то есть является прикладной, готовой к принесению профита штукой
Вот кстати примитивный ручной стек https://github.com/zerobias/telegram-mtproto/blob/feature/mtproto3/packages/telegram-mtproto/src/util/profunctor/trampoline.js Я проверял на профункторе с сорока тысячами вложенных вызовов — вывозит спокойно) Но с файбером это несопоставимо как детский самосвал в песочнице и размеры вселенной ?

Влад
16.07.2017
06:32:00
Кто то может объяснить что за типы и flow в чате обсуждали?

Влад
16.07.2017
06:37:00
Ааа, понял, у Стефанова читал об этом

Я уже с утра подумал типизацию в es2018 вводят

Дмитрий
16.07.2017
06:38:13


Max
16.07.2017
06:39:58
++

Shane
16.07.2017
06:57:33
Привет. Подключил notyjs 3.1 не работают уведомления. Точнее стили не импортит. Кто сталкивался в чем проблема

Никита
16.07.2017
08:18:17
Народ, как описать immutable state через flow?

допустим `const initialState = Map({ options: Map({test:true, test2:1, test3:'string'}), items:List([1,2,3])}`

как это будет выглдеть с flow?

Ivan
16.07.2017
08:37:22
поясните за ТайпСкрипт

Dreamerinnoise
16.07.2017
08:37:53
Что интересует?

Ivan
16.07.2017
08:43:14
Что интересует?
в чем плюсы

Dreamerinnoise
16.07.2017
08:43:32
в чем плюсы
Типизация. Очевидные.

Ivan
16.07.2017
08:44:08
ну это я понял

Google
Vladimir
16.07.2017
08:44:28
этого недостаточно?

Ivan
16.07.2017
08:46:11
да я вот понять не могу

Dreamerinnoise
16.07.2017
08:47:54
Ну тогда он тебе не нужен

Vladimir
16.07.2017
08:48:11
?

Дмитрий
16.07.2017
08:49:04
Ну тут в принципе подписываюсь ? Если надо объяснять, то не надо объяснять

Как понять, что вам нужна типизация: 1. Начните новый проект на жс 2. Подождите, пока не станет мучительно больно

Влад
16.07.2017
08:51:18
Разве типизация не усложняет разработку?

Дмитрий
16.07.2017
08:51:48
Ну кстати резонный вопрос

Mike
16.07.2017
08:51:52
Разве типизация не усложняет разработку?
Поддерживаю, писать больше, в продакшене все равно типов нет, только лишний оверхэд

Anton
16.07.2017
08:51:58
Разве типизация не усложняет разработку?
Разработку - да. Поддержку - нет.

Дмитрий
16.07.2017
08:52:03
Усложняет

Dreamerinnoise
16.07.2017
08:52:18
Усложняет и облегчает

Дмитрий
16.07.2017
08:52:20
Просто позволяет нормально писать проекты больше определенного размера

Anton
16.07.2017
08:52:32
Пффф

Mike
16.07.2017
08:52:33
Да и вообще типы от лукавого, не дают строки с числами складывать

Дмитрий
16.07.2017
08:52:47
Как правило, это размер начинается с приложения чуть больше ту ду листа

Anton
16.07.2017
08:52:51
JsDoc и тесты решают большую часть проблем.

Google
Дмитрий
16.07.2017
08:53:08
Я тоже так говорил, лол

Добавь "пока что")

Anton
16.07.2017
08:53:25
Большие проекты это сколько?

Дмитрий
16.07.2017
08:53:31
Как правило, это размер начинается с приложения чуть больше ту ду листа

Vladimir
16.07.2017
08:53:36
Я тоже так говорил, лол
и telegram-mtproto ж на ts'е?

Nikita
16.07.2017
08:53:50
@zachot type ItemsState = { +items: Object[], }

Admin
ERROR: S client not available

Влад
16.07.2017
08:54:04
У меня вот ошибок с типами не бывает. Очень много ошибок на состоянии завязано

Nikita
16.07.2017
08:54:10
+ говорит flow, что поле иммутабельно

Влад
16.07.2017
08:54:13
Это конкретно в реакте

Vladimir
16.07.2017
08:54:18
насколько я понял, он на crypto же работает?

Дмитрий
16.07.2017
08:54:39
и telegram-mtproto ж на ts'е?
flow. Так как мне нужно было рефакторить код с довольно сложной предметной частью, то сообразительность типизации для меня была не бонусной, а жизненно необходимой вещью

насколько я понял, он на crypto же работает?
Не, в crypto нет AES IGE (и нигде нет, лол), там свой модуль-форк

Anton
16.07.2017
08:55:49
Я когда 10 лет назад переходил с нормальных языков на lua, а потом, прости боже, php тоже понять не мог как жить дальше. Даже подсветки синтаксиса не было нормальной. Сейчас строгая типизация - как костыль.

Дмитрий
16.07.2017
08:56:42
Вот в этом вся и разница. flow, ts — это скорее просто статическая

У меня например далеко не 100% flow coverage

Nikita
16.07.2017
09:00:51
Подскажите за ant design: кто нибудь mobile-first делал проекты? как вообще комбинировать ant.mobile и обычный ant (плавный переход на десктопную версию)?

Vladimir
16.07.2017
09:01:43
Не, в crypto нет AES IGE (и нигде нет, лол), там свой модуль-форк
Я просто как-то пытался его во fuse засунуть, а в итоге получил болт

Дмитрий
16.07.2017
09:05:10
Я просто как-то пытался его во fuse засунуть, а в итоге получил болт
Ааа, блин, ну это может быть ? Я пробую сделать универсальный пайплайн, но пока ещё ряд проблем есть, можешь issue открыть, чтобы я не забыл) Загон в универсальности — как либа должна распространять и инклудить воркеры, которые всегда на странице идут отдельным файлом?? Пока что решение — импортить worker-loader и делать require соответствующего формата, соответственно получается что webpack only

Я если честно про другие бандлеры даже как-то не подумал

Google
Anton
16.07.2017
09:10:15
Так файл для воркера можно "руками" в браузере генерить через BlobUrl

Дмитрий
16.07.2017
09:11:20
Знаю, но не уверен, что это хорошее решение)

Тем более, что туда половина проекта инклудится, по 300 кб каждый (пока что)

Дмитрий
16.07.2017
09:20:21
Да

Там есть отдельное понятие — deadline

В рамки которого нужно укладываться, чтобы не мешать другому коду)

Alex
16.07.2017
09:23:33
Скорее бы. А то у меня получилось только 40 фпс выжимать с форком gsap на анимации для всей странице через width.

Anton
16.07.2017
09:24:30
А через Транзишен сколько?

Alex
16.07.2017
09:25:41
А через Транзишен сколько?
В любом случае нужен независимый от реакте рендер.

Дмитрий
16.07.2017
09:26:00
Ну ты уже сейчас можешь юзать 16 реакт

В любом случае нужен независимый от реакте рендер.
Тавтология) В нём рендер и так независим

Cenator
16.07.2017
09:27:18
Ну ты уже сейчас можешь юзать 16 реакт
Дай линк на тутор плс, я гуглил, но там не рабочие

Alex
16.07.2017
09:28:14
Тавтология) В нём рендер и так независим
Ну в смысле, вначале рендер реакта, а потом анимация элементов. Если это одновременно (в короткие промежутки) - просадки до 15 на слабых машинах.

Ну ты уже сейчас можешь юзать 16 реакт
Не, мне и так норм вроде, смирился с дополнительной либой. Файбер подожду когда следующий проектик делать буду. Надеюсь там не будет такой дичи.

Дмитрий
16.07.2017
09:32:21
Ну в смысле, вначале рендер реакта, а потом анимация элементов. Если это одновременно (в короткие промежутки) - просадки до 15 на слабых машинах.
В этом и задача fiber) Высокоприоритетные fiber будут юзать requestAnimationFrame, низкоприоритетные — requestIdleCallback

Alex
16.07.2017
09:33:36
Дмитрий
16.07.2017
09:33:48
?

Страница 1721 из 5115