SlideShare a Scribd company logo
2.0 
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
Vamos falar sobre as necessidades, 
E então olhar para algumas ferramentas 
2
SCAFFOLD (ANDAIME, ESQUELETO) 
3 
Iniciar novos projetos. 
Produtividade.
4 
bootstraps seed 
projects
AUTOMAÇÃO 
5 
Diversas tarefas/rotinas que precisam 
ser executadas frequentemente. 
! 
Compile, Test, Minify, Concat, Uglify, Etc.
6 
github.com/broccolijs/broccoli 
…ake’s (Make, Rake, etc)
7 
concat-tools watch 
minify-tools
8
GERENCIAMENTO DE DEPENDÊNCIAS 
9 
Aplicações JavaScript estão ficando 
cada vez maiores e complexas. 
! 
Dependem cada vez mais de diversos 
frameworks e bibliotecas
10
CARREGAMENTO PREGUIÇOSO 
11 
Grandes projetos estão divididos em 
diferentes módulos. 
Nem todos devem ser carregados de 
uma vez.
12 
github.com/cujojs/curl 
github.com/amdjs/caolan/async 
github.com/amdjs/amdjs-api
TESTES 
13 
Executar e visualizar o resultado dos testes
14
15
FRAMEWORKS DE TESTES 
16 
Escrever os testes 
! 
Utilidades para mocking, spying, etc
17
18
TESTE PONTA A PONTA 
19 
Escrever testes que exercitam todo o 
fluxo da aplicação, da mesma maneira 
como um usuário final faria.
20
21
TESTES SEM GUI 
22 
Como testar JavaScript sem um 
navegador com interface gráfica?
23
APLICAÇÕES 
24 
As aplicações estão ficando complexas e 
diversos frameworks foram criados 
para suportar o desenvolvimento delas.
25 
Google Closure Tools
UTILITÁRIOS PARA APLICAÇÕES 
26 
Você não precisa de um canhão para 
matar uma mosca.
27
UTILITÁRIOS PARA MANIPULAÇÃO DO DOM 
28 
Seleção e manipulação do DOM e 
funções auxiliares que funcionam 
cross-browser
29
SIMPLES E INDISPENSÁVEIS UTILITÁRIOS 
30 
Código limpo; Programação funcional; 
Helpers e Utilitários;
31 
lodash.com 
github.com/kriskowal/q 
baconjs sugarjs chancejs microjs
OUTRAS LINGUAGENS. ABSTRAÇÕES 
32 
github.com/clojure/clojurescript
NEED MOTIVATION TOOLS 
Scaffold 
Several tools. Several ways. Several Practices. Need to 
organize, and give some good foundation - best 
practices, good design. 
yeoman, Seed Projects, 
Html5Boilerplate, bootstraps 
(e.g. Twitter Bootstrap) 
Build / Automation Lots of tasks to execute. Compile. Test. Minify. Concat. Etc. 
grunt gulp, broccoli, 
component, ...ake's (e.g. Make, 
Rake, etc.) 
Automation 
Utilities Tasks that can be put in build the pipeline. minify, uglify, lint, jshint, 
watch 
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, amd.js, async.js 
Javascript 
Preprocessor 
The way you organize code in development time is different the 
way you publish your code. Need to do some processing in your 
javascript files before using them. 
browserift, webpack 
Application Applications on web are getting complex, need for 
frameworks that support app development. 
angular, backbone, ember, 
knockout 
Application 
Utilities 
Several application features that can be necessary (e.g. 
routing) page, director, crossroads 33
NEED MOTIVATION TOOLS 
Test Runner Execute and visualize test results karma, saucelabs 
Test Framework Write tests jasmine, mocha, qunit 
Test End to End Write tests for the whole application flow 
protractor, casperjs, 
nightwatch.js, watir webdriver 
Test Support Support tests and helpers phantomjs, zombie.js, sinon, 
chai 
Dom Utilities 
DOM selection and maniputation, some auxiliary 
functions, need for utilities that make work simple (and 
cross-browser) 
jquery, zepto, polymer, 
prototype 
JS Utilities Clean code, functional programming style, reactive 
programming features, helpers and utilities 
lodash, underscore, promise, 
fn.js, q.js, bacons.js, sugar.js, 
chance.js, moment.js, micro.js 
CI Continuous integration, continuous delivery, 
continuous deployment 
Any! (e.g. travis ci, jenkins, 
concrete, semaphore, go, snap) 
Language 
Have a syntactic sugar element, or even completelly 
different syntax (that in the end turn into javascript to 
run in the browser) 
coffeescript, clojurescript, 
typescript 34
35 
WHAT TOOLS 
CSS Preprocessors sass, less 
Preprocessors Libs compass, bourbon 
CSS Helpers susy, zenGrids, neat, normalize, 
modernizr, flexbox 
CSS Frameworks boostrap, foundation, skeleton
https://github.com/bymarkone/javascript-toolkit 
36
MUITO OBRIGADO 
Dúvidas e sugestões: 
! 
rmartins@thoughtworks.com

