Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tai ką dabar darysime su node.js?...

Tai ką dabar darysime su node.js?...

Kodėl JS? Kodėl nodejs? Kam tinka nodejs? Kam netinka ir kodėl ne-nodejs?

Dominykas Blyžė

January 09, 2013
Tweet

More Decks by Dominykas Blyžė

Other Decks in Programming

Transcript

  1. Bet kuri programa, kuri gali būti parašyta su JS, bus

    parašyta su JS. Atwood'o taisyklė / Atwood's law http://www.codinghorror.com/blog/2007/07/the-principle-of-least-power.html
  2. Kodėl JS? Mažiausiai investicijų reikalaujanti kalba Pasiekiama kiekvienam Vykdoma visuose

    kompiuteriuose, visose OS ...išskyrus serverius (nes serveriuose yra PHP?)
  3. Kodėl JS? “ everybody hates Perl, and not everybody hates

    JavaScript. ” https://twitter.com/horse_js/status/288352517744644096
  4. Kodėl JS, nepaisant jos šlykštumo? Nes nėra kitos išeities. WAT:

    https://www.destroyallsoftware.com/talks/wat
  5. Kas buvo prieš node.js? Server-side Non-browser JS istorija: ASP /

    Active Scripting (~1995?) Rhino (~1997) Adobe Air (~2007) Jaxer (~2008)
  6. Kodėl node.js: API konvencijos Paskutinis argumentas - callback'as Pirmas argumentas

    - klaida f s . r e a d F i l e ( f n , [ e n c o d i n g ] , [ c a l l b a c k ] ) f s . r e a d F i l e ( f n , f u n c t i o n ( e r r , d a t a ) { / * . . * / } ) ;
  7. Kodėl node.js: npm 20k+ modulių Išspręsta versijų problema Modulis A

    @ v1 Modulis B @ v1 Modulis A @ v2 Modulis C @ v3 Modulis B @ v2 Modulis A @ v666
  8. Kam tinka node.js? "Node's goal is to provide an easy

    way to build scalable network programs" http://nodejs.org/about/
  9. Serveriai ...net jei atrodo baisu "pačiam" rašyti savo HTTP serverį

    Nebūtina viską atlikinėti to pačio request'o metu
  10. Kai reikia daug CPU, geriau nenaudoti Kol vyksta skaičiavimai, event

    loop sustoja. p r o c e s s . n e x t T i c k ( ) Workers Memoization Streams
  11. API vis dar nestabilus v1 gal ir ne už kalnų,

    bet pvz. iš v0.8 į v0.10 pasikeitė Stream'ų implementacija ir šiek tiek API
  12. Mokymosi kreivė Nepaisant to kaip gerai moki JS, geriausios node.js

    aplikacijų praktikos dar nesusiformavusios. KISS Maži moduliai Architektūra, leidžianti keisti implementacijas TDD
  13. Callback hell Asinchroniškai mąstyti yra sunku. Promises: Q, when.js Async.js

    v a r f s = r e q u i r e ( " f s " ) , Q = r e q u i r e ( " q " ) ; Q . n i n v o k e ( f s , " r e a d F i l e " , f i l e N a m e ) . t h e n ( f u n c t i o n ( c o n t e n t s ) { / * . . * / } ) . f a i l ( f u n c t i o n ( e r r o r ) { / * . . * / } ) . d o n e ( ) ;
  14. Ar node.js jau tinka produkcijai? eBay ( ) LinkedIn (

    ) Microsoft ( ) Yahoo! ( , ) ql.io mobilios aplikacijos API Azure YUI Mojito Trello Walmart