Таймураз
А что такого в восьмой ноде?
Асинки с нормальной производительностью
Ohar
и всё таки: какой валидатор лучше использовать в nodejs? Мне надо русскую дату проверить
Если ты про пользовательский ввод, то я бы через moment перегонял к нужному формату и проверял
Ohar
ну как то не очень мне кажется хранить файлы в папке тест
У меня в папке test две подпапки scripts и stubs как раз из-за этого.
Anonymous
Спасибо!
Таймураз
А, эти странные ребята
И чем странные?
Anonymous
я так понимаю это заглушки? в моем случае это и есть файлы для теста?
Anonymous
я просто только недавно начал тестировать
Anonymous
все норм, кроме вот этой ситуации
Anonymous
где хранить, надо ли вообще хранить такие штуки или есть другая практика
Ohar
И чем странные?
Ну мне очень странно видеть как вводится функционал, маскирующий асинхронный код под синхронный и все этому радуются. Наверное я чего-то не понимаю.
Ohar
Маскирующий? В каком месте?
М-м-м, если он делает не это, то тогда что?
Таймураз
Сокращает количество кода, но не маскирует
Таймураз
Async await в коде как бы намекают
Ohar
Сокращать код за счёт его понятности — сомнительная идея на мой взгляд
Таймураз
Ну вижу ничего непонятного, хз
Дима
Пишут на виртуальной машине для виртуальной x86 архитектуры и недовольны новому уровню абстракции)
Таймураз
Я меньше чем за год освоил спеку, почти всю если не всю
Таймураз
Ничего сверхъестественного
Таймураз
Эти абстракции ускоряют скорость разработки и чтения кода Другое дело- порог входа
Ohar
Ну вижу ничего непонятного, хз
Понятная спека ≠ понятный код Я больше про то что код на промисах совершенно явно асинхронный. А на async/await — нет, он очень похож на синхронный, что увеличивает возможность его перепутать с асинхронным по невнимательности и сделать глупую ошибку, а потом её долго исправлять.
Ohar
Это понятно, но если есть возможность не увеличивать вероятность ошибки — её не надо увеличивать
Таймураз
Я вот отлаживаю код на колбеках, и мне тяжелее его отлаживать, чем на асинках/ промисах
Таймураз
Ну как можно не заметить await?)
Ohar
Колбэки — ад, тут согласен
Ohar
Очень просто — ВЖУХ — и не заметил
Ohar
Как-то ещё бывает?)
Vladimir
тогда к доктору надо
Таймураз
Это как код читать надо
Denis
Это как код читать надо
так бывает когда превышаешь пик балмера
Ohar
Да return wtf ? 123 : someAsyncFn()
Это не делает его синхронным
Ohar
Promise.resolve(true) — не становится синхронным из-за того, что резолвится в true
Дима
Я не понимаю, в чём проблема условиться, что весь участок кода асинхронный изначально)
Ohar
Я не понимаю, в чём проблема условиться, что весь участок кода асинхронный изначально)
В том, что об этом надо помнить. И наличие промиса тебя постоянно это напоминает. А async/await — не постоянно.
Vint
Это не делает его синхронным
"Псевдо". Т.е. можно наступить на те же виртуальные грабли, о которых было выше. Промисы и a/a спасают нас от необходимости следить за тем, чтобы функции всегда были строго синхронными или асинхронными. Как это было раньше с необходимостью делать process.nextTick в случае синхронного выхода.
Ohar
Сделай eslint правило no-sync-function какой нибудь, будет напоминать)
Ну вот это уже решение получше, но на самом деле нет, ибо увеличивает работу.
Vint
Увеличивает работу написание большего числа буковок для реализации того же алгоритма.
Ohar
"Псевдо". Т.е. можно наступить на те же виртуальные грабли, о которых было выше. Промисы и a/a спасают нас от необходимости следить за тем, чтобы функции всегда были строго синхронными или асинхронными. Как это было раньше с необходимостью делать process.nextTick в случае синхронного выхода.
Можно, конечно, но, имхо, по невнимательности с промисами это сделать сложнее. >Как это было раньше с необходимостью делать process.nextTick в случае синхронного выхода. Я, к счастью, тогда про ноду только слышал)
Ohar
Так че async в начале функции не напоминает?)
Напоминает, но не так заметно
Михаил Макарычев
И да, https://github.com/yagop/node-telegram-bot-api - эта штука jQuery в мире написания ботов?
Можете ещё это посмотреть: https://github.com/telegraf/telegraf
Ohar
Увеличивает работу написание большего числа буковок для реализации того же алгоритма.
А это не очень важно хотя бы потому что написание кода занимает намного меньше времени, чем чтение.
Vint
Можно, конечно, но, имхо, по невнимательности с промисами это сделать сложнее. >Как это было раньше с необходимостью делать process.nextTick в случае синхронного выхода. Я, к счастью, тогда про ноду только слышал)
Так по невнимательности можно куда больше в логике приложения накосячить, нежели потерять асинхронность. К счастью... Если сейчас пишешь модуль для npm и он на коллбеках основан, то всё равно так надо делать. Потому что потом кто-нить не завернёт это в промисы на своей стороне и получит грабли.
Ilnur
ну или что-то на подобие async = func => () => setTimeout(func.bind(this, ...arguments), 0)
Ilnur
😂
Vint
А это не очень важно хотя бы потому что написание кода занимает намного меньше времени, чем чтение.
Меньше буковок - меньше писать, меньше читать и всё такое. Вон сегодня выше был пример с async из книги. То же самое можно и на промисах накидать, в смысле по объёму. А потом стреляться. Вертикальная портянка на a/a больших размеров будет всё равно читабельнее, ибо линейная)
Ohar
Возможно, у меня синдром утёнка с промисами. надо таки поковырять async/await
Vint
Возможно, у меня синдром утёнка с промисами. надо таки поковырять async/await
Я вот первый проект на них пишу. Сначала думал нафиг, привык к промисам же. Теперь код в 1.5 раза меньше и сплю лучше.
Ohar
Брат жив?
Vint
Да! Две минуты назад как раз в гости приехал)
Ohar
Тогда точно надо попробовать)
Vint
Тем более, что на ноде это нынче нативно. Вот фронтендерам приходится бабелем обмазываться и всё такое. На это мне страшно смотреть.
А ВОТ ТЕПЕРЬ ПАБЛИК
а как с перфомансом?
Vint
а как с перфомансом?
Как обычно - тормозит БД, ORM, редиска, и всё остальное. И уже в последний момент мой личный код.
Vint
А так - вон выше сегодня были графики с ускорениями на последних версиях v8.
Павел
люди добрые, помогите настроить разрабатываемый модуль так, чтоб на него смотрело несколько локальных проектов, и чтоб из каждого проекта можно было этот модуль редактировать/дорабатывать? Кто-то так делает?
Павел
Можно просто ткнуть мою морду в обычную документацию
Михаил Макарычев
А может кто посоветовать модуль для работы с ботами whatsapp? Нашёл только один, да и то он дохлый какой-то
Zaur
В вотсап можно писать ботов?
Павел
В вотсап можно писать ботов?
если нельзя, то ты не будешь?
Zaur
если нельзя, то ты не будешь?
Не, я спрашиваю есть ли технически такая возможность )) с нормальным апи и без танцев с бубнами
Evgeny
npm link
ln -s, зачем npm link то?
Zaur
Без танцев - нет
Есть где почитать про танцы?
Павел
ln -s, зачем npm link то?
ты это используешь - и это работает? Просто чтоб я был уверен, что так действительно можно. А то я засомневался.
Evgeny
Да, у меня это используется как локально, так и в докере
Evgeny
npm link частенько творил херню, а ln -s нормально работает