These are chat archives for dev-ua/reactjs

10th
Mar 2016
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:00
которые не нужно фетчить
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:00
чем это отлечается от начальных стейтов?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:00
тем что эти поля можно было бы засетить при инициализации релея
те у меня 1 глобальный релей стор в котором есть локальные а есть серверные поля
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:01
зачем релей, если не надо фетчить?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:01
нужно фетчить, но не все
я ж говорю - не хочу всякие тултипы и прочую чисто UI штуки хранить на бекенде - только данные
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:02
то, что не надо фетчить и не надо хранить, незачем хранить в релее
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:02
мне нравится идея одного стора
когда при сервер рендеринге я конфигурирую этот стор и получаю нужное состояние UI
если релей это один стор, то почему этот стор не может хранить мои ui-данные?
те как будто 2 редюсера - сервер данные и ui данные
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:03
он будет хранить то, что ты будешь там хранить
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:04
я могу комитить в релей стор только мутации же
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:05
так
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:05
когда я комичу мутацию нетворк леер мутирует же на сервер
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:06
окей. но мы говорим не про этот случай, а есть переключалка табов, так?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:06
да
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:06
ну убери релей и редакс
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:06
я хочу чтоыб я могу мутировать локальные данные без отправки на сервер
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:06
и будет то, что тебе нужно
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:07
у меня и так релей и редакс, но мне ненравится, я не хочу 2 глобальных стора и это выглядит уебищно когда 2 враппер контейнера и слишком сложно
я хочу локальные мутации
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:07
я же говорю, не нужен редакс
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:07
а, ну это понятно что редакс ненужен
но как мне только с одним релеем делать локальные мутации
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:08
this.setState / recompose
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:09
хм, а при изначальном рендеринге релей засетит нужный стейт?
те если я компонент пересоздам, стейт сохранится в релее?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:10
ну это тебе решать. можешь из него взять. можешь из жсона любого взять. можешь в компонентах хранить, можешь взять из локалстораджа
без разницы
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:10
когда я делаю this.setState релей сохраняет в себя этот стейт?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:10
нет
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:11
ну и в чем тогда профит
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:11
ты выше писал, что тебе не надо сохранять это
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:11
я хочу чтобы была 1 сущность с данными - и UI и сервер
те одно дерево которое описывает все приложение и данные
те глобальный стор
тк я юзнаю релей то это должен хранить релей
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:12
ну тогда храни эти данные в релее)
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:12
но релей синкает мутации на сервер)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:12
омг. тогда не храни. храни в стейте) мы по кругу ходим)
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:13
лол)
я хочу чтобы релей отвечал как за сервер стейт так и за локальный
те релей хранил оба стейта, а локлаьный не синкал с сервером
пока у меня только идея написать свой нетворк леер где это переопределить
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:13
почему бы не хранить локальный стейт в самих компонентах?
зачем релей должен хранить то, что у тебя и редакс не должен хранить?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:14
потому что при сервер рендеринге мне нужно каждому компоненту тогда сетить стейт
редакс должен хранить это
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:15
зачем?
я видимо просто не понимаю кейс

чем отличается

каждому компоненту тогда сетить стейт

и каждому компоненту выставить (статичный?) стейт в редаксе

