Chuyển đến nội dung chính

[NodeJS] Introduction

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world. 

         Why Node???

  • NodeJS là một nền tảng được xây dựng trên Chrome's V8 JavaScript engine. Mã nguồn của NodeJS chủ yếu được viết bằng C++. 
  • NodeJS không có khái niệm đa luồng, tất cả là đơn luồng và hướng dự kiện.
  • NodeJS chạy đa nền tảng phía Server.
  • Sử dụng kiến trúc hướng sự kiện Event-driven và non-blocking I/O làm cho nó nhẹ và hiệu quả.
  • NodeJS có cộng đồng phát triển rất lớn và hoàn toàn miễn phí. NPM hiện có ~700k packages.
  • Các ông lớn đang sử dụng NodeJS:
    • ebay
    • Linkedin
    • Microsoft
    • Paypal
    • Trello
    • Uber
    • etc
  • ==> Kết luận: (why?)
    • Javascript everywhere
    • Fast V8 engine
    • Lightweight: Event-driven architecture, non-blocking
    • Single Language for all layers
    • High Performance
    • Hosted anywhere
    • Easy to modify and maintain



Nhận xét

Bài đăng phổ biến từ blog này

KĨ THUẬT LẬP TRÌNH

Nhân cái ngày mưa gió này làm cái blog vui :) Dựa trên đề cương ôn tập môn Kĩ thuật lập trình (Programming Technique) của thầy Trịnh Thành Trung 1. Thứ tự thực hiện các phép toán trong C 1.1 Vi ết chương trình nhập các tham số tương ứng và tính giá trị các biểu thức sau    int a,b,c,d;    a=b=c++=d=10;    in ra a,b,c,d    a=b=++c=d=10;    in ra a,b,c,d    Giữ nguyên đoạn code trên, sửa dòng khai báo thành   int a,c,d,b; chạy chương trình và xem kết quả và đưa ra nhận xét  Trong biểu thức gán  a=b=c++=d=10; (1) a=b=++c=d=10; (2) khi cho vào trình biên dịch chạy (như của mình là TDM GCC 4.9.2 64bit Release) thì biểu thức (1) sinh ra lỗi, trình biên dịch thông báo   "[Error] lvalue required as left operand of assignment" , biểu thức (2) không sinh ra lỗi, console hiển thị các giá trị a=b=c=d=1. Lý giải như sau : Trong C++ có 2 kiểu trả về là tham trị (value) và tham chiếu (reference) :  Đối với biểu thức hậu tố (postfix), sau khi t

[Operating System] PROCESS SYNCHRONIZATION PROBLEM

Operating SYsTem PROCESS SYNCHRONIZATION PROBLEM S ummarize Details some process synchronization problems that popular. Guide Teacher DR. Pham Dang Hai Đàm Minh Tiến - 2017 INTRODUCTION In   computer science ,   synchronization   refers to one of two distinct but related concepts: synchronization of   processes , and synchronization of   data .   Process synchronization   refers to the idea that multiple processes are to join up or   handshake   at a certain point, in order to reach an agreement or commit to a certain sequence of action.   Data synchronization   refers to the idea of keeping multiple copies of a dataset in coherence with one another, or to maintain   data integrity . Process synchronization primitives are commonly used to implement data synchronization. This document will intro some sychronization pr

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

Bài viết dựa trên cuốn sách "Cấu trúc dữ liệu và thuật toán" của thầy Nguyễn Đức Nghĩa - Đại học Bách Khoa Hà Nội. " Nhân cái ngày mà người người nhà nhà ôn thi như thế này, sau khi đọc hết cuốn sách, mình nghĩ sao không thử viết 1 cái blog, vừa để chia sẻ mà lại ôn tập " I. CÁC KHÁI NIỆM CƠ BẢN: Trong phần này chủ yếu nói đến các khái niệm về thuật toán và đánh giá. Định nghĩa:  Thuật toán là một dãy hữu hạn các bước để từ đầu vào thu được đầu ra mong muốn. Đánh giá thuật toán dựa trên 2 tiêu chí cơ bản là :  Tài nguyên máy tính Thời gian thực hiện (số phép toán thực hiện) => Sau đây chỉ nói về thời gian thực hiện:  Có 3 loại thời gian tính:  Thời gian tính tốt nhất (tiệm cận dưới) : loại này ít được quan tâm Thời gian tính trung bình  Thời gian tính tồi nhất (tiệm cận trên) : BIG-O  => Sau đây chỉ nói về Big-O:        Big O được hiểu là thời gian tính tồi nhất của một thuật toán (worst case) hay ý nghĩa hình học của