Автор Гілка: Node.js 8.0.0  (Прочитано 2335 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3432
  • Програміст
Node.js 8.0.0
« : 2017-05-31 17:17:56 »
Представлений реліз Node.js 8.0.0 , платформи для виконання високопродуктивних мережевих додатків на мові JavaScript. Node.js 8.0 відноситься до гілок з тривалим терміном підтримки, але цей статус буде надано тільки в жовтні, після проведення стабілізації. Час випуску оновлень для LTS-гілок становить 4 роки. Підтримка минулої LTS-гілки Node.js 6.0 триватиме до 2020 року, а позаминулої LTS-гілки 4.x до квітня 2018 року. Підтримка проміжної гілки Node.js 7.0 буде припинена в липні 2017 року.

З поліпшень в Node.js 7.0 зазначається оновлення двигуна V8 до версії 5.8, в якій реалізована нова схема компіляції, з використанням інтерпретатора Ignition і JIT-компілятора Turbofan . Нова схема примітна підвищенням продуктивності виконання JavaScript-додатків і зниженням витрат пам'яті. В V8 5.8 також представлений новий підхід до стабілізації - ABI даної версії буде сумісний з V8 5.9 і 6.0, що дозволить реалізувати оновлення движка V8 до нових випусків в рамках життєвого циклу гілки Node.js 8.x.

Серед інших змін:

— Новий Node.js API ( N-API ), що дозволяє створення доповнень до Node.js на Сі, не прив'язаних до JavaScript runtime і які є частиною Node.js. Для подібних доповнень буде забезпечений постійний ABI, що дозволяє без перекомпіляції використовувати додаток з різними версіями Node.js і навіть з різними JavaScript-двигунами (V8 і Chakra-Core);
— Додана експериментальна підтримка асинхронних обробників (модуль async_hooks), через які можна виконувати моніторинг операцій в циклі обробки подій, відстежувати асинхронні запити і повністю контролювати весь життєвий цикл роботи програми;
— У класі URL забезпечена повна підтримка стандарту WHATWG, що визначає вимоги до оформлення URL і API для розбору URL, що представляється браузерами;
— У класі Buffer представлена серія нових методів формування буфера, таких як Buffer.alloc(), Buffer.allocUnsafe() і Buffer.from(). При виклику застарілого конструктора Buffer(num) програмі тепер виділяється очищений блок пам'яті (раніше пам'ять не ініціалізувалася, що могло призвести до витоку залишкових даних). Для виділення пам'яті без очищення, яке помітно знижує продуктивність, запропонований метод Buffer.allocUnsafe(num);
— Представлений новий API util.promisify(), що надає обв'язку над штатним API на основі callback-викликів для функцій, які повертають Promise;
— У console.log(), console.error() і інших методах модуля console з'явилася можливість перенаправлення виведення в stdout, stderr і безіменні канали. Помилки в процесі виведення тепер ігноруються, а для повернення старої поведінки (вихід з програми) в конструктор Console додана опція ignoreErrors;
— Додана опція "--redirect-warnings={file}" і змінна оточення "NODE_REDIRECT_WARNINGS={file}" за допомогою яких можна перенаправити в файл попередження, наприклад про виклик застарілих можливостей, раніше виведені в stderr;
— В Stream API додані нові способи завершення або обриву потоку. Кожен екземпляр об'єкта тепер включає метод destroy(), реалізація якого може бути змінена через створення методу _destroy();
— Замість застарілого CLI-відладчика, до складу runtime доданий інструмент node-inspect. Доданий експериментальний JavaScript API для інспектування роботи процесів Node.js з використанням протоколу Inspector;
— До складу включений новий випуск пакетного менеджера npm 5.0.0.

Нагадаємо, що платформа Node.js може бути використана як для серверного супроводу роботи Web-додатків, так і для створення звичайних клієнтських і серверних мережевих програм. Для розширення функціональності додатків для Node.js підготовлена велика колекція модулів, в якій можна знайти модулі з реалізацією серверів і клієнтів HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модулі для інтеграції з різними web-фреймворками, обробники WebSocket і Ajax, драйвери для СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонізатор, CSS-двигуни, реалізації криптоалгоритмів і систем авторизації (OAuth), XML-парсер.

Для забезпечення обробки великого числа паралельних запитів Node.js задіює асинхронну модель запуску коду, засновану на обробці подій в асинхронному режимі і визначенні callback-обробників. В якості засобів мультиплексування з'єднань підтримуються такі методи, як epoll, kqueue, /dev/poll і select. Для мультиплексування з'єднань використовується бібліотека libuv, яка є надбудовою над libev в системах Unix і над IOCP в Windows. Для створення пулу потоків (thread pool) задіяна бібліотека libeio, для виконання DNS-запитів в асинхронному режимі інтегрований c-ares . Всі системні виклики, що викликають блокування, виконуються всередині пулу потоків і потім, як і обробники сигналів, передають результат своєї роботи назад через безіменний канал (pipe). Виконання JavaScript-коду забезпечується через залучення розробленого компанією Google двигуна V8 (додатково Microsoft розвиває варіант Node.js з двигуном Chakra-Core).

За своєю суттю Node.js схожий на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted і реалізацію подій в Tcl, але цикл обробки подій (event loop) в Node.js прихований від розробника і нагадує обробку подій в web-додатку, що працює в браузері. При написанні програм для node.js необхідно враховувати специфіку подієво-орієнтованого програмування, наприклад, замість виконання "var result = db.query("select ...");" з очікуванням завершення роботи та наступною обробкою результатів, в Node.js використовує принцип асинхронного виконання, тобто код трансформується в "db.query("select ...", function (result) {обробка результату});", при якому управління миттєво перейде до подальшого коду, а результат запиту буде оброблений в міру надходження даних. Жодна функція в Node.js не повинна безпосередньо виконувати операції введення/виводу — для отримання даних з диска, від іншого процесу або з мережі потрібна установка callback-обробника.