Artyom Trityak
@artyomtrityak
Mar 10 2016 00:17
в редаксе я просто делаю жсон и его сетю в 1 место
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:17
у тебя получается целая либа, которая хранит жсон
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:17
а не пробегаюсь по всем всем компонентам чтобы им засетить стейт
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:17
возьми просто жсон?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:17
в смысле?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:18
тебе в этом кейсе редаксовые экшны нужны?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:18
да, чтобы изменять стейт
редаксовые экшены в этом кейсе === мутации
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:18
чтобы не хранить стейты и получать пропсы?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:19
именно
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:19
recompose
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:19
я не юзал, ты про https://github.com/acdlite/recompose ?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:20
да, и ты сможешь не делать setState если это так не нравится)
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:20
просто проблема смотки какая
у меня есть к примеру контейнер в котором всякие акордеоны и прочая UI шелуха
допустим мы сделали setState({open: true})
потом мы этот контейнер закрыли, те он удалился, юзер открывает и он должен увидеть как было те open: true
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:21
хранить в персистентном сторадже
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:22
те в глобальном сторе
те в релее
те мне нужна возможность туда сохранять локальный стейт
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:22
релей - это не персистентный сторадж
короче ты просто хочешь от него того, чего в нем нет. это как народ хочет роутер в реакте
но реакт не для роутинга
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:23
в роадмапе релея есть локальная схема
те они об этом думали
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:23
ну у нее низкий приоритет и я могу это понять
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:23
просто я хочу чтобы они уже это сделали
вообще непонятно почему - это стандартная штука
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:24
потому что без этого можно жить и есть задачи / баги поважнее
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:24
сейчас я вынужден хранить это в postgres json поле
потому что редукс + релей выглядит просто пипец
я думал перенести это в редис, но пока так
минус в том что это создает много нетворк “шума"
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:27
а где роадмап релея? что-то не нашел
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:27
мне вот вебсокеты важнее чем локальная схема
Illia Seheda
@ALF-er
Mar 10 2016 00:28
внезапно нафлудили на 100+ меседжей
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:28
вебсокеты тоже важны, но они не влияют на архитектуру
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:28
у меня вообще на большинство апп всего 1 фетч (и да я все еще хочу его отменять!)
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:28
а локальная схема влияет
Illia Seheda
@ALF-er
Mar 10 2016 00:29
А я тут почитал как Абрамов хочет переделать хот-релоад https://medium.com/@dan_abramov/hot-reloading-in-react-1140438583bf#.5my5s6e4h и ещё почему он это хочет сделать и вообще историю всех решений и их проблем
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:29
они влияют на архтектуру так, что она не нужна без них
Illia Seheda
@ALF-er
Mar 10 2016 00:29
Вроде должно быть лучше в будущем
Roman Liutikov
@roman01la
Mar 10 2016 00:30
@artyomtrityak а ты не пробовал взять спеку GraphQL и написать свой адаптер для управления состоянием на клиенте?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:30
вот кстати тоже вариант
Roman Liutikov
@roman01la
Mar 10 2016 00:30
@ALF-er он там, вроде бы, ничего толком не сказал, что будет дальше?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:30
@roman01la я не хочу переписывать релей тк я не смогу
я думаю про нетворк леер свой
те нетворк леер будет делать локальные мутации или использовать дефолтный нетворк леер для отправки данных
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:32
всем датомик + датаскрипт пацаны
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:32
че?
Roman Liutikov
@roman01la
Mar 10 2016 00:32
датаскрипт тупит
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:32
это да(
Illia Seheda
@ALF-er
Mar 10 2016 00:32
@roman01la как это, там чёткая схема в конце
Roman Liutikov
@roman01la
Mar 10 2016 00:32
Соловьев так сказал :)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:32
Соловьев рассказывал как они его выпиливали
Roman Liutikov
@roman01la
Mar 10 2016 00:32
:D :D
@ALF-er значит я лох
Illia Seheda
@ALF-er
Mar 10 2016 00:33
можешь последний раздел перечитать The Road Ahead
Roman Liutikov
@roman01la
Mar 10 2016 00:33
@artyomtrityak почему нетворк лейер должен делать локальные мутации? или это костыль для релея?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:33
есть какие-то еще идеи ка релей подружить с локальным стейтом?
@roman01la костыль
Roman Liutikov
@roman01la
Mar 10 2016 00:34
@artyomtrityak вот блин :(
@artyomtrityak а можно на мутации прикрутить интерсепторы?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:35
я хз
я больше по машинам, перехватчики не для меня
те получается что если релей то в стейте компонента нужно хранить UI состояние без вариантов?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:37
варианты есть. но тебе они не нравятся)
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:38
та ты ничо непредложил)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:38
я много всего предложил)
куки еще не предлагал только лол
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:38
но ничо несработает)
Roman Liutikov
@roman01la
Mar 10 2016 00:38
почему?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:39
потому что он не хочут две разные функции вызывать
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:39
потому что иметь > 1 глобального стора както тухло имхо
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:39
и враппер он тоже не хочет
он хочет магии
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:39
враппер?
а, ты про контейнер на контейнере
просто и редукс и релей решают +- одну проблему (релей еще решает +много проблем конечно) и использовать и то и то некруто
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:40
ну вот я бы не сказал, что одну проблему
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:41
проблема - сложное состояние большого приложения
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:42
ну так почти про любую либу можно сказать
ангуляр тоже эту проблему решает
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:42
хорошо, тогда добавлю при помощи хранения состояния в одном месте
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:42
в ангуляре <2 можно один сервис создать
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:43
так а при чем тут ангуляр?)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:43
про состяние приложения. он это в том числе решает. как минимум предлагает инструменты для этого
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:43
если бы релей работал с ангуляром, то использовать сингл сервис + релей было бы некрто
Roman Liutikov
@roman01la
Mar 10 2016 00:43
в релее же нету возможности подключать свой стор? типа плаг-и-плей
сделали блин комплексное решение, теперь все парятся :)
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:44
это лучшее что было в последнее время для синка данных
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:45
смотря что подразумевать под синком данных..
Roman Liutikov
@roman01la
Mar 10 2016 00:45
ну в мире JS — да
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:46
вон сворм своем роде лучше для синка данных)
Illia Seheda
@ALF-er
Mar 10 2016 00:46
У тебя есть хороший повод разобрать как написан Релей в подробностях и заимплиментить локальный стейт =)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:46
swarm.js
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:46
@chicoxyzzy синхронизация бекенд<->фронтенд
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:46
ну я и про это в том числе)
Illia Seheda
@ALF-er
Mar 10 2016 00:46
сворм же крыли матом в этих чатиках
Roman Liutikov
@roman01la
Mar 10 2016 00:46
из-за доков?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:46
я крыл его матом самлму Григорию
из-за исходного кода
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:47
вебсокеты для меня неважны тк React Native
и релей меня устраивает, но нужен локальный стейт
@ALF-er да, я уже копаюсь в релее
Roman Liutikov
@roman01la
Mar 10 2016 00:48
я чет не понял о синхронизации. в релее можно сделать как в Meteor что ли?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:48
в общем, я рад, что благодаря @ALF-er узнал о sangria
чувак, пиши гист
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:48
о чем гист?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:48
ну со всеми отчетами по видео
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:49
по каком видео?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:49
сразу ясно что надо смотреть, а что нафиг не надо
с конфы видосы. он тут уже неделю как отчеты выкладывает после просмотра
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:49
а, ты Альферу
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:50
да
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:50
просто чувак понятие растяжимое )
Illia Seheda
@ALF-er
Mar 10 2016 00:50
напишу, пожалуй
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:50
:)
и в твиттер пушни. я потом ретвитну и не потеряю
будет збс :)
Illia Seheda
@ALF-er
Mar 10 2016 00:51
как можно не потерять что-то в тви я не понимаю =)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:51
я мало пишу
в закладках точно потеряю..)
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:51
кстати можно както в тви увидеть то что я звездочкой отметил?
Illia Seheda
@ALF-er
Mar 10 2016 00:51
я тут вроде сутра видел фотку негритянки с татухой White Power, а теперь найти не могу вообще =/
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:52
@artyomtrityak в tweetdeck можно
Illia Seheda
@ALF-er
Mar 10 2016 00:52
да, можно (у тебя до сих пор звёздочки? О.о ) https://twitter.com/i/likes
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:53
ну сердечки) пофигу
@ALF-er а в клиенте обычном, не твитдеке нет?
Illia Seheda
@ALF-er
Mar 10 2016 00:54
это не твитдек же
или ты про мобильный клиент?
Artyom Trityak
@artyomtrityak
Mar 10 2016 00:55
о я нашел
все
)
спс
да, про мобильный
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 00:57
надо досрочно сдать релиз и поставить сангрию, руки чешутся. и там кажется несложно прикрутить вебсокеты
вот на клиенте хз
хочу собрать прототип сангрия +скалажс+реакт
Artyom Trityak
@artyomtrityak
Mar 10 2016 02:02
кстати все видели уже да https://github.com/facebook/relay/blob/master/examples/TodoMVC/ ?
Vyacheslav Slinko
@vslinko
Mar 10 2016 07:39
@artyomtrityak есть тикет, где обсуждается возможность выделения состяния компонент в отдельное сериализуемое дерево
имхо лучше это запилить
Roman Vyakhirev
@r0b1n
Mar 10 2016 09:40
Интересно, есть в этом TodoMVC такой же банальный баг как и в другом to-do примере.
Хотя код похоже тот же, только обернут в нейтив.
anoru
@anorudes
Mar 10 2016 10:12

