Skip to content

Technical Specifications

Giorgio edited this page Jun 22, 2016 · 26 revisions

Welcome to the Moranda wiki!

Development Environment

Atom packages for StandardJS:

Consider using ESLint

Notes:

Look into node-inspector, mentioned in section 4.5.2

Look into Gulp ... Cons

Intro to Gulp

Task Management

Things I would want in my task runner:

  • Watch
  • LiveReload for browser development
  • Linting (maybe using StandardJS)
  • minifying static front-end assets
  • Zipping (using Gzip?)
  • Bundling like static assets (not necessary right now)
    • Note that concatenation === Bundling
  • Spriting Images
  • Unit Testing
  • continuous development (not having to recompile code when making changes to codebase) ... Done through Watch?

Need different tasks for whether I'm in development or in production (i.e. I wouldnt want bundling / minification during dev)

NodeJS Best Practices

Make use of the different Heroku environments

Continuous Integration

Have an integration flow, potentially using Travis or CodeShip, or Circle.

Logging

Look into Winston for logging

npm install --save winston

let logger = require('winston')

logger.info('east coast clear as day')
logger.error('west coast not looking so hot')

Asset Caching

Static asset caching is something we might want in the future but for now is unimportant.

Heroku Buildbacks

Gulp Buildpack

Clustering

Make use of multiple cores with cluster Node module.

Or better yet, use pm2 (cluster wrapper).

Forever ensures a process never dies.

Clustering examples - 1, 2.

Performance Analytics

NodeTime

Clone this wiki locally