@nodejs_ru

Страница 368 из 2748
Aleh
25.11.2016
10:46:22
:s/yield/await

Котяй Негодяй
25.11.2016
10:46:31
Удобнее так: const res1 = await demo1(100); const res2 = await demo2(res1); const res3 = await demo3(res2); Или const res3 = await demo1(100) .then(demo2) .then(demo3);

Законом не запрещено.

Сергей
25.11.2016
10:46:51
второй вариант ИМХО проще и приятнее

Google
Aleksey
25.11.2016
10:47:00
Не знаю, мне мешать не нравится.

Котяй Негодяй
25.11.2016
10:47:14
Suika
25.11.2016
10:47:29
соберу воедино: кто пишет тесты под ноду, что используете? что удобнее?

Aleksey
25.11.2016
10:48:04
Котяй Негодяй
25.11.2016
10:48:10
Пишу на mocha+chai+proxyquire

Хм, нафига?
Эвэйт работает с промисом. Если тебе нужно вписать в эту парадигму какой-то асинхронный интерфейс, который принимает только колбэки, тебе придётся завернуть его в промис.

Хм, нафига?
И вообще, async/await — просто сахар над промисами.

Vladislav
25.11.2016
10:49:45
Вопрос. Есть ли возможность чтобы одним из webRTC клиентов был nodejs сервер. Который бы доставлял по socket.io видео поток клиентам остальным. и была бы возможность доставлять видео-поток пользователям с IOS. Ибо их обедили WebRTC. И просто так доставить им видео не выходит. HLS&ffmpeg не совсем то. Так как задержка очень большая выходит. Нужен реальный совет, а не просто первые ссылки с гугла. Буду оч. благодарен.

Котяй Негодяй
25.11.2016
10:50:11
Лол.

Сергей
25.11.2016
10:51:25
И? Отдельная arrow fn или обычная fn.
давно выяснили коллбеки говно ))

Google
Suika
25.11.2016
10:51:51
Пишу на mocha+chai+proxyquire
а нафига столько?

Котяй Негодяй
25.11.2016
10:54:36
а нафига столько?
Мокка — запуск тестов, чай — ассерт-библиотека, proxyquire — заглушки для зависимостей тестируемого модуля.

Aleh
25.11.2016
10:55:47
sinon еще

Yusup
25.11.2016
10:57:24
> proxyquire фу какая гадость

Сергей
25.11.2016
11:05:23
мне интересно все знают о флаге --inspect?

Котяй Негодяй
25.11.2016
11:12:57
Yusup
25.11.2016
11:14:01
Передавать зависимости параметрами функции или конструкторы

Котяй Негодяй
25.11.2016
11:15:01
То есть, даже fs и request нужно будет передавать как параметр? Лол.

И только ради тестирования настолько усложнять код?

Yusup
25.11.2016
11:17:56
Тут нет усложнения

Работал так на нескольких проектах

Брат жив

Пробовал rewire

Котяй Негодяй
25.11.2016
11:18:31
Тут нет усложнения
Пример кода бы.

Yusup
25.11.2016
11:18:41
Оказалось, что он не работает, когда у тебя наследование

А injection hell случается, когда в коде плохие абстракции

Котяй Негодяй
25.11.2016
11:19:17
Yusup
25.11.2016
11:19:43
То есть если ты передаешь 10 зависимостей, то значит, у тебя плохой дизайн

А модули это всего лишь неймспейсы

Google
Котяй Негодяй
25.11.2016
11:20:03
А injection hell случается, когда в коде плохие абстракции
Да, в любом случае, где-то в коде есть место, где ты передаёшь зависимость.

Yusup
25.11.2016
11:20:16
Не надо через require инжектить пожалуйста

Котяй Негодяй
25.11.2016
11:22:16
Я вижу только один адекватный путь — передавать зависимости перед объявлением модуля, объявляя модуль как функцию.

В то же самое время, где-то в коде будет место, где я делаю так: import fs from 'fs'; import myModuleInit from './my-module'; const myModule = myModuleInit({ fs }); С myModule всё понятно, но как ЭТОТ код тестировать?

Объявлять так же, как myModule? Тогда список зависимостей ближе к верхнему уровню будет расти.

Ну и нафиг оно нужно?

Aleh
25.11.2016
11:34:34
тут скорее надо знать границу

lodash и moment например нет смысл подменять

Felix
25.11.2016
11:35:49
Котяй Негодяй
25.11.2016
11:36:04
Депенси инъекшн — это не повсеместный подход. Он хорош там, где зависимость заменяема и имеет стандартный внешний интерфейс.