Ребят, какой-то странный баг словил в приложение. У меня в редюсере есть объект типа
languages: { en: true, ru: true} Далее допустим по клику на языке я меняю true на false
Я его меняю и знаю про опцию pure: false у коннекта redux'а. Проблема в том, что componentDidUpdate срабатывает, но в prevProps всегда новые данные. То есть prevProps.languages всегда равен новому значению

Устанавливаю я это так:

case 'TEST':
  return {
    ...state,
    languages: {
      ...action.payload
    },
  };

значение в this.props.languages у компонента, что приконнектен - меняется. Но вот prevProps всегда новый. Как быть в таком случае?)

Illia Seheda
@ALF-er
Mar 10 2016 11:16
что за "prevProps"?
Alex Lunyov
@sunify
Mar 10 2016 11:16
Аргумент componentDidUpdate
Illia Seheda
@ALF-er
Mar 10 2016 11:18
возможно он у тебя срабатывает дважды
Alexey Volkov
@rosko
Mar 10 2016 11:31
+1 скорее всего
Roman Liutikov
@roman01la
Mar 10 2016 12:41
Кто-нибудь обошел эту проблему в Babel с babel-plugin-transform-runtime? https://phabricator.babeljs.io/T2877
Illia Seheda
@ALF-er
Mar 10 2016 12:44
может заменить пока на
module.export = require("a");
Roman Liutikov
@roman01la
Mar 10 2016 12:48
@ALF-er я пока что выкинул трансформ и импортирую babel-polyfill
Illia Seheda
@ALF-er
Mar 10 2016 12:50
А бандл при этом не увеличивается в кучу раз?
Myroslav Tantsyura
@Nahasaki
Mar 10 2016 12:50
для рідукса нормально тримати access_token в store?
Illia Seheda
@ALF-er
Mar 10 2016 12:51
нормально в принципе. Только не совсем понятно как при этом будет работать remeberMe
Roman Liutikov
@roman01la
Mar 10 2016 12:52
@ALF-er угу. Но у меня cordova приложение, так что на бандл пофиг
Myroslav Tantsyura
@Nahasaki
Mar 10 2016 12:52
@ALF-er буде рефрешатись
при відмові
Illia Seheda
@ALF-er
Mar 10 2016 12:52
@roman01la нууу фиг знает =)
Roman Liutikov
@roman01la
Mar 10 2016 12:53
@ALF-er чего?)
Illia Seheda
@ALF-er
Mar 10 2016 12:54
не люблю когда не оптимально ) (Память не резиновая! Понабандлили!)
Roman Liutikov
@roman01la
Mar 10 2016 12:54
xDD
Semen Levenson
@Ralf8686
Mar 10 2016 13:48
Всем привет, задавал раньше вопрос про структуру state в redux. Возник новый) Есть reports которые представляют из себя отчет за определенные даты для определенного устройства.
This message was deleted
This message was deleted
    entities: {
        cash: {
            1: {
                name: 'Касса 1',
                reports: [1,2]
            },
            2: {
                name: 'Касса 2',
                reports: [3]
            }
        },
        reports: {
            1: {
                title: 'Покупка',
                name: 'Пупкин',
                time: '2016.02.02 20:20'
            },
            2: {
                title: 'Покупка',
                name: ' Сидоров',
                time: '2016.02.02 20:25'
            },
            3: {
                title: 'Покупка',
                name: ' Сидоров',
                time: '2016.02.02 20:25'
            }
        }
    }
}
Alexey Migutsky
@mr-mig
Mar 10 2016 13:50
id внутри репортов не помешали бы ящитаю
Semen Levenson
@Ralf8686
Mar 10 2016 13:53
вот такая структура получается. Так вот вопрос - как обновлять эти отчеты? Суть заключается в том, что id отчетов надо добавлять либо в начало массива, либо в середину, либо в конец - в зависимости от даты. Единственное решение, которое приходит на ум, это просто их пушить, а потом уже сортировать самому, но может есть другое решение
@mr-mig да, ты прав, id внутри есть, забыл здесь написать(
Alexey Migutsky
@mr-mig
Mar 10 2016 13:58

Единственное решение, которое приходит на ум, это просто их пушить, а потом уже сортировать самому, но может есть другое решение

Зачем другое?

Semen Levenson
@Ralf8686
Mar 10 2016 14:06
Вот очень хороший вопрос... просто этих отчетов может много набраться, и остерегаюсь, чтобы эта фильтрация долго не происходила
Alex Lunyov
@sunify
Mar 10 2016 14:06
Берешь и смотришь
Semen Levenson
@Ralf8686
Mar 10 2016 14:07
короче панику навел, сори(
Alexey Migutsky
@mr-mig
Mar 10 2016 14:31

чтобы эта фильтрация долго не происходила

А мерять не пробовал, когда их реально будет овер 1000?

anoru
@anorudes
Mar 10 2016 14:32
возможно он у тебя срабатывает дважды
к сожалению, нет. Пока костылями решил. Потом разберусь)
Serhey Shmyg
@sshmyg
Mar 10 2016 15:03
В саблаймі лінер матюкається на такі конструкції, як можна побороти7
 static propTypes = {
        onClick: React.PropTypes.func.isRequired
    }
Illia Seheda
@ALF-er
Mar 10 2016 15:05
Не юзать класс-проперти. Какой именно линтеров матюкается?
Serhey Shmyg
@sshmyg
Mar 10 2016 15:07
хз лише еррор внизу в саблаймі, мабудь jshint
лінтери такого не розуміють?
чи можна якось налаштувати?
Illia Seheda
@ALF-er
Mar 10 2016 15:08
Скорее всего можно. Пойми каким именно линтером ты пользуешься тогда будет понятней как настроить
Serhey Shmyg
@sshmyg
Mar 10 2016 15:10
та всі поставив :)
які можна
еслінт, джсхінт, и джсікс :)
Illia Seheda
@ALF-er
Mar 10 2016 15:11
Эммм... Странное решение. Ну тогда настраивай все
Terry Sahaidak
@terrysahaidak
Mar 10 2016 15:17
я б залишив тільки еслінт
Denys Dovhan
@denysdovhan
Mar 10 2016 15:54
в налаштуваннях до лінтерів можна десь зачекати, щоб лінтили лише при наявності .jshintrc, .eslintrc в руті проекту
дуже раджу такий флаг поставити і жити нормально, навіть з різними лінтерами
Dmitry Chirkin
@josser
Mar 10 2016 16:22
Ну тут-то наверняка кто-то GraphQL юзал, это ж react чат!
Artyom Trityak
@artyomtrityak
Mar 10 2016 16:22
ох боже мой
Ruslan Abdullaev
@rajdee
Mar 10 2016 16:37
@josser @vslinko юзает
Dmitry Chirkin
@josser
Mar 10 2016 16:42
@vslinko
а я вот тут начал читать за него, и не могу понять, как делать запросы с условиями типа >, <, != ?
исчитал всю спеку, списка операций не нашел, аргументы есть но они передаются внутрь как значения а не как условие
такое впечатление что я неправильно понимаю суть graphQl и там и не должно такого быть
Ruslan Abdullaev
@rajdee
Mar 10 2016 16:51
а какие запросы ты хочешь выполнять?
Dmitry Chirkin
@josser
Mar 10 2016 16:59
ну безумные конечно
типа:
query user(id: '>12') { id, name }
)
Ruslan Abdullaev
@rajdee
Mar 10 2016 17:24
@josser ммм, мне кажется в таком виде это точно не работает и в драфте тоже не видел
Denis Baranovskyi
@megazoid84
Mar 10 2016 17:34
Привет всем. Есть ситуация асинхронного обновления стейта и ререндеринга копонентов https://jsfiddle.net/1n10jxL7/1/ В результате чего оказывается что пользователь внезапно правит совсем другое поле. Есть очевидные решения - типа того, что хранить в внутри конкретного элемента модели дополнительный признак, какое поле сейчас редактируется. Но может есть более стандартизированные решения?
how to use: ввести что-то в поле FOO и подождать 5 сек
Illia Seheda
@ALF-er
Mar 10 2016 17:37
в поля ничего не вводится, ты там onChange закоментил
попробуй инпутам дать key={this.props.item.name}
только name, ессесна, должен быть уникальным идентификатором
Artyom Trityak
@artyomtrityak
Mar 10 2016 17:47
@josser какой это юзкейс вообще?
Denis Baranovskyi
@megazoid84
Mar 10 2016 18:06
@josser безотносительно юзкейса. есть ситуация как в примере. стейт обновился в фоне пока я вводил данные в поле. добавилось еще одно поле первым элементом. и соответвенно бывшее ранее первым стало вторым.
Illia Seheda
@ALF-er
Mar 10 2016 18:08
ключи раздай, тогда реакт будет знать, что надо не перерисовать все инпуты, а впихнуть новый в начало
Или какие-то другие ключи?
Illia Seheda
@ALF-er
Mar 10 2016 18:13
key
Vyacheslav Slinko
@vslinko
Mar 10 2016 18:22
@josser GraphQL так не умеет
и не должен, так как это не общий язык запросов к базам данных
Roman Vyakhirev
@r0b1n
Mar 10 2016 18:22

