
Rustam
16.09.2017
18:19:12
не дырявый, он со своими особенностями

Victor
16.09.2017
18:19:39

DimenSi
16.09.2017
18:20:51
Ага, я знаю. Но нас походу по этому слову можно определять.

Rustam
16.09.2017
18:21:15
а кто-нибудь может сказать внятный ответ, чем наследование в JS отличается от других языков?

Google

DimenSi
16.09.2017
18:21:23
Жесть какаята, вообще не понятно, что происходит.
пример из кода:
_.transform(
[ 'headers', 'data', 'dataType' ],
( carry, property ) => { delete carry[ property ]; },
_.cloneDeep( params )
);

Rustam
16.09.2017
18:21:46
params = _.transform(
[ 'headers', 'data', 'dataType' ],
( carry, property ) => { delete carry[ property ]; },
_.cloneDeep( params )
);
берём объект, клонируем его полностью, удаляем у него 3 свойства

DimenSi
16.09.2017
18:22:26
Которые передали в 1 аргумент?

Rustam
16.09.2017
18:22:32
ага

DimenSi
16.09.2017
18:22:44
А, ух, испугался, 1 в 1 редьсь же
Только ретурт не нужен, так?

Rustam
16.09.2017
18:23:07
да
первый аргумент мысленно сдвигай вместо _

DimenSi
16.09.2017
18:23:10
Работа идет через мутации.
Вроде неплохо, если уверен, что объект нигде еще не используется.

Rustam
16.09.2017
18:24:28
а если не уверен - то всегда есть cloneDeep

Google

Rustam
16.09.2017
18:25:24
в принципе в будущем от lodash останется только cloneDeep и isEqual
всё остальное в итоге внедрят в нативный JS

DimenSi
16.09.2017
18:25:59
Но с таким же успехом можно for each сделать, нет?

Rustam
16.09.2017
18:26:24
можно, но тогда ты будешь объявлять переменную заранее
а здесь она получается сразу после присвоения

DimenSi
16.09.2017
18:27:20
В общем я понял, но мы такой шум создаем из-за не с частной функции, что даже стыдно.

Victor
16.09.2017
18:28:37
а есть в лодаше и т.п. аналог редюса но с терминатором?
чтоб можно было прервать итерацию когда условие выполнено
частенько такое надо)

Rustam
16.09.2017
18:29:28
https://lodash.com/docs/4.17.4#transform
Iteratee functions may exit iteration early by explicitly returning false.

DimenSi
16.09.2017
18:29:46
Хехе

Victor
16.09.2017
18:29:49
о, круто
спс

Rustam
16.09.2017
18:30:57
lodash аналоги обычных функций я использую когда нужно пройтись по объекту как по массиву

Andrey
16.09.2017
18:31:26
Object.keys не катит?)

Rustam
16.09.2017
18:31:51
там больше строк
вообще lodash как бы придуман на то, чтобы уменьшить используемое количество строк
был у меня пример где-то со значительной экономией строк

Andrew
16.09.2017
18:54:27

Rustam
16.09.2017
18:54:56
типа _.get( object, 'property1.property2.property3', defaultValue )

Google

Rustam
16.09.2017
18:56:10
т.е. в обычном виде это было бы
if (typeof object.property1 === 'undefined' ) return defaultValue
в рекурсии по количеству свойств

Nikolay
16.09.2017
18:59:02
в babel7 добавят optional оператор

Rafael
16.09.2017
18:59:17
Наконец-то

Nikolay
16.09.2017
18:59:20
скоро можно будет property1?.property2?.property

Rafael
16.09.2017
18:59:22
А когда он?

Stanislav
16.09.2017
18:59:29

Nikolay
16.09.2017
18:59:37
stage-0

Rustam
16.09.2017
18:59:57
из того что действительно будет - это Promise.prototype.finally

Stanislav
16.09.2017
19:00:17
Уу, ну ещё не факт, что добавят в спеку

Andrey
16.09.2017
19:00:29

Rustam
16.09.2017
19:00:33
это единственная вещь которая дает значительно преимущество deferred-ам от jquery на сейчас

