SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à Javascript toolkit-2.0

Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutionsAndrea Tino
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2Martin de Keijzer
 
Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)
30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)
30 Tools for Modern .NET Web Development in 60 Minutes (Jonathan Tower)ITCamp
 
Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012Adam Mokan
 
FRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGFRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGSatish Chandra
 
Microservice pitfalls
Microservice pitfalls Microservice pitfalls
Microservice pitfalls Mite Mitreski
 
Building Top-Notch Androids SDKs
Building Top-Notch Androids SDKsBuilding Top-Notch Androids SDKs
Building Top-Notch Androids SDKsrelayr
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakSigma Software
 
Starting with jQuery
Starting with jQueryStarting with jQuery
Starting with jQueryAnil Kumar
 
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachJDD2015: Java Everywhere Again—with DukeScript - Jaroslav Tulach
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachPROIDEA
 
Javascript toolkit
Javascript toolkitJavascript toolkit
Javascript toolkitThoughtworks
 
UI5con 2017 - UI5 Evolution
UI5con 2017 - UI5 EvolutionUI5con 2017 - UI5 Evolution
UI5con 2017 - UI5 EvolutionPeter Muessig
 
Node.js Development Tools
 Node.js Development Tools Node.js Development Tools
Node.js Development ToolsSofiaCarter4
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileAbdel Moneim Emad
 

Similaire à Javascript toolkit-2.0 (20)

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

Plus 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
 

Plus 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
 

Dernier

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Dernier (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

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