URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 107732
[ Назад ]

Исходное сообщение
"Выпуск серверной JavaScript-платформы Node.js 6.0"

Отправлено opennews , 28-Апр-16 22:27 
Представлен (https://nodejs.org/en/blog/release/v6.0.0/) релиз Node.js 6.0.0, платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript. В октябре ветка Node.js 6.x получит статус стабильного выпуска с длительным сроком поддержки (LTS), обновления для которого будут выпускаться в течение 30 месяцев. LTS-ветки предлагаются для сложных промышленных внедрений, крупных предприятий и тех, для кого стабильность имеет первоочередное значение. Поддержка прошлой ветки Node.js 5.x будет осуществляться ещё два месяца, LTS-ветка 4.x будет поддерживаться ещё год.


Из новшеств Node.js 6.0 отмечаются значительные оптимизации производительности, например, загрузка модулей ускорена почти в 4 раза. Добавлены новые конструкторы (https://github.com/nodejs/node/pull/4682) для API Buffer (Buffer.from(), Buffer.alloc() и Buffer.allocUnsafe()). В API File System представлены более эффективные реализации вызовов fs.realpath() и fs.realpathSync(). Расширены средства обработки ошибок. Движок V8 обновлён до версии 5.0, в которой обеспечена поддержка 93% возможностей  JavaScript, определённым в спецификации ECMAScript 6 (https://www.opennet.me/opennews/art.shtml?num=42450).

URL: https://nodejs.org/en/blog/release/v6.0.0/
Новость: http://www.opennet.me/opennews/art.shtml?num=44337


Содержание

Сообщения в этом обсуждении
"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 28-Апр-16 22:27 
как запустить несколько воркеров на Nodejs спрятав их за nginx?
как вообще работают с NodeJS, запускают несколько инстансов?  

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Отражение луны , 28-Апр-16 22:38 
Кластеры херачат, но обычно нет надобности.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 28-Апр-16 22:45 
> как запустить несколько воркеров на Nodejs спрятав их за nginx?
> как вообще работают с NodeJS, запускают несколько инстансов?

читай за микросервисы, контейнеры и программные стеки основанные на этом. Там целая занятная отрасль хипстопрограммирования.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 28-Апр-16 23:35 
Можно кластерами, можно нафоркать мастер процесс.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено angra , 28-Апр-16 23:46 
Для начала надо спросить себя: "а нужно ли это делать?". Все-таки нода это не пых, 10k для нее не проблема, так что не стоит переносить на нее старые практики.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 28-Апр-16 23:59 
Когда хайлод проще разделить на кластеры - у фронта свой, у api второй, у фоновых задач (планировщик к примеру) - третий и т.д.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 06:43 
> Все-таки нода это не пых, 10k для нее не проблема

Это вы в учебнике вычитали или данные для hello world?


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Анон1 , 29-Апр-16 06:58 
Ясно, что хелловорлд, да только пых у меня 16К-20K тянет при таком раскладе(если тестить с ab). Ноду не тестил, да и вообще, что толку от хелловорлд-то?

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Georges , 29-Апр-16 08:19 
Кому нужен Highload на PHP, выбирают решения от 1C-Bitrix .

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено menangen , 29-Апр-16 08:23 
Анальный зонд от русских эффективных менеджеров?

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Georges , 29-Апр-16 08:49 
Да, на ноде такое пилить и пилить.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Бугога , 29-Апр-16 13:59 
Так тонко, что аж толсто ^_^

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 15:00 
Кому нужен highload вообще не выбирают PHP.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено angra , 29-Апр-16 14:31 
16К-20K в минуту? Вполне может быть, но речь то шла про количество одновременных соединений. Кстати ab для тестирования подобных нагрузок не годится, он на это не рассчитан и создать ее не сможет.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 20:44 
На собственном опыте скажу что да, иногда надо. Например у меня на проекте нагрузки около 50к запросов в секунду в среднем, при этом надо еще всякую логику считать и базу ходить. Нода то выдерживает но ядра процессора имеют предел на количество операций, так что когда ядро занято на 100% быстрее работать на нем уже не получится, поэтому логично кластеризоваться по количеству ядер (например на процессоре с 8 ядрами можно сделать 8 процессов)

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 07:16 
для этого нодэжснутые придумали себе костыль

https://nodejs.org/api/cluster.html


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 30-Апр-16 15:45 
>> для этого нодэжснутые придумали себе костыль

Школьник-иксперд в ветке! Всем преклонить колено!


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено arzeth , 29-Апр-16 19:58 
Я использую pm2 — очень хорошая штука. Даже переписывать ничего не надо — pm2 сам как-то делает так, чтобы несколько инстансов могли использовать один и тот же порт. Ведёт логи, автоматически перезапускает инстанс, если он сдох или съел N МБ оперативки.

1) pm2 ecosystem создаст ecosystem.json
2) затем подправить под себя ecosystem.json (см. http://pm2.keymetrics.io/docs/usage/application-declaration/ )
3) pm2 start ecosystem.json запустит приложение.
4) Теперь каждый раз, когда демон pm2 стартует, это приложение будет запускаться.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 20:48 
Я тоже им пользуюсь в некоторых случаях (кстати разделение портов работает за счет того, что он стандартным нодовским модулем cluster процессы запускает), но при высоких нагрузках в десятки тысяч запросов в секунду иногда случалось так что падал основной процесс pm2 со всеми дочерними, приходилось еще поверх него супервизор лепить, так что иногда имеет смысл настроить кластеризацию самому, особенно когда нужно очень гибкое управление каждым отдельным процессом

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено жопошник 2 , 29-Апр-16 07:21 
> платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript

