NodeJS


         Төслийн удирдагч

            Б.Ангараг
Агуулга
•   Нэртомъѐо
•   Nodejs-ийн тухай/түүх
     - Зорилго
•   Nodejs-ийн тухай болон архитектур
•   Hello World
•   Oдоогийн байдал
•   Давуу болoн сул талууд
•   Ирээдүй
•   Demo
Нэртомъѐо
•   asyncronous - синхрон биш
•   non-blocking - блоклодоггүй (үл блоклогч)
•   callback - буцах дуудлага
•   API - апликэшн програмчлахад зориулсан
    дундыннүүр?
•   Low-level - доод-түвшний
•   hacker - хакэр (server - сээрвэр)
•   concurrent - зэрэгцээ явагдах
•   version control system - хувилбар удирдах систэм
•   latency - хоцролтын хугацаа
Nodejs-ийн тухай (1)




Ryan Dahl 2009/02/16 эхэлсэн
Nodejs-ийн тухай (2)




 Isaac Schlueter npm дээр ажиллаж
2009/09/29'д эхэлсэн
Nodejs-ийн тухай (3)




Ryan @JSConf.EU 2009/11/07
Зорилго
•   синхрон биш (блоклодоггүй) -> буцах
    дуудлага
•   API нь юникс хакэрууд болон клиент-
    талын JS програм бичигсдэд илүү
    танил байх
•   платформ хамааралгүй байх
•   DNS, HTTP, TLS дэмждэг байх
•   доод-түвшний
•   хурдан байх
•   frontend сээрвэр талд ганц файл байх
Nodejs-ийн тухай
             болон архитэктүр
•   сээрвэр талын жаваскрипт
•   суурь: V8 VM
•   платформ хамааралгүй
•   одоогийн хувилбар: 0.6.8
•   LOC: 6K js, 11K C++
•   хөгжүүлэгчдийн тоо: >230
•   зэрэгцээ явагдах процэсүүд
•   үйл-явдал дээр суурилсан
•   module дээр суурьтай
     4700 гаруй модүл + өдөрт дунджаар 10
Nodejs-ийн
               module
•   mongodb
•   nowjs
•   express
•   connect
•   uploader
•   http
•   fs
•   …
Nodejs:
          Hello World

hello.js
  console.log('Hello World');

$ node hello.js
  Hello World
Nodejs'ийн одоогийн
            байдал
•   Github дээр хамгийн их дагагдсан
    агууламжын 2 дугаарт.
•   Өөрийн гэсэн блог, нэгдэл (нийгэмлэг),
    спонсор компани
Nodejs хэрэглэж байгаа
         вэвсайтууд
• Wallmart
• Yahoo! (mail)
•   LinkedIn (ВэбАп)
•   Github (татац)
•   LearnBoost
•   Palm/HP (ВэбҮС)
•   Dow Jones & Company
Давуу талууд
•   V8 VM (transcompiler)
     жаваскрип -> машинкод
•   Оролт-Гаралт блоклогдоогүй
       “Non-blocking”   “Blocking”
       L1, L2, RAM      DISK, NETWORK


    -> хоцролтын хугацаа бага
•   WebSocket
    вэбхөтөч сээрвэр хоорондын холболт
Сул тал(ууд)


•   томоохон хэмжээний файлуудтай
    ажиллахад муу
Ирээдүй
•   шинэ протокол
•   HTTP server
•   FTP
•   Web Chat, IRC (Internet Relay Chat)
•   SVN/GIT хувилбар удирдах систэм
•   mail server
•   Паралэл Оролт/Гаралт
•   бусад: вэб дээр хийгдэж болох "юм
    юм"
Зүүлт
• http://nodejs.org/cinco_de_node.pdf
• http://www.scribd.com/doc/2380189
  6/Node-js-JSConf-2009
• http://nodejs.org/jsconf2010.pdf
• http://irr.posterous.com/nodejs-by-
  rytinycloudsorg
