Zauważyłem, że Node.js stał się bardzo popularny i widziałem kilka przypadków ludzi wykonujących w nim małe projekty.
Przyjrzałem się również listom zalet i wad, aby dowiedzieć się, co potrafi Node.js, ale nadal nie jestem pewien, czym różni się od innych, bardziej dojrzałych technologii po stronie serwera, takich jak PHP, Perl lub Ruby na Szyny.
Co konkretnie odróżnia Node.js od obecnych alternatyw i dlaczego?
web-development
comparison
node.js
Saeed Neamati
źródło
źródło
Odpowiedzi:
Są dwie ważne rzeczy, które odróżniają Node.js od istniejących frameworków po stronie serwera, zdarzenia asynchroniczne i użycie JavaScript jako języka programowania.
Zdarzenia asynchroniczne
Podczas gdy większość istniejących frameworków po stronie serwera wykorzystuje architekturę synchroniczną, Node.js używa architektury asynchronicznej , którą JavaScript może dobrze obsługiwać. Oznacza to, że serwer reaguje na zdarzenia i wysyła zdarzenia (wiadomości) np. Do bazy danych. Ten styl programowania różni się bardzo od stylu synchronicznego i może być trudny w użyciu w innych językach. Node.js stosuje styl asynchroniczny z asynchronicznym We / Wy i może dobrze skalować.
Zobacz także Architektura sterowana zdarzeniami
JavaScript
JavaScript jest językiem programowania używanym przez aplikacje internetowe na kliencie. Używanie tego samego języka po stronie serwera oznacza, że programista może zastosować swoją wiedzę na temat języka JavaScript zarówno na kliencie, jak i na serwerze, i używać tych samych funkcji w razie potrzeby.
Poleciłbym prezentację Wprowadzenie do Node.js z Ryanem Dahlem, w której wyjaśnia on bardziej szczegółowo architekturę sterowaną zdarzeniami w Node.js.
źródło
async
rzeczami, może się to zmienić. Problemem nie jest to, że nie można pisać skalowalnego kodu asynchronicznego w innych językach, jest to trudniejsze (poprawnie) bez dobrej obsługi języka.Jest inny, ponieważ jest sterowany zdarzeniami . Dzięki temu serwer jest wysoce skalowalny.
W skrócie;
Model wątku
Model zdarzenia
źródło
Session_Started
lubContext_Authenticated
lubPage_Load
?Odniosłem wrażenie, że jego popularność wynika z użycia JavaScript. Ponieważ wielu programistów zna JavaScript, warto sprzedać kod po stronie serwera przy użyciu tego samego języka. Ma to kilka zalet, o których mogę myśleć:
źródło