Ребят, я правильно понимаю, что в мире дотнета роль ноды должен выполнять кестрел?


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 30-Апр-16 03:47 
На винфак.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 14:25 
Как-то тостили мы наш back-end на Java для проверки хайлода по запесям в Hadoop. Взяли значит Node.js v5, форкнули на 4 ядра и начали слать POST запросы, avg ~ 136 000 в минуту выходило :)

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 22:07 
Это около 2к в секунду, что то маловато, нода вполне по 10к на ядро может, хотя от внутренней логики зависит

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 14:34 
Глядя на комменты вспомнил древний анекдот:
Подходит сын к папе и спрашивает:
-Папа, а что такое многозадачность?
-Погоди, сынок, вот оформатирую дискетку и расскажу.

Всё-таки при всех этих паттернах проектирования, доктринах, и прочих наворотах для удобства, я лично предпочитаю си, и правила реализации, с префиксами в функциях и с разделением по файлам различных методов.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 18:09 
клоун: Уверен, что это лучший вариант?

Посмотрим на ЯП абстрактно.

Есть переменные.

Есть структуры. Структуры могут иметь методы, позволяющие обращаться к переменным этой структуры.

struct test_s
{
  int x;

  void set(int y) {x=y;}
}

test_s s;
s.set(10);

Можно создать структуру вообще без переменных (это называют namespace).

struct test_s
{
  void print() {...};
}

test_s::print();

В некоторых модулях (частях модуля; помним про область видимости), где часто используются функции можно написать "use test_s" и дальше обращаться к её функциям без указания имени структуры.

Добавим права доступа к структуре, причём как на переменные, так и на функции: public можно использовать из вне, protected только из методов самой структуры. Добавим наследование структур (классов) и третий тип доступа - private - то, что не должно наследоваться. Разрешим возможность вызова всех отнаследованных функций, т.е. если s1 порождает s2, а s2 порождает s3, то можно вызвать любую из функций: s1::func(), s2::func(), s3::func(), this::func(), parent::func().

Интересно, что при таком подходе стирается разница между функциональным и объектным программированием, теперь это лишь наше желание засовывать функцию внутрь структуры или нет.

