JavaScript development workflow and tools
Examples included:
- EcmaScript 5.1 object oriented JavaScript with prototypal inheritance and base constructors with parameters
- Introduction to Object Oriented Javascript
- Learning JavaScript Design Patterns book
- MDN on inheritance
- ES5 and ES6 inheritance video
- ES5 Compatibility Table IE8 and older does not support
Object.create
- Essential JavaScript Namespacing Patterns
- Google javascript style guide
- Values, Variables and Literals
- Jasmine spec & test runner for unit testing
- JsHint for enforcing coding style with .jshintrc
- JsDoc3 for documenting JavaScript and enriching editor intellisense
- EditorConfig for cross-editor consistency
- RequireJs with AMD dependencies
- JsTestDriver support for running unit tests in multiple browsers
- Karma Test Runner + PhantomJs for headless unit test running
- Travis-Ci to automatically run tests on push to GitHub
- Grunt task runner to automate repetitive tasks
- RequireJs r.js task bundles application and inlines Almond.js
- Concat task concatenates jasmine specs
- Clean task cleans the output directory
- JSHint task validates application and tests
- UglifyJs task minifies and generates source maps
- Watch task watches for file changes and executes grunt tasks and reloads the browser using LiveReload
- Karma task karma runner that runs test on watch trigger
- Gemnasium automatically checks package.json for outdated packages
Todo:
- ES6 Module support
- Bower package manager
- Mocha, CasperJs + PhantomJs for headless browser functional testing (like Selenium)
- Add EcmaScript3 support for IE8
- Sauce Labs cross browser unit and functional testing
- Create a Volo package
- Use volo-ghdeploy to publish to GitHub Pages
- Version Badge to provide package version and link
- Jasmine grunt task to run jasmine specs via grunt instead of karma
- JsDoc grunt taks generates documentation
- FileRev grunt taks generates file revision hashes to improve caching
- Templates grunt task replaces placeholders and generate output files
- https://github.com/thomasboyt/grunt-microlib
Unsorted:
- Local Tunnel for sharing local web server (ex. testing on mobile device)
- CodeKit
- http://component.io
- waffle.io to manage development tasks
- http://coveralls.io
- http://codeship.io
- http://blanketjs.org/ checks test code coverage
- https://nodei.co/npm/*.png to get the npm package status image
- http://ci.testling.com/ runs javascript tests in multiple browsers
- https://david-dm.org/
- http://www.letscodejavascript.com/
- http://www.objectplayground.com/
- https://github.com/khan4019/HighPerformanceJSandCSS
- http://davidshariff.com/js-quiz/
- https://github.com/mdevils/node-jscs
- http://jashkenas.github.io/docco/
- http://browserify.org/
- http://linemanjs.com
- http://javascriptweblog.wordpress.com/2011/02/07/truth-equality-and-javascript/
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
- http://javascript.info/tutorial/bubbling-and-capturing
- http://drone.io
- https://github.com/boennemann/badges All the badges in one page
- https://github.com/Munter/grunt-reduce
- https://github.com/mozilla/brick/issues
- http://www.x-tags.org/docs
- http://www.polymer-project.org/
- http://www.html5rocks.com/en/tutorials/webcomponents/imports/