The following is an outline for a training that I offer. You can make bookings through my company.
- Node History & Scene
- Theory
- History of Node Tech and Business
- Package Managers
- npm
- pre-npm
- post-npm
- Node
- 0.4 (first "stable" version)
- 0.6 (first everyday version with npm bundled)
- 0.8 (first production version)
- 0.10
- 0.12+
- People
- Ryan
- Isaacs
- TJ Fontaine
- Business
- Joyent Vs Strongloop Vs Nodejistsu Vs Node Source Vs NPM Inc
- Scene
- Utilities
- Front-end tooling
- Server infrastructure
- Content mangement systems
- Robots
- Enterprise development
- Package Managers
- History of Node Tech and Business
- Theory
- Modules
- Workflow
- Creating a Module
- Naming
- Meta Files
- package.json
- README.md
- HISTORY.md
- LICENSE.md
- CONTRIBUTING.md
- Building & Testing
- NPM Scripts
npm test
npm run-script <script>
- Compilers: CoffeeScript, Grunt, Gulp, Brocolli
- Runners: Mocha, Joe
npm link
- NPM Scripts
- Publishing
- Versioning
- Changelog
- Tagging
npm publish
- Full-stack
- Write once
- UMD (Universal Module Definition)
- Browsirify
- Ender
- Write multiple
- Bower
- Write once
- Dependencies
- Peer Dependencies
- Dev Dependencies
- Bundled Dependencies
- Engines
- Creating a Module
- Theory
- Testing
- Continuous Integration (TeamCity)
- Performance / Load (Gatling)
- Version Semantics
- Sentimental Versioning
- Backbone
- jQuery
- Semantic Versioning
- NPM
- Issues with Semantic Versioning
- Interpretations
- Idealism vs Reality
- Sentimental Versioning
- Publishing
- Public Registry
- Git Repositories
- Scopes & Private NPM
- Maintenance
- Long-Term Versioning
- Maintaining versions in a forward and backward compatible way
- Generic Modules vs Specific Modules
- Theory
- Feature Creep & Future Versioning
- Branching Modules
- Unix/Substack Methodology
- Implementation
- Small Modules
- Mediator Patterns
- Etc.
- Theory
- Long-Term Versioning
- Testing
- Workflow
- Applications
- Workflow
- Flow Control & Error Handling
- Vanila & Callback Hell & Error Handling Pollution/Fragility
- Classes and Singeltons
- Event Emitters
- Async.js (Grunt)
- Tasks and TaskGroups (DocPad)
- Promises
- Q
- BlueBird
- Debugging
- Stack Traces
- Console Logging
- Interactive debugging
- Source Maps
- Flow Control & Error Handling
- Theory
- Application Scope VS Module Scope VS API/Package Scope
- What are an application’s concerns? (end-user errors)
- What are a module’s concerns? (app errors)
- What is an API’s concerns? (yell at you)
- How to avoid code smell (overloading, abundant error prevention)
- How to write future proof code that won’t cause breaking changes for trivial things (like new arguments)
- Event Loop System
- SetTimeout
- SetImmediate
- NextTick
- Stack Trace destruction
- Longjohn and Bluebird (sam) solution
- Application Scope VS Module Scope VS API/Package Scope
- Workflow
- Components
- Logging
- Streams
- Configuration
- Loading
- Environments
- Inheritance
- Splitting
- Live updating?
- Plugins / separation of concerns / auto loading / testing
- Dashboards and Statistic Reporting
- Servers
- REST API Design
- HTTP vs Web Sockets
- Modules
- Hapi, Express
- Feathers JS
- Best design practice
- REST API Design
- Scaling