ЯП позволяют такое? Хрен. struct, class, namespace, static - хотя всё это одно и то же. Или идея, что "всё есть класс", когда даже void main() пихают в класс - зачем?

А ЯП позволяют хранить идентификатор класса вместе с классом? Т.е. у меня L1, хранящий ссылки на родительский класс (геометрическая фигура), значениями которого являются наследники (круг, квадрат, треугольник). Я хочу рисовать их

while(ptr)
{
  ptr->print();
  ptr = ptr->next;
}

Проблема в том, что в большинстве ЯП будет вызвана функция print() родительского класса (фигура), а не наследника. И вместо print() придётся городить switch(), знающий про всех наследников и выбирающий нужного (== приводящий типы). Вот делать мне, программисту, больше нечего: добавил здесь, подправил там, не забыл дописать здесь - где удобство от использования ООП. Где?

---

В С/С++ принято разделять файлы заголовков (h) и реализации (c, cpp). Зачем? Чтобы исправлять не в одном месте, а в двух? Какой смысл в правиле, что объявление должно идти до использования: компилятор не может второй проход сделать и нагружает этой работой человека? Не иначе.

---

Я "свой" ЯП так и не нашёл. То одно не так, то в другом косяк. Везде ты не программируешь сущности, а занимаешься мелочёвкой, заботясь и помня тысячи мелочей + особенности их реализации в конкретном ЯП.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 29-Апр-16 20:54 
>Я "свой" ЯП так и не нашёл. То одно не так, то в другом косяк.

Методичку-то осиль до конца, дурачок, там написано, что твой язык - C#.
P.S. безграмотный пост безграмотен.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено anon2 , 29-Апр-16 22:34 
> В С/С++ принято разделять файлы заголовков (h) и реализации (c, cpp). Зачем?
> Чтобы исправлять не в одном месте, а в двух? Какой смысл
> в правиле, что объявление должно идти до использования: компилятор не может
> второй проход сделать и нагружает этой работой человека? Не иначе.

Для того, для чего и в джаве выделяют интерфейсы и классы их реализующие. Абстрагирование интерфейса от реализации упрощает реализацию сложных систем.
В итоге, и в джаве, и в сях получается по два файла на класс/модуль.



"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 30-Апр-16 01:49 
клоун: Так пишут в книжках, не объясняя за счёт чего достигается упрощение и чем повторение одного и того же дважды проще, чем написание этого один раз.

Открою секрет: хидер элементарно генерится из реализации. Разделяя на два файла ты не абстрагированием занимаешься, а фигнёй страдаешь, набирая код дважды и следя чтобы он в обоих файлах был идентичным.

Не всё, что является привычным, является нужным и полезным.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено anon2 , 30-Апр-16 09:03 
> клоун: Так пишут в книжках, не объясняя за счёт чего достигается упрощение
> и чем повторение одного и того же дважды проще, чем написание
> этого один раз.
> Открою секрет: хидер элементарно генерится из реализации. Разделяя на два файла ты
> не абстрагированием занимаешься, а фигнёй страдаешь, набирая код дважды и следя
> чтобы он в обоих файлах был идентичным.

Упрощение достигается а счет абстрагирования (уменьшения количества информации, с которой приходится работать программисту).
В реализации гораздо больше информации, чем в интерфейсе.

С++, кстати, провоцирует добавить в объявление класса private секцию с информацией о реализации, в отличие от С, где внутренние static-функции не добавляются в интерфейсный хедер.

Тоже в джаве.
А ведь для того, чтобы работать с классом не нужно видеть его реализацию.
Это, конечно, решается с помощью интерфейсов, но городить на каждый класс по интерфейсу...
Поэтому авто-генерится документация по джава-классам, читай авто-хедер такой.

