Upload
tania-gonzales
View
463
Download
0
Embed Size (px)
Citation preview
Ta n i a G o n z a l e s
THE JAVASCRIPT TOOLKIT
ABOUT ME
Tania Gonzales Villa
Consultant/Developer @ ThoughtWorks
@taniadgv
2
3
An attempt to organise the recent explosion of Javascript
based technologies and frameworks into a coherent toolkit to be used by a web
application developer.
4
What is the reason of the recent explosion of Javascript libraries
and frameworks?
MANIFESTO FOR AGILE SOFTWARE DEVELOPMENT
5
Individuals and interactions over processes and toolsWorking software over comprehensive documentation.Customer collaboration over contract negotiation.Responding to change over following a plan.
AGILE PURPOSE FOR DELIVERY
6
Deliver Fast
Deliver Often
Deliver Value
TECHNICAL SUPPORT FOR AGILE
7
Evolutionary Architecture
Continuous Integration
Programming Languages
Design Patterns
TDD
Lot’s of Automatisation
Continuous Delivery
Evolutive Design
8
AGILE TOOLKIT
9
jUnit, TestNG, Cucumber
Design, Analysis,
Architecture Patterns Gradle, Maven, Ant, Ivy
Jenkins, GO,
Snap, Bamboo
http://www.thoughtworks.com/radar
Java, Ruby, Scala,
Python, Clojure, Javascript
AND JAVASCRIPT?10
11
The great enabler…
TOOLKIT CATEGORIES
12
Infrastructure
Application & Product
Development
Testing
Utilities & Support
INFRASTRUCTUREYour toolbox for fast and easy development.
13
SCAFFOLD
14
Several tools, several ways, several practices. Need to
organise and give some good foundation - best practices, good
design.
15
Seed Projects
Bootstraps
AUTOMATION
16
Lot’s of tasks to execute: compile, test, assembly, minify
and deliver your code.
17
AUTOMATION UTILITIES
18
While running your automated task you probably want some
tools to help you go even further.
19
minify tools
concat tools
watch
DEPENDENCY MANAGEMENT
20
Applications are getting complex, they rely on several other libraries and frameworks.
21
APPLICATION & PRODUCTApplication are getting complex, need for frameworks that support app development.
22
APPLICATION FRAMEWORKS
23
Main javascript frameworks to build user interfaces.
24
APPLICATION UTILITIES
25
Libraries that will help when building the application.
26
DYNAMIC LOADING
27
Big projects are split among several pieces of javascript for the sake of the modularisation. No all of them should be loaded
at the same time.
28
github.com/cujojs/curl
github.com/amdjs
github.com/caolan/async
DEVELOPMENT29
OTHER LANGUAGES
30
Have a syntactic sugar element, or even completely different
syntax (that in the end turns into javascript to run in the browser).
TESTINGTesting is all around. Need to test in different browsers, need to write the tests, need to run the tests, need to report the results.
32
TEST RUNNERS
33
Applications are getting complex, they rely on several other libraries and frameworks.
34
FRAMEWORKS
35
Tools to allow you write your tests.
36
END TO END
37
Test the whole flow of your application.
38
TEST SUPPORT
39
Support libraries for writing and running tests.
40
UTILITIES & SUPPORTThe support you need while writing Javascript
41
DOM UTILITIES
42
DOM selection and manipulation, some auxiliary functions, need
for utilities that make work simple.
43
LANGUAGES UTILITIES
44
Clean utilities, functional programming style, reactive
programming features, helpers and utilities.
CI
46
Continuos integration, continuous delivery, continuous deployment.
47
WRAP UP
48
Different needs/tools and their relation
Agile demands for you as a developer
Keep your mind open
For questions or suggestions:
Tania Gonzales@taniadgv
THANK YOU