JS developer
Cutting edge
Toolset
often used as dev environment,
based on V8 - google chrome JS engine,
add APIs that are locked in browser - IO/tty/...
event based, non blocking,
single loop, async processing
deals with module loading,
versions,
dependencies,
updates
Grunt
plugin rich,
simple config,
currently problems with maintainers,
Gulp
stream based,
code over configuration,
simple API
Task runner
Tests
frameworks
BDD/TDD
Jasmine, Mocha, Chai, ...
runners
karma
e2e
protractor, nightwatchjs
Scaffolding
yeomain,
slush
Stack
Servers
express - fast, simple,
hapi - HA, middleware,
koa - alternative
Storage
MongoDB,
CouchDB,
PouchDB,
Redis
Frameworks
It seems to be ...
version 1.x
easy to begin,
a lot of online resources,
based on complex concept,
has performance limitations,
version 2.x
bad press,
large scope of changes,
high performance gain,
a lot of new features
Google support,
commonly recognized,
small and simple
focus on Model
plain JavaScript
good in conventions over configuration,
well documented,
early adopter,
great for Rails, Diango devs
focuses on View rendering,
declarative templates - JSX,
not MV* based
not a framework - it's just lib,
often used as a part of solution
cutting egde,
does not have Angular program limitations,
not known commonly,
recently in beta
ES 2015
Declarations
block scope -
let
,
real constants support -
const
Functions
default values,
named and rest parameters,
arrow function
Objects and Classes
inheritance and syntax sugar,
Object.assign
Data structs
Array,
Map,
Set
Others
modules,
spread,
tail-call optimizations,
iterators,
promises,
generators.
Modularization
Immediately-invoked function expression
(
IIFE
)
simple solution,
does not depend on external loader,
but not real module system
CommonJS
compact syntax,
sync loading - not suitable for webapp,
used in node.js loader
Asynchronous Module Definition (AMD)
different syntax,
based on function wrapping,
better suited to the dynamic webapps
ES 2015 modules
more compact than CommonJS,
static checks on structure,
cycle dependencies support,
declarative syntax,
API for loader
FIN
Q&A
Made with Slides.com