Passion to create Fullstack JS

From zero to hero

@rwarzycha

senssei

Basic tools

Why they matter?

Editor - focused on content

  • Sublime
  • Atom
  • Brackets
  • LightTable 

Browser - personal preference

  • Chrome, Chrome Canary
  • Firefox + Firebug

Keep your JS in good shape

Linters, test frameworks and automatisation

Linters

  • JS Hint
  • JS Lint

Test frameworks 

  • Test Driven Development (TDD) or Behavior Driven Development (BDD) flavors
    • jasmine, jest
    • mocha
    • QUnit
  • End to End (E2E)
    • protractor
    • nightwatch
  • Runner
    • karma

One Ring to rule build them all

  • grunt
  • gulp

Meh, Too many options -_-

Use yeoman

DEMO

$ npm install -g yo bower grunt-cli

$ npm install -g generator-angular

$ yo

$ grunt serve

With great power ...

Libs, frameworks, UI

Libs

  • DOM
    • jQuery
  • AMD
    • Require.js
    • Browserify 
  • Misc
    • underscore, lo-dash
    • q (promises)

Frameworks

  • Angular
  • Backbone
  • Ember

Frameparts

  • KnockoutJS
  • React
  • ... many moar

http://todomvc.com/

Tame lib with package managers

  • node
    • npm
  • frontend libs 
    • bower

Languages complied to JS 

  • nice for ruby, python developers
  • familiar OOP flavor
  • coherent, simple rules
  • debug is more complicated - you need to debug JS anyway 
  • obstructing vanilla JS
  • OOP "dark" temptations

CoffeeScript, TypeScript

Side note

Advanced topics

Middleware and backend

         DBs

  • MongoDB
  • CouchDB
  • ...

NoSQL

used in LHC (CERN)

API - REST, Socket, SOAP

  • Express

DEMO

$ npm install -g generator-yeogurt

$ yo yeogurt

$ grunt serve

MEAN stack

It's only flavor

MongoDB

Express.js

 

Node.js

Angular.js

FIN

QA

fullstack-js-students

By Rafał Warzycha

fullstack-js-students

  • 642