Sobes.tech
Middle

Koje su bile glavne tehničke ideje koje su bile osnova za kreiranje Node.js?

sobes.tech АИ

Одговор од АИ

Основне идеје Node.js:

  1. Неблокирајући унос/излаз (Async I/O): Коришћење асинхроног модела операција уноса/извоза уместо традиционог блокирајућег. Ово омогућава Node.js-у ефикасно обрађивање великог броја истовремених веза без стварања посебног тока за сваки захтев, што значајно смањује трошкове преласка контекста и коришћења меморије.

    // Пример асинхроног читања фајла
    const fs = require('fs');
    
    fs.readFile('file.txt', 'utf8', (err, data) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log(data);
    });
    
    console.log('Ова линија ће се извршити пре завршетка читања фајла'); // Илустрација неблокирајућег понашања
    
  2. Једнонишка архитектура: Основни циклус догађаја (Event Loop) Node.js ради у једном току за обраду захтева. Неблокирајући унос/излаз омогућава овом једном току да не буде безделан у очекивању завршетка операција, већ да обрађује друге задатке, што повећава перформансе при високим оптерећењима.

  3. Циклус догађаја (Event Loop): Фундаментални механизам који управља асинхроним операцијама. Он стално проверава ред догађаја и шаље их на обраду када је стек позива слободан. Библиотека libuv одговара за имплементацију циклуса догађаја и интеракцију са оперативним системом.

  4. JavaScript као главни језик: Коришћење JavaScript-а омогућава програмерима да користе један језик како на фронтенду (у прегледачу), тако и на бекенду (на серверу), поједностављујући развој и поновну употребу кода.

  5. Модуларни систем (CommonJS): У Node.js је реализован модуларни систем (првобитно базиран на CommonJS, сада такође подржан као ES Modules), који омогућава разбијање кода на мале, поновно коришћене модуле, што доприноси бојој организацији и одрживости кода.

    // export.js
    exports.myFunction = () => {
        console.log('Здраво од модула!');
    };
    
    // import.js
    const myModule = require('./export');
    myModule.myFunction(); // Позив функције из увезеног модула
    
  6. Виртуелна машина V8: Коришћење високопроизводне виртуелне машине V8 од Гугл-а (исте која се користи у Chrome-у) за извршавање JavaScript кода. Ово обезбеђује високу брзину извршавања и стална побољшања у перформансама захваљујући напорима Гугл-а.

  7. Фокус на скалабилне мрежне апликације: Node.js је у почетку креиран са циљем да олакша развој високопроизводних и скалабилних мрежних апликација, као што су веб сервери и API.