
Denis
20.06.2016
10:27:21
Надо что-то из этих значений возвращать :)
Я же думал из сообщений, что там рандом эффект)
Уже руки зачесались твит оформить

Roman
20.06.2016
10:28:26
Так а почему разный результат каждый раз?

Google

Никита
20.06.2016
10:29:19
Так потому что исходный массив разный каждый раз.

マイク
20.06.2016
10:31:54

Roman
20.06.2016
10:32:20
Бля сори
Тупой)

Denis
20.06.2016
10:33:06
Be Immutable. Be Without Side-Effects.
Don't Use JS in Production [tm]

Roman
20.06.2016
10:33:22
Подбешивает конечно что половина методов мутабельны половина нет

Vladimir
20.06.2016
10:36:29
это бесит в дизайне js

Denis
20.06.2016
10:37:47
Налицо война кланов "DX first" и "Efficient Memory Usage first" :)

Roman
20.06.2016
10:38:04
Мне после мапов и фильтров в голове не могло прийти что сорт мутабельный

Denis
20.06.2016
10:38:51
Видимо, ты ещё не добрался до splice и slice :)

Google

Denis
20.06.2016
10:39:19
Мне кажется это самые две злые шутки в JS

Vladimir
20.06.2016
10:39:24
самые ужасные методы
что-то есть от пхп в них

Denis
20.06.2016
10:39:49
Что-то от дьявола да

Roman
20.06.2016
10:41:07

KlonD90
20.06.2016
10:43:53
учитывая как тормозят map/filter и forEach иже с ним то то что хоть сорт не тормозит радует
а хотя с функцией передаваемой и тот тормозит

Alexey
20.06.2016
10:52:45
> @raxwunter
чуваки, что за дичь
скорее всего у тебя false трактуется как 0 и элементы не меняются в этом случае, хотя должны
вообщем согласен с Денисом и лучше явно -1 / 1 возвращать

Roman
20.06.2016
10:54:28

KlonD90
20.06.2016
10:58:03
По-моему же была статья недавно что в v8 учитывается только больше 0

Alexey
20.06.2016
11:00:05
я больше доверяю https://developer.mozilla.org/
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

KlonD90
20.06.2016
11:02:31
https://github.com/v8/v8/blob/950d2051a5ff065a5bc1d31f0e5d1bba850d0b3c/src/array.js#L898-L907 лучже уж на код посмотреть.
но это чет старая версия
https://github.com/v8/v8/blob/56ea2f973133a26998f6ba2cc1fb35a0fa679835/src/js/array.js#L755

Alexey
20.06.2016
11:05:31
лучше на конечную реализацию в браузере
причем, как я понимаю, ты показываешь вариант, когда используется дефолтный sort без указанного компаратора

Nikolay добряш
20.06.2016
11:08:12
Научите в красивый код на ноде
Задолбался уже

Google

Roman
20.06.2016
11:08:58

Nikolay добряш
20.06.2016
11:09:12
Я уже начал
А кто такое сказал?

Alexey
20.06.2016
11:09:41
хз

Nikolay добряш
20.06.2016
11:09:58
Да хейтить ноду тупо же
Чето же она умеет
Но голечка некоторые вещи лучше делает все равно

Yan?
20.06.2016
11:10:37
нода говно однако 280 человек зачем-то тут сидят)

Nikolay добряш
20.06.2016
11:10:51
Ну сириусли
Я устал уже как нормальную архитектуру сделать в ноде?

Vladimir
20.06.2016
11:11:28
Как красиво и безопасно писать на ноде, краткая инструкция

Nikolay добряш
20.06.2016
11:11:33
Давай

Roman
20.06.2016
11:11:48

Vladimir
20.06.2016
11:12:10
Используй flow, async-await, комбинируй классы и функции
Не используй глобалы и синглтоны

Nikolay добряш
20.06.2016
11:12:21
Вот петросян

Vladimir
20.06.2016
11:12:26
Пиши тесты для всего
Используй DI

Nikolay добряш
20.06.2016
11:12:37

Google

Nikolay добряш
20.06.2016
11:12:48
Часто их не видно нихера из нутри а передать надо

Vladimir
20.06.2016
11:12:52
Не используй в своем коде эвент эмиттеры и стримы
Используй чистые функции где возможно
Никода не используй throw

Alexey
20.06.2016
11:14:15
воу
при условии что в ноду сложена событийная модель, ты предлагаешь не использовать eventEmitter. Почему?

Konstantin
20.06.2016
11:15:35
waat ? почему не использовать ивент эмиттеры?

Alexey
20.06.2016
11:15:42
и стримы?

Konstantin
20.06.2016
11:15:53
не используй javascript

Alexey
20.06.2016
11:15:59
а как ты контент стримишь клиенту?

Vladimir
20.06.2016
11:16:17
Событийная модель приводит к очень грязному и сложному коду, когда в рандомных местах выставляются флаги, а потом в других рандомных местах они влияют на результат
У эвент эмиттеров нет четкого жизненного цикла - для каждого объекта нужно понимать, когда он жив, а когда он умер, и что делать дальше

Nikolay добряш
20.06.2016
11:16:53

Vladimir
20.06.2016
11:17:04
async await
Стрим естественно нужны, но только для того чтобы отдавать результат
То есть не нужно строить всю логиу на стримах

Nikolay добряш
20.06.2016
11:18:10
А есть книги где более подробно то гасчет архитектуры конкретно пишется

KlonD90
20.06.2016
11:18:12
хз чет фигня какая-то использовать async await которого нет и потом не понимать как в реальности выглядит твой код

Nikolay добряш
20.06.2016
11:18:16
Что гуд что нет

Alexey
20.06.2016
11:18:18
сомнительно как-то

Google

Vladimir
20.06.2016
11:18:28
Обработка ошибок стримов и избегание различных утечек это не то, о чем хочется постоянно думать
async await вполне себе есть

Nikolay добряш
20.06.2016
11:18:48
Ну вы предлагайте свой мод
Пока пак инструкций антиговнокодеринга выглядит следующим образом :
Используй flow, async-await, комбинируй классы и функции
Не используй глобалы и синглтоны
Пиши тесты для всего
Используй DI
Не используй в своем коде эвент эмиттеры и стримы
Используй чистые функции где возможно
Никода не используй throw

Roman
20.06.2016
11:20:07
извините я опять о больном, кто юзает чистый сорт, где вы его берете? у lodash по ходу нет кастомной функции сравнения 2 элементов, только мап значний

Vladimir
20.06.2016
11:20:27
arr.slice().sort()
чистый сорт)

Roman
20.06.2016
11:21:39

Yan?
20.06.2016
11:22:59
меня может закидают тут сразу, но можно узнать почему throw никогда не использовать?
попытался загуглить не увидел ярких предупреждений о том что его надо сторониться

Roman
20.06.2016
11:23:25
но я бы не говорил так категорично

Nikolay добряш
20.06.2016
11:24:30
Я даже не знаю что такое троу
Так что я пока чист
Он ексепшены райзит?

Yan?
20.06.2016
11:25:07
throw new Error('WOW')
типа такого да