Джерело: http://www.opennet.ru/opennews/art.shtml?num=46630 .
« Змінено: 2017-05-31 19:49:21 від Володимир Лісівка »
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3432
  • Програміст
Re: Node.js 8.0.0
« Відповідей #1 : 2017-05-31 18:00:35 »
Чи цікавлять людей переклади з opennet? Звідти легко перекладати, а статті там наповнені технічною інформацією.
[Fedora Linux]

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1256
  • [Debian Stretch]
Re: Node.js 8.0.0
« Відповідей #2 : 2017-05-31 19:10:30 »
Чи цікавлять людей переклади з opennet?
Але ж не машинні.

  • минулого LTS-гілки
  • движка
  • Новий Node.js API


Більше детально не читав, але загалом виглядає кострубато — багато "заснований на" і подібних не дуже природніх оборотів.

Відсутній f1g4r0

  • Кореспондент
  • ***
  • дописів: 160
  • Vita sine libertate, nihil!
Re: Node.js 8.0.0
« Відповідей #3 : 2017-05-31 22:34:48 »
а LOR будемо перекладати?
*[ Ніхто крім нас ] *                        //Arch + dwm + SVD

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3432
  • Програміст
Re: Node.js 8.0.0
« Відповідей #4 : 2017-05-31 22:49:02 »
а LOR будемо перекладати?
А там є щось цікаве? Я там вже більше 5-ти років не був. :-/
[Fedora Linux]

Відсутній f1g4r0

  • Кореспондент
  • ***
  • дописів: 160
  • Vita sine libertate, nihil!
Re: Node.js 8.0.0
« Відповідей #5 : 2017-06-01 23:46:37 »
а LOR будемо перекладати?
А там є щось цікаве? Я там вже більше 5-ти років не був. :-/


це був сарказм.. імхо, переклади новин з руззькє - моветон.. якщо рузькє не являється першоджерелом , звичайно.
*[ Ніхто крім нас ] *                        //Arch + dwm + SVD

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3432
  • Програміст
Re: Node.js 8.0.0
« Відповідей #6 : 2017-06-01 23:51:35 »
це був сарказм.. імхо, переклади новин з руззькє - моветон.. якщо рузькє не являється першоджерелом , звичайно.
Переклад перекладу — це дуже погано, згоден.  [smiley=whitevoid_1.gif] Який варіянт тоді кращий? Просто кидати посилання на англомовні ресурси, як на HackerNews? Писати щось своє, що зранку в голову прийде?
[Fedora Linux]

Відсутній kisil

  • Графоман
  • ****
  • дописів: 348
Re: Node.js 8.0.0
« Відповідей #7 : 2017-06-02 08:57:22 »
Я не проти переперекладу цікавих і корисних новин.

Відсутній recht

  • Кореспондент
  • ***
  • дописів: 125
Re: Node.js 8.0.0
« Відповідей #8 : 2017-06-02 11:03:17 »
Та хоч би якісь новини аби активність була.

Відсутній prapor

  • Письменник
  • *****
  • дописів: 518
Re: Node.js 8.0.0
« Відповідей #9 : 2017-06-02 18:17:14 »
Як на мене, то варто писати «унікальний контент». Тобто саме те «що вранці влізло в голову» та посилання на першоджерело.
- I'm afraid your son has the knack.
- The knack?
- The knack. It's a rare condition characterised by an extreme intuition about all things mechanical and electrical. And utter social ineptitude.
- Can he lead a normal life?
- No, he'll be an engineer.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3432
  • Програміст
Re: Node.js 8.0.0
« Відповідей #10 : 2017-06-02 18:30:59 »
Як на мене, то варто писати «унікальний контент». Тобто саме те «що вранці влізло в голову» та посилання на першоджерело.
Я зараз цікавлюся війною, історією, політикою і філософією, квантовою фізикою, англійською мовою, і rust-ом. Війна, політика і квантова фізика відпадають. Rust тільки частково по тематиці підходить. :-/ За англійську навіть не знаю що сказати — я її просто вчу, трохи спробував автоматизувати але знайшлися кращі, вже готові рішення (текст читає плагін SpeakIt, розпізнає перекладач Ґуґла на телефоні або у невеличка програма у Хромі, тестую свої знання на різних сайтах).

Що з цього я можу тут писати?
[Fedora Linux]

Відсутній f1g4r0

  • Кореспондент
  • ***
  • дописів: 160
  • Vita sine libertate, nihil!
Re: Node.js 8.0.0
« Відповідей #11 : 2017-06-02 20:17:03 »
Як на мене, то варто писати «унікальний контент». Тобто саме те «що вранці влізло в голову» та посилання на першоджерело.
Я зараз цікавлюся війною, історією, політикою і філософією, квантовою фізикою, англійською мовою, і rust-ом. Війна, політика і квантова фізика відпадають. Rust тільки частково по тематиці підходить. :-/ За англійську навіть не знаю що сказати — я її просто вчу, трохи спробував автоматизувати але знайшлися кращі, вже готові рішення (текст читає плагін SpeakIt, розпізнає перекладач Ґуґла на телефоні або у невеличка програма у Хромі, тестую свої знання на різних сайтах).

Що з цього я можу тут писати?

під «що вранці влізло в голову» було сприйнято як власне тлумачення, короткий огляд, переклад, тощо... але точно не генерація есссе на довільну тему з елементами застосування квантової зброї у війні філосовських поглядів за місце в історії.
*[ Ніхто крім нас ] *                        //Arch + dwm + SVD