SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
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
THE IDEA OF THE TOOLKIT
2
The Idea
Of A 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:
4
AGILE PURPOSE FOR DELIVERY
5
Deliver Fast
Deliver Often
Deliver Value
AGILE CHANGES IN PROCESS
6
Iterations
User Stores
Planning
Stand Ups
Retrospectives
Inception
Scrum - Lean -
XP Kanban
Team
Communication
…
TECHNICAL SUPPORT FOR AGILE
7
Continuous Delivery
Continuous Integration
Evolutionary Architecture
Evolutive Design
TDD
Lot’s of Automation
Programming Languages
Design Patterns
…
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/
9
And
Javascript?
10
The great enabler…
https://github.com/bymarkone/
javascript-toolkit
11
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 Utilities
DOM 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.js
12
13
WHAT TOOLS
CSS Preprocessors sass, less
Preprocessors Libs compass, bourbon
CSS Helpers
susy, zenGrids, neat, normalize,
modernizr, flexbox
CSS Frameworks boostrap, foundation, skeleton
Let’s talk about this needs,
And take a look at some tools
14
SCAFFOLD
15
Several tools. Several ways.
Several Practices. Need to
organize, and give some good
foundation - best practices,
good design.
16
BUILD - AUTOMATION
17
Lots of tasks to execute. Compile. Test.
Minify. Concat. Uglify. Etc.
18
github.com/broccolijs/broccoli
DEPENDENCY MANAGEMENT
19
Applications are getting complex. They
rely on several other libraries and
frameworks.
20
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.
22
github.com/cujojs/curl
github.com/webpack/webpack
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.
24
mocha, qunit, protractor, sinon, saucelabs, duck angular
APPLICATION
25
Applications on web are getting
complex, need for frameworks that
support app development.
26
DOM UTILITIES
27
DOM selection and manipulation, some
auxiliary functions, need for utilities that
make work simple (and cross-browser)
28
LANGUAGE UTILITIES
29
Clean code, functional programming
style, reactive programming features,
helpers and utilities
30
31
lodash.com
github.com/kriskowal/q
CI
32
Continuous integration, continuous
delivery, continuous deployment
33
github.com/ryankee/concrete
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)
35
github.com/clojure/clojurescript
OTHER JAVASCRIPT
36
Several tools. Several ways. Several
Practices. Need to organize, and give
some good foundation - best practices,
good design.
37
minify-tools
concat-tools
WRAP UP
38
Difference Needs|Tools and
their relation
Agile demands for you as
a developer
Keep your mind open
For questions or suggestions:
!
Marcos Vinicius
@bymarkone
github.com/bymarkone
!
Renan Martins
@renan89
THANK YOU

Mais conteúdo relacionado

Mais procurados

Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteChristian Heilmann
 
Vim 讓你寫 Ruby 的速度飛起來
Vim 讓你寫 Ruby 的速度飛起來Vim 讓你寫 Ruby 的速度飛起來
Vim 讓你寫 Ruby 的速度飛起來Chris Houng
 
Coldfusion
ColdfusionColdfusion
ColdfusionRam
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven designRick van der Arend
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Application Development Using Java - DIYComputerScience Course
Application Development Using Java - DIYComputerScience CourseApplication Development Using Java - DIYComputerScience Course
Application Development Using Java - DIYComputerScience Courseparag
 
