modularizando seu código com requirejs charles viegas [email protected] @charlesviegas

16
Modularizando seu código com Requirejs Charles Viegas [email protected] @charlesviegas

Upload: internet

Post on 22-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Modularizando seu código com Requirejs

Charles [email protected]

@charlesviegas

Page 2: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Sobre mim

• Sócio e consultor da Codate• Mais de 10 anos de experiência• Conhecimentos– Javascript– Java– Arquitetura de Software– SOA e BPM

Page 3: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

<script src="/assets/js/lib/jquery-1.7.1.min.js"></script><script src="/assets/js/lib/jquery-ui-1.8.17.custom.min.js"></script><script src="/assets/js/global.js"></script><script src="/assets/js/breaking-news.js"></script><script src="/assets/js/lib/jquery.colorbox.js"></script><script src="/assets/js/modal.js"></script><script src="http://use.typekit.com/did3rrm.js"></script><!--[if lt IE 9]> <script src="/assets/js/lib/cssSandpaper/EventHelpers.js"></script> <script src="/assets/js/lib/cssSandpaper/cssQuery-p.js"></script> <script src="/assets/js/lib/cssSandpaper/jcoglan.com/sylvester.js"></script> <script src="/assets/js/lib/selectivizr-min.js"></script><![endif]--><script src="/assets/js/lib/bgpos.js"></script><script src="http://w.sharethis.com/button/buttons.js"></script><script src="/assets/js/lib/yepnope.css-prefix.js"></script><script src="/assets/js/feature-carousel.js"></script><script src="/assets/js/dropdown.js"></script><script src="/assets/js/dropdown.js"></script><script src="/assets/js/dropdown.js"></script><script src="/assets/js/dropdown.js"></script>

Conhece?

Page 4: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Muitos módulos

• Um arquivo por módulo• Problemas de performance• Carregamento assíncrono?

Page 5: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Dependências complexas

• Qual a ordem de carregamento dos módulos?• Difícil de saber a ordem de cabeça

Page 6: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas
Page 7: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

RequireJS

• Deixa claras as dependências• Evita globais• Reduz o acomplamento• Carrega scripts sobre demanda

Page 8: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Uso

<script src=“require.js” data-main=“main”></script>

Page 9: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

main.js

require(["app"], function(app) { app.init();

});

Page 10: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

app.js

define(["lib/account", "lib/session"], function (account, session) { return { init: function () {

// Faz alguma coisa }

}; });

Page 11: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Definindo um módulo

define( // Opcional, default é o nome do arquivo. nomeModulo, // Opcional, array com nome das dependências. dependencias, // Os parâmetros contém as refs das dependências. function(params){

});

Page 12: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Otimização

• Combina vários arquivos•Minify• r.js

Page 13: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

https://github.com/charlesviegas/requirejs.git

Page 14: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

www.codate.com.br/blogs

Page 15: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas

Obrigado!

Page 16: Modularizando seu código com Requirejs Charles Viegas charles.viegas@codate.com.br @charlesviegas