CLOUD APP DEVELOPwith NodeJS
About Me• JAVA• iOS• F2E / NodeJS• French Bulldoghttp://ppt.cc/QNfHFin Chen
This Talk is About• How to build up a NodeJS service• A basic introduction to the tools I used• How server and mobile deve...
This Talk is NOT About• How to write Javascript• How to write iOS App• ... and any technical details
The Cloud Era
Cloud?啊不就Server-Client?
Cloud ArchitectureNODEJSAWS EC2 MongoDB
Development Stack• AWS EC2• NodeJS (with CoffeeScript)• MongoDB• Git• Sublime Text2• Grunt• Jenkins
AWS EC2• Elastic compute cloud web service• Free Tier for the first year• Need to be familiar with command line
NodeJS highlights• Uses JAVASCRIPT• Event-driven• Non-blocking• NodeJS Package Management Tool: NPM• Big open source commu...
Why NodeJS?• Streamlines backend/frontend development• Best for (soft) real-time web application• Natively compatible with...
Why not NodeJS• Still in early development age• Not enough high-level abstraction library• CPU intensive jobs
Who is using NodeJS?
• http://nodejs.org/api/• http://github.com/joyent/node• http://nodejs.tw/• http://www.nodebeginner.org/index-zh-tw.html#j...
Commonly Used Libraries• ExpressJS / MeteorJS• PassportJS• Mocha• Async• Mongoose• node-inspector• nodemon• forever
CoffeeScript• Compiles into javascript• Write less, do more• Easier class, inheritance• Source Map Support (new!)
MongoDB Highlights• Document Based• High Availability• Scalability• Data stores in BSON format• Javascript-like function c...
Why MongoDB?• Big Data• Dynamic Schema• Real-Time• Geospatial Capabilities• Easy to scale (Sharding/Replica/HA)
Why Not MongoDB?• Atomic transactions only at document level• No complex querying (e.g. no join)• Data size higher• Needs ...
Who is using MongoDBhttp://www.mongodb.org/about/production-deployments/
Git• Distributed version control• Github / Bitbucket• Working offline• Collaboration
Sublime Text2• Text editor for Programmers• Syntax highlights for various languages• Code autocompletion• Plug-ins (git, c...
Grunt• Javascript task runneraka. automation/build tool• minification / compilation: uglifyjs• unit testing: mocha• validat...
Jenkins• Continous Integration Server• Build newest code periodically• Run Tests & Code Analysis
Working with Mobile• Divide and Conquer• Prototyping• API Designing• Test Server
FAQ
BreakComing UP:App Demo!http://ppt.cc/Ucpi
Upcoming SlideShare
Loading in …5
×

Cloud App Develop

1,747 views

Published on

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
1,747
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
30
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Cloud App Develop

  1. 1. CLOUD APP DEVELOPwith NodeJS
  2. 2. About Me• JAVA• iOS• F2E / NodeJS• French Bulldoghttp://ppt.cc/QNfHFin Chen
  3. 3. This Talk is About• How to build up a NodeJS service• A basic introduction to the tools I used• How server and mobile developerscooperate
  4. 4. This Talk is NOT About• How to write Javascript• How to write iOS App• ... and any technical details
  5. 5. The Cloud Era
  6. 6. Cloud?啊不就Server-Client?
  7. 7. Cloud ArchitectureNODEJSAWS EC2 MongoDB
  8. 8. Development Stack• AWS EC2• NodeJS (with CoffeeScript)• MongoDB• Git• Sublime Text2• Grunt• Jenkins
  9. 9. AWS EC2• Elastic compute cloud web service• Free Tier for the first year• Need to be familiar with command line
  10. 10. NodeJS highlights• Uses JAVASCRIPT• Event-driven• Non-blocking• NodeJS Package Management Tool: NPM• Big open source community
  11. 11. Why NodeJS?• Streamlines backend/frontend development• Best for (soft) real-time web application• Natively compatible with JSON• Can be a web container itself• Scalable
  12. 12. Why not NodeJS• Still in early development age• Not enough high-level abstraction library• CPU intensive jobs
  13. 13. Who is using NodeJS?
  14. 14. • http://nodejs.org/api/• http://github.com/joyent/node• http://nodejs.tw/• http://www.nodebeginner.org/index-zh-tw.html#javascript-and-nodejs• https://www.facebook.com/groups/node.js.twResources
  15. 15. Commonly Used Libraries• ExpressJS / MeteorJS• PassportJS• Mocha• Async• Mongoose• node-inspector• nodemon• forever
  16. 16. CoffeeScript• Compiles into javascript• Write less, do more• Easier class, inheritance• Source Map Support (new!)
  17. 17. MongoDB Highlights• Document Based• High Availability• Scalability• Data stores in BSON format• Javascript-like function call
  18. 18. Why MongoDB?• Big Data• Dynamic Schema• Real-Time• Geospatial Capabilities• Easy to scale (Sharding/Replica/HA)
  19. 19. Why Not MongoDB?• Atomic transactions only at document level• No complex querying (e.g. no join)• Data size higher• Needs more RAM for indexing
  20. 20. Who is using MongoDBhttp://www.mongodb.org/about/production-deployments/
  21. 21. Git• Distributed version control• Github / Bitbucket• Working offline• Collaboration
  22. 22. Sublime Text2• Text editor for Programmers• Syntax highlights for various languages• Code autocompletion• Plug-ins (git, coffeescript, emmet)• Flexible layout
  23. 23. Grunt• Javascript task runneraka. automation/build tool• minification / compilation: uglifyjs• unit testing: mocha• validation: jslint• documentation: docco• deploy
  24. 24. Jenkins• Continous Integration Server• Build newest code periodically• Run Tests & Code Analysis
  25. 25. Working with Mobile• Divide and Conquer• Prototyping• API Designing• Test Server
  26. 26. FAQ
  27. 27. BreakComing UP:App Demo!http://ppt.cc/Ucpi

×