More Related Content

PDF
The Javascript Toolkit 2.0
PPTX
Angular 2 Básico
PPTX
JavaScriptMVC vs GI vs GWT
PPTX
Using Components to Build Native-Quality HTML5 Apps
PDF
Building at a glance
PDF
Front-End 개발의 괜찮은 선택 ES6 & React
PPTX
WindowTester PRO
PDF
Android Made Simple
The Javascript Toolkit 2.0
Angular 2 Básico
JavaScriptMVC vs GI vs GWT
Using Components to Build Native-Quality HTML5 Apps
Building at a glance
Front-End 개발의 괜찮은 선택 ES6 & React
WindowTester PRO
Android Made Simple

Similar to Javascript toolkit-2.0 (20)

PDF
Powerful tools for building web solutions
PPTX
Javascript Toolkit
PDF
Introduction to Node.js
KEY
2012 09-04 smart devcon - sencha touch 2
PPTX
Introduction to web application development with Vue (for absolute beginners)...
PDF
30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)
KEY
Single Page Applications - Desert Code Camp 2012
DOCX
FRAUD DETECTION IN ONLINE AUCTIONING
ODP
JavaFX in Action Part I
PDF
Microservice pitfalls
PDF
Building Top-Notch Androids SDKs
PDF
Java Framework comparison
PPTX
Pain Driven Development by Alexandr Sugak
PPTX
Starting with jQuery
PDF
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
PDF
Javascript toolkit
PDF
Javascript toolkit
PPTX
UI5con 2017 - UI5 Evolution
PDF
Node.js Development Tools
PPTX
SDLC & DevOps Transformation with Agile
Powerful tools for building web solutions
Javascript Toolkit
Introduction to Node.js
2012 09-04 smart devcon - sencha touch 2
Introduction to web application development with Vue (for absolute beginners)...
30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)
Single Page Applications - Desert Code Camp 2012
FRAUD DETECTION IN ONLINE AUCTIONING
JavaFX in Action Part I
Microservice pitfalls
Building Top-Notch Androids SDKs
Java Framework comparison
Pain Driven Development by Alexandr Sugak
Starting with jQuery
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
Javascript toolkit
Javascript toolkit
UI5con 2017 - UI5 Evolution
Node.js Development Tools
SDLC & DevOps Transformation with Agile
Ad

More from Thoughtworks (20)

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

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
KodekX | Application Modernization Development
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Cloud computing and distributed systems.
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Big Data Technologies - Introduction.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
sap open course for s4hana steps from ECC to s4
PDF
cuic standard and advanced reporting.pdf
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Cloud computing and distributed systems.
Understanding_Digital_Forensics_Presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf
Programs and apps: productivity, graphics, security and other tools
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Reach Out and Touch Someone: Haptics and Empathic Computing
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Big Data Technologies - Introduction.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation_ Review paper, used for researhc scholars
sap open course for s4hana steps from ECC to s4
cuic standard and advanced reporting.pdf