[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...
[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...
[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...iMasters
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014jbandi
 
Hack your carrer : teach yourself coding
Hack your carrer : teach yourself codingHack your carrer : teach yourself coding
Hack your carrer : teach yourself codingWomen Who Code Tokyo
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHPGautam Rege
 
Frontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed ComparisonFrontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed ComparisonMariya James
 
TDD with BDD in PHP and Symfony
TDD with BDD in PHP and SymfonyTDD with BDD in PHP and Symfony
TDD with BDD in PHP and SymfonyKamil Adryjanek
 
Behavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning RORBehavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning RORSmartLogic
 
2009 Eclipse Con
2009 Eclipse Con2009 Eclipse Con
2009 Eclipse Conguest29922
 
Ampersand Commerce Graduate Schemes 2013
Ampersand Commerce Graduate Schemes 2013Ampersand Commerce Graduate Schemes 2013
Ampersand Commerce Graduate Schemes 2013Ampersand
 
From Objective-C to Swift
From Objective-C to SwiftFrom Objective-C to Swift
From Objective-C to SwiftPablo Villar
 
From Monkey Coders To Smart Gorillas - Web Summit 2014
From Monkey Coders To Smart Gorillas - Web Summit 2014From Monkey Coders To Smart Gorillas - Web Summit 2014
From Monkey Coders To Smart Gorillas - Web Summit 2014José Ignacio Fernández
 

Mais procurados (19)

Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
Vim 讓你寫 Ruby 的速度飛起來
Vim 讓你寫 Ruby 的速度飛起來Vim 讓你寫 Ruby 的速度飛起來
Vim 讓你寫 Ruby 的速度飛起來
 
Coldfusion
ColdfusionColdfusion
Coldfusion
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven design
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Application Development Using Java - DIYComputerScience Course
Application Development Using Java - DIYComputerScience CourseApplication Development Using Java - DIYComputerScience Course
Application Development Using Java - DIYComputerScience Course
 
[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...
[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...
[JS EXPERIENCE 2018] Os segredos dos pricipais frameworks JS: Vanilla.js - Ig...
 
There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014There is something about JavaScript - Choose Forum 2014
There is something about JavaScript - Choose Forum 2014
 
React Native
React NativeReact Native
React Native
 
Hack your carrer : teach yourself coding
Hack your carrer : teach yourself codingHack your carrer : teach yourself coding
Hack your carrer : teach yourself coding
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 
Frontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed ComparisonFrontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed Comparison
 
Functional javascript
Functional javascriptFunctional javascript
Functional javascript
 
TDD with BDD in PHP and Symfony
TDD with BDD in PHP and SymfonyTDD with BDD in PHP and Symfony
TDD with BDD in PHP and Symfony
 
Behavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning RORBehavior Driven Education: A Story of Learning ROR
Behavior Driven Education: A Story of Learning ROR
 
2009 Eclipse Con
2009 Eclipse Con2009 Eclipse Con
2009 Eclipse Con
 
Ampersand Commerce Graduate Schemes 2013
Ampersand Commerce Graduate Schemes 2013Ampersand Commerce Graduate Schemes 2013
Ampersand Commerce Graduate Schemes 2013
 
From Objective-C to Swift
From Objective-C to SwiftFrom Objective-C to Swift
From Objective-C to Swift
 
From Monkey Coders To Smart Gorillas - Web Summit 2014
From Monkey Coders To Smart Gorillas - Web Summit 2014From Monkey Coders To Smart Gorillas - Web Summit 2014
From Monkey Coders To Smart Gorillas - Web Summit 2014
 

Destaque

Voto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice Heck
Voto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice HeckVoto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice Heck
Voto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice HeckThoughtworks
 
What if-your-application-could-speak, by Marcos Silveira
What if-your-application-could-speak, by Marcos SilveiraWhat if-your-application-could-speak, by Marcos Silveira
What if-your-application-could-speak, by Marcos SilveiraThoughtworks
 
Software Kaizen, por Gabriela Guerra e Luiza Souza
Software Kaizen, por Gabriela Guerra e Luiza SouzaSoftware Kaizen, por Gabriela Guerra e Luiza Souza
Software Kaizen, por Gabriela Guerra e Luiza SouzaThoughtworks
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SThoughtworks
 
Protractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endProtractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endDaniel Amorim
 

Destaque (6)

Voto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice Heck
Voto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice HeckVoto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice Heck
Voto-Como-Vamos, por Carlos Vilella, Gabriela Guerra e Nelice Heck
 
Seja Tester Ágil
Seja Tester ÁgilSeja Tester Ágil
Seja Tester Ágil
 
What if-your-application-could-speak, by Marcos Silveira
What if-your-application-could-speak, by Marcos SilveiraWhat if-your-application-could-speak, by Marcos Silveira
What if-your-application-could-speak, by Marcos Silveira
 
Software Kaizen, por Gabriela Guerra e Luiza Souza
Software Kaizen, por Gabriela Guerra e Luiza SouzaSoftware Kaizen, por Gabriela Guerra e Luiza Souza
Software Kaizen, por Gabriela Guerra e Luiza Souza
 
Projeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.SProjeto de API, por Gilmar P.S
Projeto de API, por Gilmar P.S
 
Protractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to endProtractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to end
 

Semelhante a Javascript toolkit

The Javascript Toolkit 2.0
The Javascript Toolkit 2.0The Javascript Toolkit 2.0
The Javascript Toolkit 2.0Marcos Vinícius
 
GeorgeTechCVUPDDEC2015
GeorgeTechCVUPDDEC2015GeorgeTechCVUPDDEC2015
GeorgeTechCVUPDDEC2015George Nicol
 
Introduction about Full stack Development
Introduction about Full stack DevelopmentIntroduction about Full stack Development
Introduction about Full stack Developmentrajasekarandpm
 
Alexander Zeng
Alexander ZengAlexander Zeng
Alexander ZengAlex Zeng
 
@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001Fred Jabbari
 
Javascript toolkit-2.0
Javascript toolkit-2.0Javascript toolkit-2.0
Javascript toolkit-2.0Thoughtworks
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDevelcz
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails PresentationPaul Pajo
 
Prudential Insurance Exp
Prudential Insurance ExpPrudential Insurance Exp
Prudential Insurance ExpAnkit Chohan
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageDerek Collison
 
AbhishekMalik_CV_30Dec2018
AbhishekMalik_CV_30Dec2018AbhishekMalik_CV_30Dec2018
AbhishekMalik_CV_30Dec2018Abhishek Malik
 
История одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр СугакИстория одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр СугакSigma Software
 
AbhishekMalik_CV_08jan2019
AbhishekMalik_CV_08jan2019AbhishekMalik_CV_08jan2019
AbhishekMalik_CV_08jan2019Abhishek Malik
 
AbhishekMalik_CV_22Jan2019
AbhishekMalik_CV_22Jan2019AbhishekMalik_CV_22Jan2019
AbhishekMalik_CV_22Jan2019Abhishek Malik
 
AbhishekMalik_CV_01Mar19
AbhishekMalik_CV_01Mar19AbhishekMalik_CV_01Mar19
AbhishekMalik_CV_01Mar19Abhishek Malik
 
Abhishek malik_cv_01jan2019
Abhishek malik_cv_01jan2019Abhishek malik_cv_01jan2019
Abhishek malik_cv_01jan2019Abhishek Malik
 

Semelhante a Javascript toolkit (20)

The Javascript Toolkit 2.0
The Javascript Toolkit 2.0The Javascript Toolkit 2.0
The Javascript Toolkit 2.0
 
GeorgeTechCVUPDDEC2015
GeorgeTechCVUPDDEC2015GeorgeTechCVUPDDEC2015
GeorgeTechCVUPDDEC2015
 
Javascript Toolkit
Javascript ToolkitJavascript Toolkit
Javascript Toolkit
 
Introduction about Full stack Development
Introduction about Full stack DevelopmentIntroduction about Full stack Development
Introduction about Full stack Development
 
Alexander Zeng
Alexander ZengAlexander Zeng
Alexander Zeng
 
@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001@@@Resume2016 11 11_v001
@@@Resume2016 11 11_v001
 
Serguei_Kouzmine_Resume
Serguei_Kouzmine_ResumeSerguei_Kouzmine_Resume
Serguei_Kouzmine_Resume
 
Neeraja ganesh fs-v1
Neeraja ganesh fs-v1Neeraja ganesh fs-v1
Neeraja ganesh fs-v1
 
Javascript toolkit-2.0
Javascript toolkit-2.0Javascript toolkit-2.0
Javascript toolkit-2.0
 
Daniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého SchizmaDaniel Steigerwald - Este.js - konec velkého Schizma
Daniel Steigerwald - Este.js - konec velkého Schizma
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
Prudential Insurance Exp
Prudential Insurance ExpPrudential Insurance Exp
Prudential Insurance Exp
 
Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go language
 
AbhishekMalik_CV_30Dec2018
AbhishekMalik_CV_30Dec2018AbhishekMalik_CV_30Dec2018
AbhishekMalik_CV_30Dec2018
 
Kunal bhatia resume mass
Kunal bhatia   resume massKunal bhatia   resume mass
Kunal bhatia resume mass
 
История одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр СугакИстория одного успешного ".NET" проекта, Александр Сугак
История одного успешного ".NET" проекта, Александр Сугак
 
AbhishekMalik_CV_08jan2019
AbhishekMalik_CV_08jan2019AbhishekMalik_CV_08jan2019
AbhishekMalik_CV_08jan2019
 
AbhishekMalik_CV_22Jan2019
AbhishekMalik_CV_22Jan2019AbhishekMalik_CV_22Jan2019
AbhishekMalik_CV_22Jan2019
 
AbhishekMalik_CV_01Mar19
AbhishekMalik_CV_01Mar19AbhishekMalik_CV_01Mar19
AbhishekMalik_CV_01Mar19
 
Abhishek malik_cv_01jan2019
Abhishek malik_cv_01jan2019Abhishek malik_cv_01jan2019
Abhishek malik_cv_01jan2019
 

Mais de Thoughtworks

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a ProductThoughtworks
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & DogsThoughtworks
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovationThoughtworks
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teamsThoughtworks
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of InnovationThoughtworks
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
When we design together
When we design togetherWhen we design together
When we design togetherThoughtworks
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)Thoughtworks
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloudThoughtworks
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of InnovationThoughtworks
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go liveThoughtworks
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the RubiconThoughtworks
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!Thoughtworks
 
Docker container security
Docker container securityDocker container security
Docker container securityThoughtworks
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unitThoughtworks
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Thoughtworks
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to TuringThoughtworks
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked outThoughtworks
 

Mais de Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
When we design together
When we design togetherWhen we design together
When we design together
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloud
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go live
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Error handling
Error handlingError handling
Error handling
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unit
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Javascript toolkit

  • 1. 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
  • 2. THE IDEA OF THE TOOLKIT 2 The Idea Of A Toolkit
  • 3. 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:
  • 4. 4
  • 5. AGILE PURPOSE FOR DELIVERY 5 Deliver Fast Deliver Often Deliver Value
  • 6. AGILE CHANGES IN PROCESS 6 Iterations User Stores Planning Stand Ups Retrospectives Inception Scrum - Lean - XP Kanban Team Communication …
  • 7. TECHNICAL SUPPORT FOR AGILE 7 Continuous Delivery Continuous Integration Evolutionary Architecture Evolutive Design TDD Lot’s of Automation Programming Languages Design Patterns …
  • 8. 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/
  • 12. 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 Utilities DOM 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.js 12
  • 13. 13 WHAT TOOLS CSS Preprocessors sass, less Preprocessors Libs compass, bourbon CSS Helpers susy, zenGrids, neat, normalize, modernizr, flexbox CSS Frameworks boostrap, foundation, skeleton
  • 14. Let’s talk about this needs, And take a look at some tools 14
  • 15. SCAFFOLD 15 Several tools. Several ways. Several Practices. Need to organize, and give some good foundation - best practices, good design.
  • 16. 16
  • 17. BUILD - AUTOMATION 17 Lots of tasks to execute. Compile. Test. Minify. Concat. Uglify. Etc.
  • 19. DEPENDENCY MANAGEMENT 19 Applications are getting complex. They rely on several other libraries and frameworks.
  • 20. 20
  • 21. 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.
  • 23. 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.
  • 24. 24 mocha, qunit, protractor, sinon, saucelabs, duck angular
  • 25. APPLICATION 25 Applications on web are getting complex, need for frameworks that support app development.
  • 26. 26
  • 27. DOM UTILITIES 27 DOM selection and manipulation, some auxiliary functions, need for utilities that make work simple (and cross-browser)
  • 28. 28
  • 29. LANGUAGE UTILITIES 29 Clean code, functional programming style, reactive programming features, helpers and utilities
  • 30. 30
  • 34. 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)
  • 36. OTHER JAVASCRIPT 36 Several tools. Several ways. Several Practices. Need to organize, and give some good foundation - best practices, good design.
  • 38. WRAP UP 38 Difference Needs|Tools and their relation Agile demands for you as a developer Keep your mind open
  • 39. For questions or suggestions: ! Marcos Vinicius @bymarkone github.com/bymarkone ! Renan Martins @renan89 THANK YOU