Aleh
25.11.2016
11:36:09
fs тоже очень зависит, а например сервис, который на базе фс реализует какой-нибудь репозиторий - есть

Котяй Негодяй
25.11.2016
11:36:15
Иначе нафига?

fs тоже очень зависит, а например сервис, который на базе фс реализует какой-нибудь репозиторий - есть
Мне кажется, всегда нужно менять то, что обращается к неизвестным данным.

Неизвестные данные — те, которых нет в репозитории.

БД, файлы, соединения, прочая фигня.

Депенси инъекшн — это не повсеместный подход. Он хорош там, где зависимость заменяема и имеет стандартный внешний интерфейс.
Продолжая эту мысль, повсеместное применение этого подхода приведёт к неоправданному усложнению.

KlonD90
25.11.2016
11:56:39
хорошо что google amp использует drake hotline bling в качестве примера iframe'а

call me on my cell phone

Google
KlonD90
25.11.2016
12:06:48
как не повсеместный? :(

надо на flow переходить или typescript

попроще же будет

Дмитрий
25.11.2016
12:07:04
Но тебе всегда требуется делать всё своим особым костылём, так что я даже не удивлен уже)

Vladimir
25.11.2016
12:10:09
> @klond90 надо на flow переходить или typescript

Не дай бог кто удалить Трампа еще раз

Admin
ERROR: S client not available

KlonD90
25.11.2016
12:10:48
хилари фаны кругом? :(

Дмитрий
25.11.2016
12:12:10
Хороший президент ?

Vladimir
25.11.2016
12:12:41
Стикеры вне политики

Это просто стикеры

Дмитрий
25.11.2016
12:42:13
Ну вот так

Aleh
25.11.2016
12:42:38
чуваки в jest юзают аналог proxyquire

Котяй Негодяй
25.11.2016
12:45:04
Если тебе требуется proxyquire, значит ты делаешь что-то не так
Вот мне нужно протестировать одну функцию, которая вызывает другую и использует возвращаемый ею результат. Если я не подменю эту зависимость, то тесты упадут как в случае ошибки как в зависимом коде, так и в коде зависимости. Я считаю, что ты сразу должен видеть, где возникла ошибка, и ображаться она должна только на тестах той функции, где она возникла.

Anton
25.11.2016
12:51:43
надо на flow переходить или typescript
имхо, тогда смысл теряется писать на ноде. ты можешь взять язык, где типизация из коробки, без всяких обмазываний костылями-транспайлерами. исключение разве-что, если задачи гвоздями прибита к экосистеме и все должно быть на ноде тоже.

KlonD90
25.11.2016
12:52:24
flow это не транспайлер.

Ҫѐҏӗѫӑ
25.11.2016
12:52:26
для ноды лучше взять flow имхо

Google
Ҫѐҏӗѫӑ
25.11.2016
12:52:37
чтобы быть уверенным в выходном коде

для фронта тс лучше

KlonD90
25.11.2016
12:54:48
ну и вообще без статических ошибок в рантайме ловить ошибки очень геморойно и стремно лучше уж совсем глупые опечатки и т.д. убирать :/

Ҫѐҏӗѫӑ
25.11.2016
12:56:56
flow это не транспайлер.
технически - транспайлер

Дмитрий
25.11.2016
12:56:58
В js есть либы для рантайм типизации, только ими никто не пользуется

Ҫѐҏӗѫӑ
25.11.2016
12:57:12
они не нужны

Alexey
25.11.2016
12:57:54
типо assert?

Дмитрий
25.11.2016
12:57:55
Это тождественно

типо assert?
Нет, типизация , а не ассерт

KlonD90
25.11.2016
12:58:32
рантайми типизация это не круто же

ну где-нибудь где ты ждешь ответа от базы или каких-то левых источников ок а в своем же коде такие штуки вводить чот стремно

Alexey
25.11.2016
12:59:26
кажется описание json схемы актуальнее

для данных с внешнго сервиса

KlonD90
25.11.2016
13:04:55
ну по сути да transpiler в реальности же код не удаляется ничего от себя не добавляет тьфу тьфу

Котяй Негодяй
25.11.2016
13:05:04
KlonD90
25.11.2016
13:05:27
Optional ?

монады <3

Дмитрий
25.11.2016
13:06:08
Ну это и в js есть

Причём даже не один вариант

Страница 368 из 2748