Andrey
16.09.2017
19:00:40
А то async await убогим будет

Rustam
16.09.2017
19:00:48

Stanislav
16.09.2017
19:00:50
Я знаю, что приватные поля в flow добавили
Которые "#"

Kelin
16.09.2017
19:17:34
вот с таким кодом и считают лодаш говном потом

Roman
16.09.2017
19:17:58
келин ты чо такой злой последние дни)

Kelin
16.09.2017
19:18:09
я всегда такой злой

Google

Roman
16.09.2017
19:18:30
не было заметно чет ?

Rafael
16.09.2017
19:18:55
Кмк async await очень удобен

Andrey
16.09.2017
19:19:15

Rafael
16.09.2017
19:20:50
Не понял твой вопрос

Andrey
16.09.2017
19:21:16
Я идиот
Да, ты прав.

Kelin
16.09.2017
19:22:47

Admin
ERROR: S client not available

Kelin
16.09.2017
19:26:18
а по поводу лодаша - не надо его юзать для всякой хуйни
1. Нахуя клонировать объект, если ты в него же кладешь изменения
2. Нахуя юзать для удаления свойств transform, если ты мутируешь объект по итогу. Достаточно forEach
3. Нахуя юзать forEach/transform, если есть omit(['headers', 'data', 'dataType'], params)
4. Нахуя юзать lodash, если lodash-fp в стократ лучше. По крайней мере, вышенаписанную дичь можно будет в отдельную функцию вынести и не мозолить глаза

Stanislav
16.09.2017
19:40:27
Очень зло)

Kelin
16.09.2017
19:45:13
Та потому что, не разобравшись, показывают всем велосипеды
А потом люди говорят, что либа юзлесс и вообще фп говно (хотя это фп и не назвать)
И спрашивают, нахуя это надо
Пример трансформа более, чем ущербный, можно было
for (let key in ['headers', 'data', 'dataType']) delete params[key]
написать, и было бы понятнее

Stanislav
16.09.2017
20:00:47
const { headers, data, dataType, ...newObject} = originalObject
:)
* c побочными эффектами правда

Google

DimenSi
16.09.2017
20:07:42

Stanislav
16.09.2017
20:08:03
Ну я б тоже в проде не стал бы так писать :)

DimenSi
16.09.2017
20:08:19
если только не { head, ...tail }

Kelin
16.09.2017
20:09:30

DimenSi
16.09.2017
20:10:28
я только не понял вообще за lodash fp
дока странная какая-та

Kelin
16.09.2017
20:17:44
Вот в этом минус, дока упоротая. Тем только общие идеи и список отличий от обычной версии
Но один доброволец на гитхабе сделал страничку с нормальной докой
Вообще лучше брать рамду. Рамда охуенна. Она изначально задумывалась для фп, в отличие от лодаша

DimenSi
16.09.2017
20:19:56
чето я не понял, а чем это отличается от обычной доки?

Kelin
16.09.2017
20:22:36

DimenSi
16.09.2017
20:23:02
а че за последнии 3 свойства?

Kelin
16.09.2017
20:25:33
короче говоря
1) всякие set итд не мутируют исходный объект
2) каррированы по дефолту - значит, что можно передавать аргументы по одному ( map(callback)(array) )
3-4) Коллбэки - первым, данные - последним
Что позволяет удобно выносить в отдельные функции типа
const getById = id => find({ id })
const summaryCost = flow(get('cost'), reduce(sum))

Stanislav
16.09.2017
20:38:55

Kelin
16.09.2017
20:39:13

Stanislav
16.09.2017
20:40:09
Его в комментариях обзывают наркоманом и евангелистом

Victor
16.09.2017
20:40:25
Мне тоже понравились его статьи)

Kelin
16.09.2017
20:40:38
Так про всех фпшников говорят

Victor
16.09.2017
20:40:47
Но доступ к его курсам оч дорогой

Roman
16.09.2017
21:14:25
как вставить в проект favicon так, чтобы пусть к нему (assets) резолвил вебпак?

Sasha
16.09.2017
21:15:30
А в статик не судьба кидать?

Roman
16.09.2017
21:16:33
нет, в проде static/static