
Nikolay добряш
20.06.2016
11:25:29
Чет я вроде как думал его ассерт заменяет

Andrey
20.06.2016
11:25:31
throw в функции все так же убивает оптимизацию ?

Yan?
20.06.2016
11:25:53
Вероятно где-то тут близко ответ на мой вопрос
throw в функции все так же убивает оптимизацию ?

Google

Nikolay добряш
20.06.2016
11:26:13
Посоны
Поясните мне за го
Пришел на сопеседование
Компетентный чел полил ноду и монгу говном
С ног до головы
Монгу то ладно
А вот ноду то за что

Roman
20.06.2016
11:26:48
не
так

Nikolay добряш
20.06.2016
11:26:52
Назвал всего одну килер фичу

Roman
20.06.2016
11:26:54
пиши

Nikolay добряш
20.06.2016
11:27:17
Еще один спидврайт хейтер

Vladimir
20.06.2016
11:27:32
не throw убивает оптимизации

Google

KlonD90
20.06.2016
11:27:37
А где asyncawait есть? Модулями какими-то поверх?

Nikolay добряш
20.06.2016
11:27:37
Которая типа пишеш один код на сервере и на клиенте
Но это ж миф

Vladimir
20.06.2016
11:27:42
а try … catch

Yan?
20.06.2016
11:27:47
ну тут все-таки с каждым днем нас все более дохуя поэтому придется по одному сообщению все же писать

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

Vladimir
20.06.2016
11:28:27
отдавать функции данные так, чтобы она не падала например

KlonD90
20.06.2016
11:28:28
go > nodejs очевидно

Andrey
20.06.2016
11:28:41

Nikolay добряш
20.06.2016
11:29:27
Так а что она врапит? Возникновение ошибки?

Vladimir
20.06.2016
11:29:41
https://github.com/petkaantonov/bluebird/wiki/Optimization-killers
плюс на русском http://frontender.info/optimization-killers/

Nikolay добряш
20.06.2016
11:30:30
Тогда такой вопрос
Какие таски можно вешать на ноду а какие нет

Alexey
20.06.2016
11:31:15
в целом, если это не касается тяжелых вычислений, то нода вполне ок

Nikolay добряш
20.06.2016
11:31:40

Yan?
20.06.2016
11:31:47
@sullenor Тяжелых это какие порядки?

Roman
20.06.2016
11:31:56
а try … catch
есть кейсы, например подгрузить вероятно отсутствующий модуль дешевле так, чем проверять fs-ом сначала

Alexey
20.06.2016
11:32:00
например 40mb данных замаппить раз 5

Google

Alexey
20.06.2016
11:32:13
а по факту считать над

Nikolay добряш
20.06.2016
11:32:39

Alexey
20.06.2016
11:33:04
когда ты загружаешь процесс, он перестает отвечать на внешние запросы. В результате можно просесть по RPS, так как пока воркер занят, на новый запрос будет отвечать следующий и т.п.
пока не закончатся
поэтому, для синхронных тяжелых вычислений это плохо подходит, так по нагрузке просядешь в конечном счете
https://events.yandex.ru/lib/talks/1502/

Vladimir
20.06.2016
11:34:52
для меня основная проблема в throw - отсутствие статической типизации

Alexey
20.06.2016
11:34:59
там разбирают как event loop работает в nodejs
не очень понятно как связана статическая типизация с throw
да и по сути в самом языке ее нет

Vladimir
20.06.2016
11:37:19
Естественно, проблема в том, что она теоретически невозможна

Alexey
20.06.2016
11:37:27
ну да
круто же

Vladimir
20.06.2016
11:37:47
очень круто, когда throw null прилетает
а у тебя e.stack в лог идет

Alexey
20.06.2016
11:38:31
ну так проверь вначале, что у тебя ошибка является инстансом Error
и кидай

Vladimir
20.06.2016
11:39:04
ну также и про аргументы можно сказать, проверяй в каждой функции каждый аргумент
и все ок

Alexey
20.06.2016
11:39:29
я просто не понимаю, какой смысл кидать не Error через throw

Google

Alexey
20.06.2016
11:39:41
стактрейс пропадет, согласен
скорее всего в каком-то месте не обрабатываешь ошибку корректно

Vladimir
20.06.2016
11:40:47
Проблема даже не в этом, на это можно и забить
Но рассчитывать можно максимум на Error
Нельзя рассчитывать что тебе прилетит MyCoolError с набором интересных свойств
Так там может быть и ReferenceError, и SyntaxError, и вообще что угодно

Alexey
20.06.2016
11:42:22
да, может
но ты их всегда можешь разделить
последние чаще всего линтеры отлавливают на этапе разработки
и тесты
хотя не всегда

Roman
20.06.2016
11:43:26

Vladimir
20.06.2016
11:43:39
ну это само собой

Denis
20.06.2016
12:30:17
https://keylocation.sg/our-tech/debugging-nodejs-in-docker-using-node-inspector

Roman
20.06.2016
12:35:42

trump ? trump ? hillary
20.06.2016
13:33:20
help
Request path contains unescaped character

Evgeny
20.06.2016
13:33:49
ну помоги ему сбежать, будь мужиком

trump ? trump ? hillary
20.06.2016
13:34:03
как?
я не знаю какое экранизирование тут нужно

Artur
20.06.2016
13:40:09
Экранизация романа encodeURI :)

Google

trump ? trump ? hillary
20.06.2016
13:40:33
оно не работает
было encodeURIComponent сначала, тоже не работало
поменял на просто encodeURI - тоже самое
код https://github.com/alexu84/bing-translate/blob/master/lib/bing-translate.js

Artur
20.06.2016
13:47:05
А полный стэк ошибки есть?
А то не понятно куда там смотреть

trump ? trump ? hillary
20.06.2016
13:48:25
лол
я сейчас попробовал в REPL запустить
и заработало
ага, узнал, что оно из-за пробелов не работает

Artur
20.06.2016
13:53:46
encodeURIComponent вроде должен его в %20 преобразовывать.
Или там где-то недоэйскейпил?

trump ? trump ? hillary
20.06.2016
13:54:29
я не знаю
надо посмотреть на строку которая выходит после экранизации
а, все логично
проблема с регекспом ?

Artur
20.06.2016
14:04:34
Казалось бы, при чем здесь кодировка урлов)

Никита
20.06.2016
14:49:41
@iamstarkov Optimization killers несколько протух, надо бы поправить.
А что перевод на русский будут поддерживать в актуальном состоянии — я вообще сомневаюсь.

Andrey
20.06.2016
14:52:09

Никита
20.06.2016
14:52:30
Вывод первого же куска кода давно поменялся.