javascript toolkit-2.0

37
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.0

Upload: thoughtworks

Post on 13-Jan-2015

676 views

Category:

Technology


0 download

DESCRIPTION

Desenvolver para web hoje é uma loucura. Simplesmente existem muitas tecnologias e ferramentas disponíveis. E cada dia surgem novas coisas! O objetivo desta palestra é classificar as várias áreas do desenvolvimento front-end, tratar das necessidades específicas de cada uma delas, sugerindo tecnologias que tem sido criadas para atendê-las. Vamos falar de Yeoman, Grunt, Angular, Require, testes e muito mais!

TRANSCRIPT

Page 1: Javascript toolkit-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.0

Page 2: Javascript toolkit-2.0

Vamos falar sobre as necessidades,

E então olhar para algumas ferramentas

2

Page 3: Javascript toolkit-2.0

SCAFFOLD (ANDAIME, ESQUELETO)

3

Iniciar novos projetos.

Produtividade.

Page 4: Javascript toolkit-2.0

4

bootstraps seed projects

Page 5: Javascript toolkit-2.0

AUTOMAÇÃO

5

Diversas tarefas/rotinas que precisam ser executadas frequentemente.

!

Compile, Test, Minify, Concat, Uglify, Etc.

Page 6: Javascript toolkit-2.0

6

github.com/broccolijs/broccoli

…ake’s (Make, Rake, etc)

Page 7: Javascript toolkit-2.0

7

minify-tools

concat-tools watch

Page 8: Javascript toolkit-2.0

8

Page 9: Javascript toolkit-2.0

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

Page 10: Javascript toolkit-2.0

10

Page 11: Javascript toolkit-2.0

CARREGAMENTO PREGUIÇOSO

11

Grandes projetos estão divididos em diferentes módulos.

Nem todos devem ser carregados de uma vez.

Page 12: Javascript toolkit-2.0

12

github.com/cujojs/curl

github.com/amdjs/amdjs-api

github.com/amdjs/caolan/async

Page 13: Javascript toolkit-2.0

TESTES

13

Executar e visualizar o resultado dos testes

Page 14: Javascript toolkit-2.0

14

Page 15: Javascript toolkit-2.0

15

Page 16: Javascript toolkit-2.0

FRAMEWORKS DE TESTES

16

Escrever os testes

!

Utilidades para mocking, spying, etc

Page 17: Javascript toolkit-2.0

17

Page 18: Javascript toolkit-2.0

18

Page 19: Javascript toolkit-2.0

TESTE PONTA A PONTA

19

Escrever testes que exercitam todo o fluxo da aplicação, da mesma maneira

como um usuário final faria.

Page 20: Javascript toolkit-2.0

20

Page 21: Javascript toolkit-2.0

21

Page 22: Javascript toolkit-2.0

TESTES SEM GUI

22

Como testar JavaScript sem um navegador com interface gráfica?

Page 23: Javascript toolkit-2.0

23

Page 24: Javascript toolkit-2.0

APLICAÇÕES

24

As aplicações estão ficando complexas e diversos frameworks foram criados

para suportar o desenvolvimento delas.

Page 25: Javascript toolkit-2.0

25

Google Closure Tools

Page 26: Javascript toolkit-2.0

UTILITÁRIOS PARA APLICAÇÕES

26

Você não precisa de um canhão para matar uma mosca.

Page 27: Javascript toolkit-2.0

27

Page 28: Javascript toolkit-2.0

UTILITÁRIOS PARA MANIPULAÇÃO DO DOM

28

Seleção e manipulação do DOM e funções auxiliares que funcionam

cross-browser

Page 29: Javascript toolkit-2.0

29

Page 30: Javascript toolkit-2.0

SIMPLES E INDISPENSÁVEIS UTILITÁRIOS

30

Código limpo; Programação funcional; Helpers e Utilitários;

Page 31: Javascript toolkit-2.0

31

lodash.com

github.com/kriskowal/q

baconjs sugarjs chancejs microjs

Page 32: Javascript toolkit-2.0

OUTRAS LINGUAGENS. ABSTRAÇÕES

32

github.com/clojure/clojurescript

Page 33: Javascript toolkit-2.0

NEED MOTIVATION TOOLS

ScaffoldSeveral 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

Page 34: Javascript toolkit-2.0

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 flowprotractor, casperjs,

nightwatch.js, watir webdriver

Test Support Support tests and helpers phantomjs, zombie.js, sinon, chai

Dom UtilitiesDOM 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)

LanguageHave 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

Page 35: Javascript toolkit-2.0

35

WHAT TOOLS

CSS Preprocessors sass, less

Preprocessors Libs compass, bourbon

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

CSS Frameworks boostrap, foundation, skeleton

Page 36: Javascript toolkit-2.0

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

36

Page 37: Javascript toolkit-2.0

Dúvidas e sugestões: !

[email protected]

MUITO OBRIGADO