Javascript toolkit-2.0

  • 1. 2.0 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
  • 2. Vamos falar sobre as necessidades, E então olhar para algumas ferramentas 2
  • 3. SCAFFOLD (ANDAIME, ESQUELETO) 3 Iniciar novos projetos. Produtividade.
  • 4. 4 bootstraps seed projects
  • 5. AUTOMAÇÃO 5 Diversas tarefas/rotinas que precisam ser executadas frequentemente. ! Compile, Test, Minify, Concat, Uglify, Etc.
  • 7. 7 concat-tools watch minify-tools
  • 8. 8
  • 9. GERENCIAMENTO DE DEPENDÊNCIAS 9 Aplicações JavaScript estão ficando cada vez maiores e complexas. ! Dependem cada vez mais de diversos frameworks e bibliotecas
  • 10. 10
  • 11. CARREGAMENTO PREGUIÇOSO 11 Grandes projetos estão divididos em diferentes módulos. Nem todos devem ser carregados de uma vez.
  • 13. TESTES 13 Executar e visualizar o resultado dos testes
  • 14. 14
  • 15. 15
  • 16. FRAMEWORKS DE TESTES 16 Escrever os testes ! Utilidades para mocking, spying, etc
  • 17. 17
  • 18. 18
  • 19. TESTE PONTA A PONTA 19 Escrever testes que exercitam todo o fluxo da aplicação, da mesma maneira como um usuário final faria.
  • 20. 20
  • 21. 21
  • 22. TESTES SEM GUI 22 Como testar JavaScript sem um navegador com interface gráfica?
  • 23. 23
  • 24. APLICAÇÕES 24 As aplicações estão ficando complexas e diversos frameworks foram criados para suportar o desenvolvimento delas.
  • 26. UTILITÁRIOS PARA APLICAÇÕES 26 Você não precisa de um canhão para matar uma mosca.
  • 27. 27
  • 28. UTILITÁRIOS PARA MANIPULAÇÃO DO DOM 28 Seleção e manipulação do DOM e funções auxiliares que funcionam cross-browser
  • 29. 29
  • 30. SIMPLES E INDISPENSÁVEIS UTILITÁRIOS 30 Código limpo; Programação funcional; Helpers e Utilitários;
  • 31. 31 lodash.com github.com/kriskowal/q baconjs sugarjs chancejs microjs
  • 32. OUTRAS LINGUAGENS. ABSTRAÇÕES 32 github.com/clojure/clojurescript
  • 33. NEED MOTIVATION TOOLS Scaffold Several tools. Several ways. Several Practices. Need to organize, and give some good foundation - best practices, good design. yeoman, Seed Projects, Html5Boilerplate, bootstraps (e.g. Twitter Bootstrap) Build / Automation Lots of tasks to execute. Compile. Test. Minify. Concat. Etc. grunt gulp, broccoli, component, ...ake's (e.g. Make, Rake, etc.) Automation Utilities Tasks that can be put in build the pipeline. minify, uglify, lint, jshint, watch 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, amd.js, async.js Javascript Preprocessor The way you organize code in development time is different the way you publish your code. Need to do some processing in your javascript files before using them. browserift, webpack Application Applications on web are getting complex, need for frameworks that support app development. angular, backbone, ember, knockout Application Utilities Several application features that can be necessary (e.g. routing) page, director, crossroads 33
  • 34. NEED MOTIVATION TOOLS Test Runner Execute and visualize test results karma, saucelabs Test Framework Write tests jasmine, mocha, qunit Test End to End Write tests for the whole application flow protractor, casperjs, nightwatch.js, watir webdriver Test Support Support tests and helpers phantomjs, zombie.js, sinon, chai Dom Utilities DOM selection and maniputation, some auxiliary functions, need for utilities that make work simple (and cross-browser) jquery, zepto, polymer, prototype JS Utilities Clean code, functional programming style, reactive programming features, helpers and utilities lodash, underscore, promise, fn.js, q.js, bacons.js, sugar.js, chance.js, moment.js, micro.js CI Continuous integration, continuous delivery, continuous deployment Any! (e.g. travis ci, jenkins, concrete, semaphore, go, snap) Language Have a syntactic sugar element, or even completelly different syntax (that in the end turn into javascript to run in the browser) coffeescript, clojurescript, typescript 34
  • 35. 35 WHAT TOOLS CSS Preprocessors sass, less Preprocessors Libs compass, bourbon CSS Helpers susy, zenGrids, neat, normalize, modernizr, flexbox CSS Frameworks boostrap, foundation, skeleton
  • 37. MUITO OBRIGADO Dúvidas e sugestões: ! rmartins@thoughtworks.com