Aleksand
а что не так с libevent?
по кросс-платформенности и скорости несравнима с libuv, нода подарила миру супер-быструю и переносимую библиотеку, которую притащили в python, rust, lua, .net. в python она кстати быстрее чем в nodejs, для которого была создана.
Aleksand
плюс libuv умеет эффективно файлы и треды, это очень мощное преимущество
Anonymous
спасибо
Aleksand
libevent же дает инвентарь уровня 5-7 летней давности, это совсем никуда
Nurik
Бенчмарки - вещь странная. В блоге по PHP всегда графики показывают, что PHP быстрее любого языка. В блоге по Python, node.js и пр. аналогично
Согласен. Но PHP это другое. Он просто изначально построен так, что всегда умирает. Демонизация в нем вызывает дискомфорт лично у меня.
Aleksand
спасибо
https://github.com/mfornos/awesome-microservices вот тут по всей инфраструктуре, не только про ноду
Kons
Ах, опередил ))
Anonymous
ну в awesome пихают все подряд, везде полно откровенного шлака
Aleksand
ну в awesome пихают все подряд, везде полно откровенного шлака
это наоборот круто, там списки всего что может привлечь внимание, я могу натурально неделями висеть в репе изучая и анализируя пригодность каких-то вещей для моей задачи, очень набивает широту кругозора и интуицию в будущем
Nurik
всмысле "эффективен"?
Ну я имел ввиду, что за те же ресурсы, получаем ту же производительность. Т.е. они могут конкурировать на одинаковых задачах.
Roman
по кросс-платформенности и скорости несравнима с libuv, нода подарила миру супер-быструю и переносимую библиотеку, которую притащили в python, rust, lua, .net. в python она кстати быстрее чем в nodejs, для которого была создана.
во-первых, там много нюансов, начиная с только что poll watchers в винде умеют только сокеты и заканчивая тем что максимальное разрешение таймеров огрубляется до 1ms.
Roman
Ну я имел ввиду, что за те же ресурсы, получаем ту же производительность. Т.е. они могут конкурировать на одинаковых задачах.
сильно зависит от. обслуживание event loop не бесплатное и в cpu bound задачах это будет видно. если же сравнивать nodejs и python(в лице pypy), то нода быстрее(но можно накорябать сишное расширение).
Aleksand
всмысле?
в прямом, epoll, например, не умеет файлы, в линуксе вообще асинхронная работа с файлами очень плохая, без переносимой и хорошо абстрагированной либы с минимальным оверхедом относительно системных вызовов никак. libuv это отлично делает
Roman
там же iocp давно есть
и? причем тут poll watchers?
Roman
если же про готовность чтения/записи, то обычный файл всегда готов
Aleksand
>epoll, например, не умеет файлы умеет, через inotify
раньше не умел никак, а с какой версии ядра? чтение/запись всегда неблокирующаяся?
Nurik
сильно зависит от. обслуживание event loop не бесплатное и в cpu bound задачах это будет видно. если же сравнивать nodejs и python(в лице pypy), то нода быстрее(но можно накорябать сишное расширение).
Ну так не нужно cpu bound. Изначально вроде event loop заточен под io bound. cpu bound задачи, должны вроде решаться за пределами event loop, если я правильно понял концепцию.
Roman
если нет - да, процесс будет заблокирован и это решается пулом потоков в который сгружаются такие операции
Roman
libuv именно так и делает.
Aleksand
libuv именно так и делает.
этим он и хорош, а есть где почитать подробно про epoll -inotify? я не знал про это
Aleksand
если нет - да, процесс будет заблокирован и это решается пулом потоков в который сгружаются такие операции
вот в питоне asyncio (uvloop) файлы не умеет, там тоже с файлами надо работать через потоки, вот это совсем плохо когда нужно писать логику и продукт а приходится познавать особенности ядра (хотя это и интересно очень)
Sergio
Господа, шалом. кто-нибудь фиксил 503 ошибку при фетче поста с клиента на сервер в heroku? На локале все норм. Деплоится на хероку тоже норм но как только тригерю фетч все крашится с 503. React-express
Aleksand
с аддонами прям прорыв, наконец эта жесть с api закончится может
Konstantin
О, пришёл с новостями, а вы уже
Roman
То есть импорт стейтменты опять не сделали(
Roman
Да, уже 2 года не родят никак
Aleksand
почему?
Aleksand
так у любого сахара есть свой аналог, сахар не нужен?
Михаил Макарычев
Как удобнее подключать модули в node.js? import – 21 👍👍👍👍👍👍👍 49% require – 17 👍👍👍👍👍👍 40% Не знаю – 5 👍👍 12% 👥 43 people voted so far.
Sergey
лол ты видимо плюсов import не знаешь)
Aleksand
лол ты видимо плюсов import не знаешь)
увы они полностью не заменяют require, нет поддержки динамических импортов априори
Sergey
увы они полностью не заменяют require, нет поддержки динамических импортов априори
лол так в этом и суть, что импорты становятся статическими === более поддерживаемыми
Sergey
а для динамических есть import().then
Sergey
а то как в php
Sergey
куча хаков и хрен разберешься как работает, иногда
Aleksand
а для динамических есть import().then
вот да, это нужная вещь очень
Yaroslav 🇺🇦
Я что то пропустил, import из коробки пошел в 8?
Sergey
ну смысл все-таки синтаксический больше
ну да, что до исполнения файла знаешь экспорты
Sergey
можно построить дерево зависимостей файлов
Aleksand
так, а babel подерживает import().then?
Sergey
синтаксис да
Sergey
вебпак умеет нативно
Sergey
для бабеля есть модули трансформа
Sergey
npmjs.com/babel-plugin-import-node
Aleksand
для бабеля есть модули трансформа
только хотел попробовать от него в новых репах отказаться и снять уровень сложности но видимо нет, бейбл пока еще решает
Sergey
можно минимизировать его влияние оставить только для модулей и object-rest-spread
Sergey
https://github.com/atomixinteractions/createrest/blob/master/.babelrc типа так
Aleksand
можно минимизировать его влияние оставить только для модулей и object-rest-spread
да, но это не меняет сильно картины, тащить babel-runtime, babel-core, babel-node и кучу все равно придется, а кое-где упарываться чтобы это все потом еще из ванильного js нормально можно было использовать
Aleksand
имею только babel-cli и babel-core не тащу babel-{runtime,node}
а вебпак конфиг на чем? на ваниле?
Sergey
да
Sergey
module.exports = function(env) { return {} }
Władimir (Zae)
фильм?
Sergey
Пассажиры, Криминальное чтиво, Выживший, Джон Уик, 1 + 1, Двойник, Люси, Робот по имени Чаппи продолжать?
Władimir (Zae)
ну прикроет конечно, так бы мы успели обменяться словеньями и он бы удалил
Władimir (Zae)
а так На дороге норм
Aleksand
да
вот я тащу рантайм чтобы вебпак организовать через бейбл, и сделать хорошую структуру конфигурации а не просто наколбасить в один файл все в кучу как часто бывает
파쇼크
Присоединяюсь, нормас сериал
Yaroslav 🇺🇦
американские боги
V
А у нас конфиг чертёж консул рулится, пришлось правда свою обертку для получения конфигов написать, но в целом нормас
V
Через
Андрей
Всем доброй ночи. Буду благодарен за совет. Подскажите, каким образом верно выстроить архитектуру проекта. Суть - типа медиа-хранилища. Пользователь выбирает исполнителя, ему предоставляется список его треков. Далее выбирает трек, и уже через тег аудио, или другой плеер прикручу, он воспроизводится. Загрузка треков и создание новых сущностей через админку буду делать. Так вот вопрос, как и где правильнее хранить контент и вести список доступных исполнителей. Спасибо.
Roman
Можно просто по хешу в каталоге
Roman
А что с ними?
Андрей
Файлов не более 10 для каждого, размер не более 10мб также
Андрей
Исполнителей +- 100
Андрей
Про object storage не слышал, погуглю