javascript toolkit

39
THE JAVASCRIPT TOOLKIT An attempt to organize the recent explosion of Javascript based technologies and frameworks into a coherent toolkit to be used by a web application developer. 1 Marcos Vinicius @bymarkone Renan Martins @renan89

Upload: marcos-vinicius

Post on 06-May-2015

617 views

Category:

Software


1 download

DESCRIPTION

An attempt to organize the recent explosion of Javascript based technologies and frameworks into a coherent toolkit to be used by a web application developer.

TRANSCRIPT

Page 1: Javascript toolkit

THE JAVASCRIPT TOOLKITAn attempt to organize the recent explosion of Javascript based technologies and frameworks into a coherent toolkit to be used by a web application developer.

1

Marcos Vinicius @bymarkoneRenan Martins @renan89

Page 2: Javascript toolkit

THE IDEA OF THE TOOLKIT

2

The Idea Of A Toolkit

Page 3: Javascript toolkit

An attempt to organize the recent explosion of Javascript based

technologies and frameworks into a coherent toolkit to be used by a web

application developer.

purpose:

Page 4: Javascript toolkit

4

Page 5: Javascript toolkit

AGILE PURPOSE FOR DELIVERY

5

Deliver Fast

Deliver Often

Deliver Value

Page 6: Javascript toolkit

AGILE CHANGES IN PROCESS

6

Iterations

User Stores

Planning

Stand Ups

Retrospectives

Inception

Scrum - Lean - XP Kanban

Team Communication

Page 7: Javascript toolkit

TECHNICAL SUPPORT FOR AGILE

7

Continuous Delivery

Continuous IntegrationEvolutionary Architecture

Evolutive DesignTDD

Lot’s of Automation

Programming LanguagesDesign Patterns

Page 8: Javascript toolkit

AGILE - TOOLKIT

8

Gradle, Maven, Ant, Ivy

jUnit, TestNG, Cucumber

Design, Analysis, Architecture Patterns

Jenkins, GO, Snap, Bamboo

Java, Ruby, Scala, Python, Clojure,

Racket, Javascript

www.thoughtworks.com/radar/

Page 9: Javascript toolkit

9

And Javascript?

Page 10: Javascript toolkit

10

The great enabler…

Page 11: Javascript toolkit

https://github.com/bymarkone/javascript-toolkit

11

Page 12: Javascript toolkit

NEED MOTIVATION TOOLS

Scaffold Several tools. Several ways. Several Practices. Need to organize, and give some good foundation - best practices, good design. yeoman

Build / Automation Lots of tasks to execute. Compile. Test. Minify. Concat. Etc. grunt, gulp, broccoli

Dependency Management

Applications are getting complex. They rely on several other libraries and frameworks. bower, component, NPM

Dynamic Loading Big projects are split among several pieces of js for the sake of modularization. No all of them should be loaded at the same time.

require, curl, broserify, webpack

Testing Testing is all around. Need to tests on different browsers, need to write the tests, need to run the tests, need to report test results.

karma, jasmine, phatom, mocha, qunit, protractor, sinon, sourcelabs, duck angular

Application Applications on web are getting complex, need for frameworks that support app development.

angular, backbone, ember, knockout

Dom UtilitiesDOM selection and maniputation, some auxiliary functions,

need for utilities that make work simple (and cross-browser)

jquey, zepto

Language Utilities Clean code, functional programming style, reactive programming features, helpers and utilities

lodash, underscore, promise, fn, q

CI Continuous integration, continuous delivery, continuous deployment

travis-ci, jenkins, concrete, semaphore, go, snap

Other Languages Have a syntactic sugar element, or even completely different syntax (that in the end turn into javascript to run in the browser)

coffeescript, clojurescript, typescript

Other Javascript ?? concat, minify, uglify, lint, jshint, watch, page, director, crossroads, moment.js12

Page 13: Javascript toolkit

13

WHAT TOOLS

CSS Preprocessors sass, less

Preprocessors Libs compass, bourbon

CSS Helpers susy, zenGrids, neat, normalize, modernizr, flexbox

CSS Frameworks boostrap, foundation, skeleton

Page 14: Javascript toolkit

Let’s talk about this needs,

And take a look at some tools

14

Page 15: Javascript toolkit

SCAFFOLD

15

Several tools. Several ways.

Several Practices. Need to

organize, and give some good

foundation - best practices,

good design.

Page 16: Javascript toolkit

16

Page 17: Javascript toolkit

BUILD - AUTOMATION

17

Lots of tasks to execute. Compile. Test. Minify. Concat. Uglify. Etc.

Page 18: Javascript toolkit

18github.com/broccolijs/broccoli

Page 19: Javascript toolkit

DEPENDENCY MANAGEMENT

19

Applications are getting complex. They rely on several other libraries and

frameworks.

Page 20: Javascript toolkit

20

Page 21: Javascript toolkit

DYNAMIC LOADING

21

Big projects are split among several pieces of javascript for the sake of

modularisation. No all of them should be loaded at the same time.

Page 22: Javascript toolkit

22

github.com/cujojs/curl

github.com/webpack/webpack

Page 23: Javascript toolkit

TESTING

23

Testing is all around. Need to tests on different browsers, need to write the tests, need to run the tests, need to

report test results.

Page 24: Javascript toolkit

24mocha, qunit, protractor, sinon, saucelabs, duck angular

Page 25: Javascript toolkit

APPLICATION

25

Applications on web are getting complex, need for frameworks that

support app development.

Page 26: Javascript toolkit

26

Page 27: Javascript toolkit

DOM UTILITIES

27

DOM selection and manipulation, some auxiliary functions, need for utilities that make work simple (and cross-browser)

Page 28: Javascript toolkit

28

Page 29: Javascript toolkit

LANGUAGE UTILITIES

29

Clean code, functional programming style, reactive programming features,

helpers and utilities

Page 30: Javascript toolkit

30

Page 31: Javascript toolkit

31

lodash.com

github.com/kriskowal/q

Page 32: Javascript toolkit

CI

32

Continuous integration, continuous delivery, continuous deployment

Page 33: Javascript toolkit

33

github.com/ryankee/concrete

Page 34: Javascript toolkit

OTHER LANGUAGES

34

Have a syntactic sugar element, or even completely different syntax (that in the end turn into javascript to run in the

browser)

Page 35: Javascript toolkit

35

github.com/clojure/clojurescript

Page 36: Javascript toolkit

OTHER JAVASCRIPT

36

Several tools. Several ways. Several Practices. Need to organize, and give

some good foundation - best practices, good design.

Page 37: Javascript toolkit

37

minify-toolsconcat-tools

Page 38: Javascript toolkit

WRAP UP

38

Difference Needs|Tools and their relation

Agile demands for you as a developer

Keep your mind open

Page 39: Javascript toolkit

For questions or suggestions: !

Marcos Vinicius @bymarkone

github.com/bymarkone !

Renan Martins @renan89

THANK YOU