@josser тут логичнее объявить аргументы дополнительные.
query user(usersAfterId: 12) { id, name }

query tweets(lastTweetId: 123456789) { id, text, author }

Vyacheslav Slinko
@vslinko
Mar 10 2016 18:23
userId > 12, скорее всего, обусловлено какими-то бизнес требованиями
Artyom Trityak
@artyomtrityak
Mar 10 2016 18:23
@vslinko можешь скинуть линк на тикет?
Vyacheslav Slinko
@vslinko
Mar 10 2016 18:23
на какой?
про состояние?
Denis Baranovskyi
@megazoid84
Mar 10 2016 18:24
@ALF-er спасибо!
Artyom Trityak
@artyomtrityak
Mar 10 2016 18:24
ага
Vyacheslav Slinko
@vslinko
Mar 10 2016 18:25
facebook/react#4595
Artyom Trityak
@artyomtrityak
Mar 10 2016 18:25
спасибо!
Denis Baranovskyi
@megazoid84
Mar 10 2016 19:11
Гайз, еще момент. Вроде как с ключами и получилось и нет. https://jsfiddle.net/1n10jxL7/2/ Новое поле теперь не становится активным. Значения вводимые не затираются. Но фокус ввода теряется.
Illia Seheda
@ALF-er
Mar 10 2016 19:17
кей у ЛистАйтема - i. Это не имеет смысла ибо у тебя индексы одних и тех же "данных" изменятся между импортами. Дай им key что-то типа
key={`li-${item.keyName}`}
Denis Baranovskyi
@megazoid84
Mar 10 2016 19:18
суперически
You are my hero!
:)
Illia Seheda
@ALF-er
Mar 10 2016 20:57
This message was deleted
Illia Seheda
@ALF-er
Mar 10 2016 21:05
Bhuwan Khattar - Speeding up Startup for Large React Apps Имхо, важный доклад о том как в ФБ ускоряют первую загрузку. Они разбивают на бандлы согласно историческим данным какие бандлы с какими чаще рекваерятся. Описывается их система загрузки модулей, описывается идеи которые они применяют для уменьшения времени ожидания Execution of JS. Как они рекваерят бандлы которые возможно будут нужны юзеру в requestIdleCallback. Описывается почему для них класический SSR не эффективен (от себя добавлю, что для СЕО он по прежнему эффективен). Советую всем посмотреть хоть и у чувака неприятный акцент и он всё читает с монитора
xtwist
@xtwist
Mar 10 2016 21:09
@ALF-er заметки эти только в чат пишешь? или есть репо/блог/твиттер с ними?
Illia Seheda
@ALF-er
Mar 10 2016 21:10
заметки эти только в чат пишу. Досмотрю все видео - выкину в какой-нибудь гист
xtwist
@xtwist
Mar 10 2016 21:10
собирай репо с такими вот описаниями, будет очень полезно, имхо)
Illia Seheda
@ALF-er
Mar 10 2016 21:22
Lightning Talks - Elie Rotenberg Лайтнинг-представление хитрой штуки https://github.com/elierotenberg/react-armor от всёлого чувака с видом безумного-профессора. Либа решает проблему: third-party скрипты могут таргетировано (и нарочно) сломать ваш DOM или стили для этого дома. Либа умеет: превратить в нечитаемое месиво имена всех классов, превратить все хтмл-теги которые вы юзаете в нечитаемые и она умеет добавить в дом-дерево рандомных тегов. Всё чтоб никакими заранее подготовленными селекторами или xpath-ами нельзя было сломать ваше приложение. Идея интересная
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 21:24
ура. выбил себе r&d на relay / falcor по завершению активной разработки текущего проекта :fire:
там по вебсокетам до сих пор все грустно же, да?
Illia Seheda
@ALF-er
Mar 10 2016 21:24
Я уже предвкушаю эти "всё не нужно"
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 21:25
:)
Illia Seheda
@ALF-er
Mar 10 2016 21:25
Слава как-то говорил, что канал передачи данных может быть любым
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 21:26
это понятно, но канал надо делать
я так понимаю, что ни graphene, ни sangria тоже этого не предоставляют
(со стороны фронтенда все понятно)
вообще меня исключительно сангрия интересует пока что
Illia Seheda
@ALF-er
Mar 10 2016 21:41
яволюб
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 21:43
не угадал
Terry Sahaidak
@terrysahaidak
Mar 10 2016 21:47
@ALF-er остання штука -- вбивця adblock?
Illia Seheda
@ALF-er
Mar 10 2016 21:48
теоретически - возможно, хотя вроде адблок больше блочит запросы к определённым доменам.
xtwist
@xtwist
Mar 10 2016 21:48
а ещё все дивы с advert* в названии)
вроде штука, которая превращает ваш хтмл в кашу не нова
но конкретно для реакта это новая тулза
Denis Stoyanov
@xgrommx
Mar 10 2016 21:52
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 21:52
да
Terry Sahaidak
@terrysahaidak
Mar 10 2016 21:54
ну от зараз на fs.to adblock ніфіга не блочить, бо там якось дуже хитро замутили + таки апендяться рандомні блоки + хеш замість класів
тому ця штука може таки спасти)
Denis Stoyanov
@xgrommx
Mar 10 2016 21:55
у меня uBlock и в разы меньше памяти кушает
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:02
я когда-то работал в команде, которая разрабптывала систему контекстной рекламы
эту всю хрень обходят только полные нубы
либо те, кто по каким-то причинам не может менять разметку
(тоже нубы или гугл)
а вообще можно большинство и без этого обойти
короче херь это все
xtwist
@xtwist
Mar 10 2016 22:07
@terrysahaidak на fs.to есть реклама? :D я её руками вырезал несколько месяцев назад)
адблок же умеет ручками и я надеюсь они эту всю инфу собирают кто и что вырезает
первый раз, когда я хочу что бы за мной следили
@chicoxyzzy писали систему на java?
Terry Sahaidak
@terrysahaidak
Mar 10 2016 22:15
@yuriylevin93 зараз є, десь місяць часу чи скільки
адблок руками на основі селекторів
а вони там динамічні
xtwist
@xtwist
Mar 10 2016 22:16
можно на блок выше вырезать :D они обычно рекламу заворачивают во что то)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:22

