In che modo Node.js è diverso dagli altri framework lato server?

21

Ho notato che Node.js è diventato molto popolare e ho visto diverse istanze di persone che eseguivano progetti su piccola scala.

Ho anche esaminato i pro e i contro-elenchi per avere un'idea di cosa può fare Node.js, ma non sono ancora chiaro su come si differenzia da altri, più maturi tech lato server come PHP, Perl, o Ruby on Rails.

Che cosa, in particolare, differenzia Node.js dalle alternative attuali e perché?

    
posta Saeed Neamati 09.09.2011 - 16:58
fonte

3 risposte

18

Ci sono due cose importanti che rendono Node.js diverso dai framework server-side esistenti, dagli eventi asincroni e dall'uso di JavaScript come linguaggio di programmazione.

Eventi asincroni

Sebbene la maggior parte dei framework lato server esistenti utilizzi un'architettura sincrona, Node.js utilizza un'architettura asincrona , che JavaScript può gestire bene. Ciò significa che il server reagisce agli eventi e invia eventi (messaggi) ad es. il database. Questo stile di programmazione è molto diverso da uno stile sincrono e può essere difficile da usare con altri linguaggi. Node.js utilizza uno stile asincrono con IO asincrono e può scalare bene.

Vedi anche Event Driven Architecture

JavaScript

JavaScript è il linguaggio di programmazione utilizzato dalle applicazioni Web sul client. L'uso della stessa lingua sul lato server significa che lo sviluppatore può applicare le sue conoscenze JavaScript sia sul client che sul server e utilizzare le stesse funzioni necessarie.

Raccomando la presentazione Introduzione a Node.js con Ryan Dahl dove spiega l'evento Node.js- architettura guidata in modo più dettagliato.

    
risposta data 09.09.2011 - 19:23
fonte
6

È diffrente perché è event-driven . Ciò rende il server altamente scalabile.

In poche parole;

Modello di thread

  1. Il client chiede qualcosa
  2. Il server si spegne ed elabora la richiesta
  3. restituisce al client
  4. Pronto per elaborare una nuova richiesta

Modello di evento

  1. Il client chiede qualcosa
  2. Il server passa la richiesta per l'elaborazione. Pronto per elaborare una nuova richiesta
  3. Il server gestisce più richieste man mano che arrivano
  4. Server restituisce i dati al client quando la richiesta ha terminato l'elaborazione
risposta data 09.09.2011 - 17:47
fonte
2

Ho avuto l'impressione che la popolarità fosse dovuta all'uso di JavaScript. Poiché molti sviluppatori Web conoscono JavaScript, è un punto di forza che ora possono sviluppare codice lato server utilizzando la stessa lingua. Questo ha alcuni vantaggi che posso pensare:

  • I file di codice possono essere condivisi tra server e client, evitando la duplicazione dello sforzo solo per gestire i due lati del sistema.
  • Gli sviluppatori non hanno bisogno di cambiare mentalmente le lingue. (non è un grosso problema secondo me)
  • Gli architetti non hanno bisogno di scegliere più lingue per progettare una soluzione web.
  • Qualcuno che non ha mai sviluppato il codice lato server può ora farlo senza imparare una lingua diversa. (Non è probabile che sia un argomento valido, IMHO)
risposta data 09.09.2011 - 18:54
fonte

Leggi altre domande sui tag