• http://www.slideshare.net/the_unde
  fined/nodejs-
  apracticalintroductionoredev

NodeJS

  • 1.
    NodeJS Төслийн удирдагч Б.Ангараг
  • 2.
    Агуулга • Нэртомъѐо • Nodejs-ийн тухай/түүх - Зорилго • Nodejs-ийн тухай болон архитектур • Hello World • Oдоогийн байдал • Давуу болoн сул талууд • Ирээдүй • Demo
  • 3.
    Нэртомъѐо • asyncronous - синхрон биш • non-blocking - блоклодоггүй (үл блоклогч) • callback - буцах дуудлага • API - апликэшн програмчлахад зориулсан дундыннүүр? • Low-level - доод-түвшний • hacker - хакэр (server - сээрвэр) • concurrent - зэрэгцээ явагдах • version control system - хувилбар удирдах систэм • latency - хоцролтын хугацаа
  • 4.
    Nodejs-ийн тухай (1) RyanDahl 2009/02/16 эхэлсэн
  • 5.
    Nodejs-ийн тухай (2) Isaac Schlueter npm дээр ажиллаж 2009/09/29'д эхэлсэн
  • 6.
    Nodejs-ийн тухай (3) Ryan@JSConf.EU 2009/11/07
  • 7.
    Зорилго • синхрон биш (блоклодоггүй) -> буцах дуудлага • API нь юникс хакэрууд болон клиент- талын JS програм бичигсдэд илүү танил байх • платформ хамааралгүй байх • DNS, HTTP, TLS дэмждэг байх • доод-түвшний • хурдан байх • frontend сээрвэр талд ганц файл байх
  • 8.
    Nodejs-ийн тухай болон архитэктүр • сээрвэр талын жаваскрипт • суурь: V8 VM • платформ хамааралгүй • одоогийн хувилбар: 0.6.8 • LOC: 6K js, 11K C++ • хөгжүүлэгчдийн тоо: >230 • зэрэгцээ явагдах процэсүүд • үйл-явдал дээр суурилсан • module дээр суурьтай 4700 гаруй модүл + өдөрт дунджаар 10
  • 9.
    Nodejs-ийн module • mongodb • nowjs • express • connect • uploader • http • fs • …
  • 10.
    Nodejs: Hello World hello.js console.log('Hello World'); $ node hello.js Hello World
  • 11.
    Nodejs'ийн одоогийн байдал • Github дээр хамгийн их дагагдсан агууламжын 2 дугаарт. • Өөрийн гэсэн блог, нэгдэл (нийгэмлэг), спонсор компани
  • 12.
    Nodejs хэрэглэж байгаа вэвсайтууд • Wallmart • Yahoo! (mail) • LinkedIn (ВэбАп) • Github (татац) • LearnBoost • Palm/HP (ВэбҮС) • Dow Jones & Company
  • 13.
    Давуу талууд • V8 VM (transcompiler) жаваскрип -> машинкод • Оролт-Гаралт блоклогдоогүй “Non-blocking” “Blocking” L1, L2, RAM DISK, NETWORK -> хоцролтын хугацаа бага • WebSocket вэбхөтөч сээрвэр хоорондын холболт
  • 14.
    Сул тал(ууд) • томоохон хэмжээний файлуудтай ажиллахад муу
  • 15.
    Ирээдүй • шинэ протокол • HTTP server • FTP • Web Chat, IRC (Internet Relay Chat) • SVN/GIT хувилбар удирдах систэм • mail server • Паралэл Оролт/Гаралт • бусад: вэб дээр хийгдэж болох "юм юм"
  • 16.
    Зүүлт • http://nodejs.org/cinco_de_node.pdf • http://www.scribd.com/doc/2380189 6/Node-js-JSConf-2009 • http://nodejs.org/jsconf2010.pdf • http://irr.posterous.com/nodejs-by- rytinycloudsorg • http://www.slideshare.net/the_unde fined/nodejs- apracticalintroductionoredev