@chicoxyzzy писали систему на java?

кто? какую систему? :)

я на яве писал несколько раз в жизни и это был не самый приятный опыт
или это про бекенд системы контекстной рекламы?
Illia Seheda
@ALF-er
Mar 10 2016 22:24
но любишь то, что написано и работает на яве, ты уж выбери стул :trollface:
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:24
jvm !== java
Roman Liutikov
@roman01la
Mar 10 2016 22:26
jvm == пойти покурить пока оно стартует
Illia Seheda
@ALF-er
Mar 10 2016 22:26
хлеб !== тесто
творог !== молоко
стена !== кирпичи
=)))
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:27
странные аналогии
@ALF-er ты в курсе, что jvm не на java написан?
Kirill Yakovenko
@blia
Mar 10 2016 22:30

джава офигенна, в джаве можно так

@ReactNative
imAmDecorated

:trollface:

Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:30
вообще слабо себе представляю когда надо запустить jvm под jvm
чтобы писать это на java
Kirill Yakovenko
@blia
Mar 10 2016 22:31
и у джавы есть свой скриптовой язык джава скрипт
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:31
:)
Terry Sahaidak
@terrysahaidak
Mar 10 2016 22:31
ви, звісно, в курсі, шо ви в реакт чатику, правда?)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:32
@terrysahaidak речь бла о релее и графкл, это самый подходящий чатик
Illia Seheda
@ALF-er
Mar 10 2016 22:32
какая из этих JVM не на яве https://en.wikipedia.org/wiki/List_of_Java_virtual_machines ? )
Терри прав =( а мы нет
Terry Sahaidak
@terrysahaidak
Mar 10 2016 22:32

речь была

:D

Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:33

какая из этих JVM не на яве https://en.wikipedia.org/wiki/List_of_Java_virtual_machines ? )

не читал, но подозреваю, что ни одна

Illia Seheda
@ALF-er
Mar 10 2016 22:34
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:51
тебе надо научиться понимать разницу между языком, компилятором и виртуальной машиной :)
Illia Seheda
@ALF-er
Mar 10 2016 22:52
Чувак, я понимаю, но если что-то лежит рядом с ... протухшими яйцами, это будет вонять протухшими яйцами
Artyom Trityak
@artyomtrityak
Mar 10 2016 22:54
а мне груви нравится
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:54
жаль си протух
Artyom Trityak
@artyomtrityak
Mar 10 2016 22:55
жаль груви умер фактически(
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:55
жаль js
Artyom Trityak
@artyomtrityak
Mar 10 2016 22:55
а че жс?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:55
просто жаль его
Illia Seheda
@ALF-er
Mar 10 2016 22:56
Почему мы опять с этой темой вернулись в этот чат?
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 22:56
Terry Sahaidak
@terrysahaidak
Mar 10 2016 22:58
а хтось юзає декоратори?
коли-то в когось з чату бачив @autobind
Illia Seheda
@ALF-er
Mar 10 2016 22:58
@blia же
Terry Sahaidak
@terrysahaidak
Mar 10 2016 22:59
вроді ж казав шо нє
Illia Seheda
@ALF-er
Mar 10 2016 22:59
Кирилл "декоратор" Яковенко )
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:00
декоратор звучит как терминатор
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:00
ахах
Illia Seheda
@ALF-er
Mar 10 2016 23:00
та ты видел его код на Эмбере? Там у каждого метода по 3 декоратора )
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:00
не бачив ше)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:00
у него каждый рефакторинг кода - это декорирование декораторов
некст левел дзен
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:01
я чьось перше думав, шо декоратори тільки як HoF канають
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:01
@newFeature
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:01
а вони ше й на змінні теж
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:01
и все
@fixBug
Illia Seheda
@ALF-er
Mar 10 2016 23:01
=)))
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:02
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:02
^ не нужен
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:02
class TodoList {
    @observable todos = [];
    @computed get unfinishedTodoCount() {
        return this.todos.filter(todo => !todo.finished).length;
    }
}
Illia Seheda
@ALF-er
Mar 10 2016 23:02
Декораторы всё ещё stage-1 и хз чего там поломают
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:02
от шо прикальнуло)
прям джава
ше б типи
Denis Stoyanov
@xgrommx
Mar 10 2016 23:03
typescript + decorators
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:04
колись я таки попробую ts
бо шото флоу мене напрягає
хз чо
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:04
ts больше похож на c#, чем на джаву
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:04
от мені й c# якось краще йде ніж джава
Illia Seheda
@ALF-er
Mar 10 2016 23:04
кстати, читаю ту статью про "Не фанат TS" нормальные там аргументы жи
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:04
якийсь він папрощє шолі) хз)
Denis Stoyanov
@xgrommx
Mar 10 2016 23:05
c# няшка) но f# еще круче
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:05

