
Богдан
24.08.2016
16:33:09
Мб я что-то не понимаю конечно

Ilya
24.08.2016
16:33:20
ты точно тот элемент выбрал?

Андрей
24.08.2016
18:56:31
не могу не оставить это здесь: https://www.youtube.com/watch?v=Xt5qpbiqw2g

Ilya
24.08.2016
19:06:37
А слайды есть с этой презентации?

Google

Ilya
24.08.2016
19:06:47
Или транскрипт.
В описании что-то не нашёл, а слушать пол часа не хочется.

Андрей
24.08.2016
19:08:28
увы, слайдов не видел, транскрипта тоже. Слушается легко, можно фоном =)

Nikolay
24.08.2016
20:56:45
холиварный вопрос. Под новый проект ReactJS+Redux или Angular2+TS

Дмитрий
24.08.2016
21:01:36
ReactJS+Redux+TS))

Андрей
24.08.2016
21:14:45
Если уж TS, то лучше ReactJS+MobX. Эти штуки отлично сочетаются.

Владислав
24.08.2016
21:17:20
@iamstarkov можешь посмотреть, я правильно понял суть фпшности? https://github.com/5angel/quak/tree/master/src

@proDOT
24.08.2016
22:03:19

Андрей
24.08.2016
22:03:48
я про связку с реактом

Taras ?
24.08.2016
22:10:22
извращения))

Дмитрий
24.08.2016
22:50:58
Плюс, функции обязаны быть чистыми для удобства отладки и прочего. Функции с document. внутри этому критерию не особо соответствуют

Google

Дмитрий
24.08.2016
23:04:38
Модуль utils вообще не нужен, это стандартная функциональность ramda и lodash, повторять её смысла нет
По хорошему, твои функции должны выглядеть как-то так
https://github.com/iamstarkov/split-keywords/blob/master/index.js

Nikolay
25.08.2016
04:32:25
@ZeroBias @scalder27 @proDO спасибо-с)

Андрей
25.08.2016
05:39:59
холиварный вопрос. Под новый проект ReactJS+Redux или Angular2+TS
Если по серьезному, то не зная специфики проекта, опыта и целей которых хочется добиться попутно, трудно что-то дельное советовать. Мне больше нравится реакт и я бы предпочел ReactJS+MobX+TS. Мне кажется что эта свзяка надежная, очень производительная, мне нравится как выглядит код и решение более зрелое чем Angular2.rcXX. Но есть определенные условия когда я бы выбрал Angular2.

Nikolay
25.08.2016
05:49:42
а когда лучше зайдет ангуляр?
промто я бекбоновод
но чет устал

Grigory
25.08.2016
06:55:43
Nikolay если ты бэкбоновод, то однозначно реакт. Переписывать с бэка на реакт — одно удовольствие, говорю по своему опыту

Каїн
25.08.2016
08:06:16
Даров рибята

Владислав
25.08.2016
08:35:41

Alex
25.08.2016
08:35:51
Шо тут?

Владислав
25.08.2016
08:35:55
ща попробую проникнуться Старковым

Vladimir
25.08.2016
08:36:57

Дмитрий
25.08.2016
08:37:13

Vladimir
25.08.2016
08:38:19

Владислав
25.08.2016
08:39:37

Vladimir
25.08.2016
08:40:04

Дмитрий
25.08.2016
08:40:13

Ilya
25.08.2016
08:40:20
Бррр, тернарник со сносами.

Google

Vladimir
25.08.2016
08:40:23

Дмитрий
25.08.2016
08:40:51

Ilya
25.08.2016
08:41:04
Есть ещё карри который вызывается на аргументы когда последний вызов не содержит аргументов.
Типо, бесконечно аккумулирует.

Владислав
25.08.2016
08:41:42

Ilya
25.08.2016
08:42:08
Символьная магия разнесённая на несколько строчек.

Дмитрий
25.08.2016
08:42:27

Vladimir
25.08.2016
08:42:33
смысл карри в том, чтобы отложить вычисление функции пока она не получит все аргументы
как только получила, запускай
все хелперы — каррируй по умолчанию https://github.com/5angel/quak/blob/master/src/utils.js#L72-L74
те, что из них чистые — мемоизируй

Дмитрий
25.08.2016
08:44:12

Ilya
25.08.2016
08:44:13
А когда мне рассказывали, что карирование нужно, чтобы сохранить 1-arity у функций потому что это лучше поддаётся анализу или как-то так.

Владислав
25.08.2016
08:44:20
все функции писать через const – это тоже такой православный подход?

Vladimir
25.08.2016
08:44:50
эта чистая функция не будет вычислать второй раз результат для уже проработонного инпута
для просчитанных инпутов функция становится хеш таблицей

Дмитрий
25.08.2016
08:45:04

Admin
ERROR: S client not available

Vladimir
25.08.2016
08:45:11

Google

Vladimir
25.08.2016
08:46:04
у меня почти нет переменных, поэтому функции в констах хранить норм
define methods мутабельный =(
https://github.com/5angel/quak/blob/master/src/utils.js#L62-L66
безопаснее сделать shallow copy и вернуть её
ещэ
для дефолтного каррирования нужно, чтобы у функции было определённое арити
то есть не ...rest
и не function() { console.log(arguments) }
а function(arg1, arg2, …, argN-1, argN)
я бы для простоты тестирования разделил работу с домом/браузером и всё остальное

Владислав
25.08.2016
09:14:48
надо подумать

Vladimir
25.08.2016
09:16:52
дефолтные аргументы лучше делать через partial application
const add = curry( (a, b) => a + b);
const add1byDefault = add(1);
const add100byDefault = add(100);

Владислав
25.08.2016
09:22:29
Я понял, в таком случае получается, что дефолтные аргументы в es2015-синтаксисе вообще не используются

Andrey
25.08.2016
09:23:08
дефолтные аргументы о другом и для другого)

Vladimir
25.08.2016
09:23:23
очень многое не используется
из плюсов код становится более языко-агностичным

Damir
25.08.2016
09:25:26

hlomzik
25.08.2016
09:25:43
плевать, на чем пишешь

Vladimir
25.08.2016
09:26:05
на сях используешь си фп-библиотеку

Google

Vladimir
25.08.2016
09:26:09
код примерно такой же
дефолтные аргументы о другом и для другого)
они о другом, но с частичным применением они не нужны, смотри:
const map = curry( (fn, arr) => arr.map(fn));
const id = x => x;
const mapIdByDefault = map(id)
const double = x = x * 2;
const mapDoubleByDefault = map(double)
mapIdByDefault([1, 2]); // [1, 2]
mapDoubleByDefault([1, 2]); // [2, 4]
зачем тебе зашитое внутри поведение, если его можно пробрасывать снаружи и сохранять в отдельную функцию?

Andrey
25.08.2016
09:30:15
да, но это чистое применение карринга и установления переменных с у же пред установленными значениями) но дефолтные значения чуть другое)
const map = curry( (fn = x => x, arr) => arr.map(fn));
можно было и так написать и покрыть вариант с дефолтным вызовом)