Что удобнее - работать с вручную отредактированной документацией (C-хедером), к тому же проверяемой компилятором, или с авто-генерённой документацией - это ещё вопрос.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 30-Апр-16 02:04 
клоун: А отсутствие в сях нормальной реализации include once вынуждает заниматься ещё одной фигнёй:

#pragma once
#ifndef FILENAME
#define FILENAME

........

#endif

Тоже будешь обосновывать его необходимость, рассказывая сказки про великую мощь сишного препроцессора?

То, что ты вынужден набирать руками в каждом файле один и тот же код говорит о том, что ЯП в этой части не доработан и не продуман.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено anon2 , 30-Апр-16 09:09 
>[оверквотинг удален]
> #pragma once
> #ifndef FILENAME
> #define FILENAME
> ........
> #endif
> Тоже будешь обосновывать его необходимость, рассказывая сказки про великую мощь сишного
> препроцессора?
> То, что ты вынужден набирать руками в каждом файле один и тот
> же код говорит о том, что ЯП в этой части не
> доработан и не продуман.

То, что ЯП позволяет реализоввывать на нём сложные системы, говорит от том, что ЯП продуман для реализации таких систем.

#pragma once - не нужно
#ifndef FILENAME - не напрягает.

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


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 30-Апр-16 09:41 
клоун: Мда...

Два подключения подряд - и ты получишь гарантированную ошибку.

#include "file.h"
#include "file.h"

Если бы include работал как include once, ошибки бы не возникло.

Обратное не верно: нет ни одной ситуации, когда требуется несколько раз инклюдить один и тот же файл.

Получается, что ЯП создан так, чтобы провоцировать ошибки.

И ты считаешь, что это нормально. Мда... Я даже не хочу смотреть на остальной твой код. Я заранее знаю: таких "особенностей" в нём будет много, потому что ты привык так мыслить и не понимаешь ошибочности собственного мнения.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Прошраммист , 30-Апр-16 11:10 
Товарищ, вы лучше бросайте программирование, не ваше это, хотя для вас как раз JavaScript и создан.

В си нужно понимать, что делаешь и когда ты поймёшь  этот язык, тогда и сможешь себя назвать программистом.
Разделение на h и c? В чем проблема? Какой ещё дубляж?
Благодаря этому разделению ты можешь сделать идеальный black box, описывая в h лишь название функции которые можно вызывать, скрывая всю реализацию.
Я лично терпеть не могу языки программирования где все смешанно в одном файле.  Это полный п*****  разбираться  в этой куче.


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 30-Апр-16 15:29 
клоун: с возрастом, наверное, приходит... Лет через 20 поймёшь. Или когда выучишь штук 30 ЯП разных типов, каждый из которых будешь использовать по работе - тогда придёт понимание что в одном ЯП есть, а чего в другом нет. А когда ты знаешь 1 (прописью: один) ЯП, который тебе 3 года вдалбывали на лекциях и лабораторных, да, такое тяжело потом выходит.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 01-Май-16 01:32 
>Обратное не верно: нет ни одной ситуации, когда требуется несколько раз инклюдить один и тот же файл.

Давай ты не будешь делать такие категоричные заявления, а пойдешь изучать пхп? Зачем тебе няшная сишечка?

Инклюдом одного файла в ней делается кодогенерация  макросами
https://habrahabr.ru/post/154811/


"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено angra , 30-Апр-16 04:45 
Ты путаешь С и С++, функциональное и процедурное программирование. Не разобрался в наследовании и полиморфизме. Рассуждаешь то о конкретном ЯП, то о ЯП вообще, при этом не имея понятия о катастрофических различиях в реализации ООП парадигмы в них. При таком ниасиляторстве не удивительно , что ты не нашел "свой" ЯП.

"Выпуск серверной JavaScript-платформы Node.js 6.0"
Отправлено Аноним , 30-Апр-16 19:46 
Респект ребятам! Хорошую вещь пилят...
а мы тут потихоньку на ней свою пилим..
:)

П.С. лицензии блюдем.. ибо свято!