от мені й c# якось краще йде ніж джава

+1

c# няшка) но f# еще круче

+1 more

Illia Seheda
@ALF-er
Mar 10 2016 23:05
ты не потерян =)
Artyom Trityak
@artyomtrityak
Mar 10 2016 23:05
@terrysahaidak чем тебя флоу напрягает?
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:06
синтаксисом
може я не звик
хз
Denis Stoyanov
@xgrommx
Mar 10 2016 23:06
вебшарпер просто офигенно! тут настолько все пропитано frp
Artyom Trityak
@artyomtrityak
Mar 10 2016 23:07
@terrysahaidak так в тайпскрипте такой же синтаксис
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:07
хіба?
правда я флоу завжди десь хрін зна де з реактом дивився
Artyom Trityak
@artyomtrityak
Mar 10 2016 23:07
угу они даже совместимы для бабель парсера (кроме некоторых фич)
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:07
а тс в нормальному коді
короч) я слоупок тоді
@xgrommx
('A -> 'K) -> ('A -> 'B) -> View<seq<'A>> -> View<seq<'B>>
ніби рандомно набиралось :D
Denis Stoyanov
@xgrommx
Mar 10 2016 23:09
@terrysahaidak ну ты просто начни немного f# читать)
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:10
о, внатурі, я цю штуку вже десь бачив)
Illia Seheda
@ALF-er
Mar 10 2016 23:10
что значат '?
Denis Stoyanov
@xgrommx
Mar 10 2016 23:10
это карринг тут) так нотации для каррированых функций пишутся
это я не альфу
Illia Seheda
@ALF-er
Mar 10 2016 23:11
нотации - это тоже, что и сигнатуры?
так много вопросов, так мало ответов
Denis Stoyanov
@xgrommx
Mar 10 2016 23:13
map :: (a -> b) -> List a -> List b нотации хаскелля
map(\x -> x * 10)([1,2,3,4])
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:14
:) запутали @ALF-er
Illia Seheda
@ALF-er
Mar 10 2016 23:14
это любимое занятие функциональщиков - запутывать )
Denis Stoyanov
@xgrommx
Mar 10 2016 23:14
:smile: как и математиков, что есть почти одно и тоже)
Illia Seheda
@ALF-er
Mar 10 2016 23:14
не льсти =)
Terry Sahaidak
@terrysahaidak
Mar 10 2016 23:15
@xgrommx а можна те саме, тільки на джс?
Illia Seheda
@ALF-er
Mar 10 2016 23:15
я видел, что в хаскеле сначала что-то типо сигнатуры для функции, а на следующей строке сама функция, но опять же с некоторой "урезанной сигнатурой"
Denis Stoyanov
@xgrommx
Mar 10 2016 23:15
вот бы most был модульный и каррированный
@terrysahaidak конечно) ramda или lodash-fp в помощь)
@ALF-er ты всегда можешь узнать сигнатуру функции через репл хаскелля вызвав тип
Illia Seheda
@ALF-er
Mar 10 2016 23:16
что значит "вызвав тип"?
Denis Stoyanov
@xgrommx
Mar 10 2016 23:17
λ> :t id
id :: a -> a
gromm ~ λ ghci
GHCi, version 7.10.3: http://www.haskell.org/ghc/  :? for help
Prelude> :t map
map :: (a -> b) -> [a] -> [b]
Prelude>
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:18
Денис всегда так сумбурно пишет :)
Denis Stoyanov
@xgrommx
Mar 10 2016 23:18
ну простите) не оратор)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:19
за 5 минут 10 языков, 20 терминов и 40 тем
Illia Seheda
@ALF-er
Mar 10 2016 23:19
Как бы так тебе объяснить... Если не знаешь синтаксиса, то такой ответ ни на что не отвечает )
Denis Stoyanov
@xgrommx
Mar 10 2016 23:19
меня википедией обозвали :smile:
Illia Seheda
@ALF-er
Mar 10 2016 23:19
=)))
Denis Stoyanov
@xgrommx
Mar 10 2016 23:20
я у себя на фирме бесплатно курсы организовал по fp и frp и мы писали там свой rx с нуля
с 15 человек в конце было только 3 :smile:
Illia Seheda
@ALF-er
Mar 10 2016 23:20
записывайте на видео - выкладывайте - ... - профит!
Denis Stoyanov
@xgrommx
Mar 10 2016 23:21
кстати такого не видел, даже в англ варианте
писали свой карринг, компоуз и много еще чего
моя инициатива была :smile:
было желание на хабр написать серию статей, но вот чето не торт он как по мне уже давно) грубияны там)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:26
на хабр забей
пиши нам, мы няшные :3
Denis Stoyanov
@xgrommx
Mar 10 2016 23:27
окай)
была злостная идея сделать rx как fluent и point-free
пока сделал только map
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:30
он и так флюент же
Denis Stoyanov
@xgrommx
Mar 10 2016 23:30
ну да, а хочется еще вот так) ща
const disposable = compose(
    take(3),
    map(x => x.toUpperCase()),
    map(x => `Sum is ${x}`),
    scan((acc, next) => acc + next, 0),
    map(x => x * 30),
    filter(x => x % 2 === 0)
)(Observable.interval(1000)).subscribe(x => console.log(x), null, () => console.log('Finished'));
ща так)
эти операторы были написаны на лекции
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:33
а чего интервал тоже не пикнул? в нем this?
Denis Stoyanov
@xgrommx
Mar 10 2016 23:33
можно
я думал про статические операторы
чтобы просто interval(1000)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:34
можно вроде как-то так:
Denis Stoyanov
@xgrommx
Mar 10 2016 23:34
это написано было за пару часов с объяснениями) цель была дать людям пищу что есть rx глубоко внутри)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:34
import Observable from ‘rx/observable’
import interval from ‘rx/operators/interval'
и будет пик
где-то видел, но может это 5й
Denis Stoyanov
@xgrommx
Mar 10 2016 23:35
но у них нельзя делать композиции нет каринга и не в правильно порядке аргументы
у них у всех source первый
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:35
ну это для флюента, да
Denis Stoyanov
@xgrommx
Mar 10 2016 23:36
вот так у меня операторы делаются из других
import curry from '../utils/curry';
import compose from '../utils/compose';
import last from './last';
import scan from './scan';

