Node jsworkshop
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Node jsworkshop

on

  • 1,964 views

Workshop auf den JavaScript-Days 2012 in Berlin.

Workshop auf den JavaScript-Days 2012 in Berlin.

Statistics

Views

Total Views
1,964
Views on SlideShare
1,962
Embed Views
2

Actions

Likes
0
Downloads
14
Comments
0

1 Embed 2

https://twitter.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Node jsworkshop Presentation Transcript

  • 1. Friday, September 28, 12
  • 2. WER BIN ICH? • Sebastian Springer • https://github.com/sspringer82 • @basti_springer • Teamlead @ MayflowerFriday, September 28, 12
  • 3. WER SEID IHR?Friday, September 28, 12
  • 4. LET’S GOFriday, September 28, 12
  • 5. THEMEN • Installation • Dateisystem • Kernkomponenten • Datenbanken • Beispiel • Promises • Module • Child Processes • Eigener Code • Websockets • Asynchronität • Debugger • NPM • TestingFriday, September 28, 12
  • 6. INSTALLATIONFriday, September 28, 12
  • 7. v0.8.11 v0.8.10 NODE-V0.8.9Friday, September 28, 12
  • 8. PAKETE • Unix http://nodejs.org/dist/v0.8.9/node-v0.8.9-linux-x64.tar.gz • Mac http://nodejs.org/dist/v0.8.9/node-v0.8.9.pkg • Windows http://nodejs.org/dist/v0.8.9/x64/node-v0.8.9-x64.msiFriday, September 28, 12
  • 9. HTTP://NODEJS.ORG/ DOWNLOAD/Friday, September 28, 12
  • 10. SOURCEFriday, September 28, 12
  • 11. HAT ES GEKLAPPT?Friday, September 28, 12
  • 12. DIE KERNKOMPONENTENFriday, September 28, 12
  • 13. V8 • Schneller Zugriff auf Eigenschaften • Dynamische Erstellung von Maschinencode • Garbage CollectionFriday, September 28, 12
  • 14. V8 - FAST PROPERTY ACCESSFriday, September 28, 12
  • 15. V8 - FAST PROPERTY ACCESSFriday, September 28, 12
  • 16. V8 - FAST PROPERTY ACCESSFriday, September 28, 12
  • 17. MASCHINENCODEFriday, September 28, 12
  • 18. V8 - GARBAGE COLLECTION • Programmausführung wird angehalten • Es wird nur ein Teil des Object Heaps geprüft • V8 kennt alle Objekte und Pointer im SpeicherFriday, September 28, 12
  • 19. LIBEV • Full-featured and high-performance event loop • libevent als Basis • Alles, außer der eigene Code ist parallel und asynchronFriday, September 28, 12
  • 20. LIBEIO • Eventbasierte Bibliothek für asynchrone I/O Operationen • Ergänzung zu libev • Features: Öffnen, Lesen, Schreiben, Löschen, etc. • Modul: fsFriday, September 28, 12
  • 21. C-ARES • asynchrone DNS Auflösung • Modul: dnsFriday, September 28, 12
  • 22. EVCOM • Basiert auf libev • Eventbasierte Library für Stream Sockets • Modul: netFriday, September 28, 12
  • 23. EIN KLEINES BEISPIELFriday, September 28, 12
  • 24. INTERAKTIVFriday, September 28, 12
  • 25. WEBSERVERFriday, September 28, 12
  • 26. WEBSERVERFriday, September 28, 12
  • 27. WEBSERVERFriday, September 28, 12
  • 28. MODULEFriday, September 28, 12
  • 29. VERFÜGBARE MODULE • Stream • OS • Events • Debugger • File System • Cluster • Net • Util • HTTP • Buffer • Child Processes • UDPFriday, September 28, 12
  • 30. HTTP://NODEJS.ORG/API/Friday, September 28, 12
  • 31. STABILITÄTSINDEX •0 - Deprecated •1 - Experimental •2 - Unstable •3 - Stable •4 - API Frozen •5 - LockedFriday, September 28, 12
  • 32. STABILITÄTSINDEXFriday, September 28, 12
  • 33. MODULE VERWENDENFriday, September 28, 12
  • 34. EIGENE KLASSEN DEFINIERENFriday, September 28, 12
  • 35. ...IM BROWSERFriday, September 28, 12
  • 36. ...IN NODE Human.jsFriday, September 28, 12
  • 37. ...IN NODE server.jsFriday, September 28, 12
  • 38. ASYNCHRONE PROGRAMMIERUNGFriday, September 28, 12
  • 39. DATEI LESEN node.js Betriebssystem LeseoperationFriday, September 28, 12
  • 40. DATEI LESENFriday, September 28, 12
  • 41. DATEI LESENFriday, September 28, 12
  • 42. DATEI LESENFriday, September 28, 12
  • 43. Friday, September 28, 12
  • 44. NPM • Node Package Manager • Seit node 0.6.3 Bundled • Repo @ https://npmjs.org/Friday, September 28, 12
  • 45. KOMMANDOS • npm search <package> • npm install <package> • npm list • npm update • npm removeFriday, September 28, 12
  • 46. NPM SEARCHFriday, September 28, 12
  • 47. NPM INSTALLFriday, September 28, 12
  • 48. NPM LISTFriday, September 28, 12
  • 49. NPM UPDATEFriday, September 28, 12
  • 50. NPM REMOVEFriday, September 28, 12
  • 51. EIGENE NPM PAKETEFriday, September 28, 12
  • 52. EIGENE NPM PAKETE • npm adduser • Username, Passwort, E-Mail • npm publish <folder>|<tarball>Friday, September 28, 12
  • 53. HTTPS://GITHUB.COM/ JOYENT/NODE/WIKI/Friday, September 28, 12
  • 54. DATEISYSTEMFriday, September 28, 12
  • 55. DATEISYSTEM-FUNKTIONEN • exists • unlink • readFile • chmod • writeFile • chown • appendFile • ... • watchFile • renameFriday, September 28, 12
  • 56. FILE EXISTSFriday, September 28, 12
  • 57. FILE EXISTSFriday, September 28, 12
  • 58. FILE EXISTSFriday, September 28, 12
  • 59. APPEND FILEFriday, September 28, 12
  • 60. APPEND FILEFriday, September 28, 12
  • 61. APPEND FILEFriday, September 28, 12
  • 62. WATCH FILEFriday, September 28, 12
  • 63. WATCH FILEFriday, September 28, 12
  • 64. WATCH FILEFriday, September 28, 12
  • 65. WATCH FILEFriday, September 28, 12
  • 66. FRAGEN?Friday, September 28, 12
  • 67. DATENBANKENFriday, September 28, 12
  • 68. Friday, September 28, 12
  • 69. MySQLFriday, September 28, 12
  • 70. MySQL CouchDBFriday, September 28, 12
  • 71. MySQL CouchDB MS SQL ServerFriday, September 28, 12
  • 72. MySQL CouchDB SQLite MS SQL ServerFriday, September 28, 12
  • 73. MySQL CouchDB Redis SQLite MS SQL ServerFriday, September 28, 12
  • 74. MySQL PostgreSQL CouchDB Redis SQLite MS SQL ServerFriday, September 28, 12
  • 75. MySQL PostgreSQL CouchDB Redis SQLite MS SQL Server HiveFriday, September 28, 12
  • 76. MySQL PostgreSQL Mongo CouchDB Redis SQLite MS SQL Server HiveFriday, September 28, 12
  • 77. MySQL PostgreSQL Oracle Mongo CouchDB Redis SQLite MS SQL Server HiveFriday, September 28, 12
  • 78. MYSQL • npm install mysql • Implementierung des mysql ProtokollsFriday, September 28, 12
  • 79. MYSQLFriday, September 28, 12
  • 80. TEST-DATENBANKFriday, September 28, 12
  • 81. MYSQLFriday, September 28, 12
  • 82. MYSQLFriday, September 28, 12
  • 83. PROMISESFriday, September 28, 12
  • 84. PROMISES • Ergebnis eines asynchronen Funktionsaufrufs • Rückgabewert oder Exception • Promise statt Blocking • CommonJS Proposal • bis 0.2 Bestandteil von NodeFriday, September 28, 12
  • 85. PYRAMID OF DOOMFriday, September 28, 12
  • 86. PROMISESFriday, September 28, 12
  • 87. PROMISE-LIBRARIES • https://github.com/kriskowal/q • https://github.com/kriszyp/promised-io • https://github.com/kriszyp/node-promise • ...Friday, September 28, 12
  • 88. OHNE PROMISESFriday, September 28, 12
  • 89. OHNE PROMISESFriday, September 28, 12
  • 90. PROMISESFriday, September 28, 12
  • 91. PROMISESFriday, September 28, 12
  • 92. PROMISESFriday, September 28, 12
  • 93. PROMISESFriday, September 28, 12
  • 94. CHILD PROCESSESFriday, September 28, 12
  • 95. CHILD PROCESSES • spawn - Kommandoausführung • exec - Kommandoausführung in Puffer • execFile - Dateiausführung in Puffer • fork - Node ProzessFriday, September 28, 12
  • 96. ETWAS RECHENINTENSIVESFriday, September 28, 12
  • 97. potenziell ETWAS BLOCKIERENDESFriday, September 28, 12
  • 98. ETWAS BLOCKIERENDESFriday, September 28, 12
  • 99. ETWAS BLOCKIERENDESFriday, September 28, 12
  • 100. DIE LÖSUNG: WIR FORKENFriday, September 28, 12
  • 101. CHILD PROCESSESFriday, September 28, 12
  • 102. CHILD PROCESSESFriday, September 28, 12
  • 103. CHILD PROCESSESFriday, September 28, 12
  • 104. WEBSOCKETSFriday, September 28, 12
  • 105. WEBSOCKETS • Protokoll auf TCP-Basis • Bidirektionale Client-Server-Kommunikation • Wird im Rahmen von HTML5 entwickelt • Unterstützung durch LibrariesFriday, September 28, 12
  • 106. Friday, September 28, 12
  • 107. SOCKET.IO - SERVERFriday, September 28, 12
  • 108. SOCKET.IO - SERVERFriday, September 28, 12
  • 109. SOCKET.IO - CLIENTFriday, September 28, 12
  • 110. SOCKET.IO - CLIENTFriday, September 28, 12
  • 111. SOCKET.IO - CLIENTFriday, September 28, 12
  • 112. SOCKET.IO - SERVERFriday, September 28, 12
  • 113. DEBUGGERFriday, September 28, 12
  • 114. DEBUGGERFriday, September 28, 12
  • 115. DEBUGGERFriday, September 28, 12
  • 116. DEBUGGERFriday, September 28, 12
  • 117. DEBUGGER - STEP • next -n • cont -c • step -s • out -oFriday, September 28, 12
  • 118. DEBUGGER - WATCH • watch(expression) • unwatch(expression) • watchersFriday, September 28, 12
  • 119. DEBUGGER - WATCHFriday, September 28, 12
  • 120. DEBUGGER - REPLFriday, September 28, 12
  • 121. TESTINGFriday, September 28, 12
  • 122. TEST FRAMEWORKS • node-unit • node assertion testing • jasmine-nodeFriday, September 28, 12
  • 123. JASMINE-NODEFriday, September 28, 12
  • 124. JASMINE-NODEFriday, September 28, 12
  • 125. JASMINE-NODE src/Calculator.jsFriday, September 28, 12
  • 126. JASMINE-NODE spec/Calculator.spec.jsFriday, September 28, 12
  • 127. JASMINE-NODEFriday, September 28, 12
  • 128. JASMINE-NODEFriday, September 28, 12
  • 129. FRAGEN?Friday, September 28, 12
  • 130. KONTAKT Sebastian Springer sebastian.springer@mayflower.de Mayflower GmbH Mannhardtstr. 6 80538 München Deutschland @basti_springer https://github.com/sspringer82Friday, September 28, 12
  • 131. SOCKETSFriday, September 28, 12
  • 132. SOCKETS • Kommunikation über Netzwerk-/Datei-Sockets • Read-, Write- und Read-Write-Sockets • ‘net’-ModulFriday, September 28, 12
  • 133. SOCKETS Write-Socket- Daten Daten Read-Socket- Socket-Server Client ClientFriday, September 28, 12
  • 134. SOCKETS - SERVERFriday, September 28, 12
  • 135. SOCKETS - READFriday, September 28, 12
  • 136. SOCKETS - WRITEFriday, September 28, 12
  • 137. SOCKETS - SERVERFriday, September 28, 12
  • 138. SOCKETS - SERVERFriday, September 28, 12
  • 139. SOCKETS - SERVERFriday, September 28, 12
  • 140. SOCKETS - SERVERFriday, September 28, 12