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

Developing large NodeJS libraries with Cloud9 IDE

Developing large NodeJS libraries with Cloud9 IDE

Thinking about creating a new awesome NodeJS library or module? Check these slides with useful info I collected over the years working on NodeJS and building jsDAV and other large libraries.

Mike de Boer

October 27, 2011
Tweet

More Decks by Mike de Boer

Other Decks in Programming

Transcript

  1. @mikedeboer donderdag 27 oktober 2011 () * I’m Mike de

    Boer, Amsterdam, The Netherlands * this is the nick I use everywhere... twitter, github, etc. * feel free to shout out at me with questions after this talk
  2. I’m a PHP developer donderdag 27 oktober 2011 () *

    yes, you read that correctly! * this is what I started with back when I was sixteen * did lots of work for multinationals like Porsche, Michelin and Coca-Cola
  3. donderdag 27 oktober 2011 () * and created a thing

    called ZMG * a media gallery component for Mambo CMS, later Joomla! * gave me lots of fame, not so much fortune * important lessons learnt in developing large libraries and maintaining huge codebases
  4. donderdag 27 oktober 2011 () * moved to the client

    * built the eBuddy.com IM client - Ajax wasn’t coined yet! * master of the browser, f*ck yeah!
  5. Back to the Server with NodeJS donderdag 27 oktober 2011

    () * NodeJS came into our lives * whoopy! JS on the server! * evented IO was something new and made sense - JS happened to be a perfect fit
  6. donderdag 27 oktober 2011 () * except, developers ended up

    in a world of pain... no tools! * no solid IDE * we built one.
  7. donderdag 27 oktober 2011 () * enter Cloud9 IDE. *

    first tagline was: for javascripters , by javascripters * we took it online, into the cloud with c9.io
  8. Big Library: jsDAV https://github.com/mikedeboer/jsDAV Port of http://code.google.com/p/sabredav/ donderdag 27 oktober

    2011 () * jsDAV is a library that enables each and every NodeJS app to be a WebDAV server * extensible, lightweight and fast * with NodeJS’ evented IO it seemed like a perfect fit for WebDAV * show demo with OSX Finder
  9. • Async: https://github.com/caolan/async • Promises: https://github.com/kriskowal/q • AsyncJS: https://github.com/fjakobs/asyncjs •

    Step: https://github.com/creationix/step • Streamline.js: https://github.com/Sage/streamlinejs • and MANY more... *sigh* donderdag 27 oktober 2011 ()
  10. 4. Pick a code reuse pattern jsDAV uses simple prototypal

    inheritance donderdag 27 oktober 2011 ()
  11. 5. Tests are everything jsDAV uses Litmus, a standalone C

    program, there is a NodeJS library for each testing style donderdag 27 oktober 2011 ()
  12. • http://debuggable.com/posts/unit-testing-with-node-js: 4b647d40-34e4-435a-a880-3b04cbdd56cb • http://github.com/caolan/nodeunit • AsyncJS TestRunner (https://github.com/fjakobs/asyncjs) •

    BDD: http://vowsjs.org/ • (REST) API’s: http://indexzero.github.com/api-easy • Client-side on the Server-side: http://zombie.labnotes.org/ • Cloud9 runs tests automagically donderdag 27 oktober 2011 ()
  13. 9. Publish to NPM So others can find it :)

    donderdag 27 oktober 2011 ()
  14. 10. Spread the word Publish to the NodeJS Modules wiki

    page: https://github.com/joyent/node/wiki Send an ‘ANN: my new awesome lib’ to the mailing list: http://groups.google.com/ group/nodejs donderdag 27 oktober 2011 ()