// reduce :: ((a, b) -> a) -> a -> Observable<b> → Observable<a>

const reduce = curry((accumulator, seed, source) => {
    return compose(last, scan(accumulator, seed))(source)
});

export default reduce;
обучаю людей думать правильно))
вот в rx5 приходится такую карусель делать https://twitter.com/xgrommx/status/684111774405246976
надо придумать такой путь чтобы и fluent и point-free
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:39

@ALF-er

что значат ?

вообще вроде это валидный символ в именах переменных

так что это прост)0))
Illia Seheda
@ALF-er
Mar 10 2016 23:40
:facepalm:
Denis Stoyanov
@xgrommx
Mar 10 2016 23:40
ну в хаскелле это значит что функция не ленивая
Illia Seheda
@ALF-er
Mar 10 2016 23:40
оп, оказывается это функции
Denis Stoyanov
@xgrommx
Mar 10 2016 23:40
не думаю)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:41
@xgrommx это ж про вебшарпер было
функции ->
а между ними аргументы -> резултаты
Denis Stoyanov
@xgrommx
Mar 10 2016 23:41
это я знаю))
Illia Seheda
@ALF-er
Mar 10 2016 23:41
это мне, скорее всего
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:41
да, это Илье
Denis Stoyanov
@xgrommx
Mar 10 2016 23:42
=> а это ограничители)
Sergey Rubanov
@chicoxyzzy
Mar 10 2016 23:42
 @xgrommx ну теперь всем все понятно :)
Denis Stoyanov
@xgrommx
Mar 10 2016 23:44
ну типа a должен имплементировать Num (+) :: Num a => a -> a -> a
Illia Seheda
@ALF-er
Mar 10 2016 23:45

тоесть

('A -> 'K) -> ('A -> 'B) -> View<seq<'A>> -> View<seq<'B>>

Это функция, которая принимает функцию, которая принимает 'A и возвращает 'K, которая возвращает функцию которая принимает функцию, которая принимает 'A и возвращает 'B, которая возвращает функцию которая принимает View, который зависит (хз, это темплейты как в С++?) от последовательности 'A-шек которая возвращает View который зависит от последовательности 'B>?

Denis Stoyanov
@xgrommx
Mar 10 2016 23:46
типа того)
принцип карринга все что принимает больше одного аргумента - должно быть каррированное
Illia Seheda
@ALF-er
Mar 10 2016 23:47
я всё ещё пытаюсь понять каким макаром это "удобно и читаемо" =/
Denis Stoyanov
@xgrommx
Mar 10 2016 23:48

у тебя есть ф-ция типа

const a = curry((x, y) => x + y);
const a10 = a(10);

console.log(a10(20)); // => 30

реюзабл и композиции

ну это оооочень простой пример был

Это дженерики

который зависит (хз, это темплейты как в С++?)

xtwist
@xtwist
Mar 10 2016 23:52
@xgrommx посоветуй про Rx в JS чтиво
кажется я влюбился в Rx
и меня это пугает :D
Denis Stoyanov
@xgrommx
Mar 10 2016 23:52
@yuriylevin93 http://xgrommx.github.io/rx-book :smile:
xtwist
@xtwist
Mar 10 2016 23:53
воу, я по адресу
Denis Stoyanov
@xgrommx
Mar 10 2016 23:57
лучше всего понять - когда сам напишешь с нуля
xtwist
@xtwist
Mar 10 2016 23:57
уже в процессе ;)
Denis Stoyanov
@xgrommx
Mar 10 2016 23:57
поймешь про Observer SafeObserver
и тд
@yuriylevin93 пишешь свой Observable?)
@ALF-er ты че телочек ретвитишь?))