Google Closure Tools  XML
Índice dos Fóruns » Notícias
Autor Mensagem
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Pessoal, o Google acabou de liberar algumas bibliotecas que eles usavam internamente. Eu partilarmente acho que vou usar o Closure Compiler, ainda preciso testar.

Millions of Google users worldwide use JavaScript-intensive applications such as Gmail, Google Docs, and Google Maps. Like developers everywhere, Googlers want great web apps to be easier to create, so we've built many tools to help us develop these (and many other) apps. We're happy to announce the open sourcing of these tools, and proud to make them available to the web development community.
...


Mais detalhes em: http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Pessoal, estou usando o Closure Compiler aqui e é simplesmente sensacional!

Meu projeto tem 11 arquivos javascript com 210 KB no total.
Depois do build com WHITESPACE_ONLY cai para 89 KB. Com SIMPLE_OPTIMIZATION cai para 78 KB!!!
Não estou usando ADVANCED_OPTIMIZATION pq ele renomeia muita coisa que não pode e é inviável eu configurar para ele não fazer isso (uso muitas bibliotecas no meu projeto). A não ser que eu dê build das bibliotecas junto, mas ai fica muita coisa...

Enfim, para quem usa NetBeans e quiser testar, primeiramente configure o compiler.jar para ir para o build da aplicação e insira o seguinte código no build.xml do projeto.



Nesse exemplo, pego 3 arquivos (arquivo1, arquivo2 e arquivoN), otimizo os três e coloco o resultado em application-min.js.
Para mais opções vejam a documentação no site.

[]´s

This message was edited 1 time. Last update was at 07/11/2009 11:36:23


"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
Sergio Lopes
Moderador
[Avatar]

Membro desde: 17/11/2003 00:22:10
Mensagens: 1131
Localização: São Paulo - SP
Offline

sabe a diferenca entre o closure compiler e o yui compressor? o closure faz algo a mais? sera q eh mais eficiente?

e aquela biblioteca closure eh feinha hein hehehehe prefiro muito mais o jquery

Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Sergio Lopes wrote:sabe a diferenca entre o closure compiler e o yui compressor? o closure faz algo a mais? sera q eh mais eficiente?

e aquela biblioteca closure eh feinha hein hehehehe prefiro muito mais o jquery


Então Sergio, sinceramente não sei a diferença pois não cheguei a usar o YUI compressor. Já tentei integrar o JSBuilder (do pessoal do ExtJS) no meu projeto, mas não tive muito sucesso e desencanei. Ontem dando uma olhada no Reader eu vi Closure Compiler e decidi testar e gostei. Eu ia testar o YUI compressor essa semana, mas como já coloquei o Closure Compiler para funcionar, acho que não vou mais alterar isso.

Eu nem olhei a biblioteca deles justamente por ser fã de carteirinha do jQuery. No meu caso o que foi mais útil mesmo foi o Compiler.

[]´s

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Sergio Lopes wrote:sabe a diferenca entre o closure compiler e o yui compressor? o closure faz algo a mais? sera q eh mais eficiente?

e aquela biblioteca closure eh feinha hein hehehehe prefiro muito mais o jquery


Oi de novo Sergio.
Decidir testar aqui o YUI compressor. Ao meu ver até agora o Closure Compiler é melhor quanto ao uso e a quantidade de opções para se passar para o compressor. O YUI tem pouquíssimas opções e até agora não achei uma forma de colocar vários arquivos em um. Tem que fazer arquivo por arquivo.
Uma vantagem do YUI compressor é que ele compacta css tbm.

Algumas discussões quanto a falta da funcionalidade de juntar arquivos:
http://yuilibrary.com/projects/yuicompressor/ticket/1872317
http://yuilibrary.com/forum/viewtopic.php?p=4633

Até agora ainda estou achando o Closure Compiler melhor. Vou comparar os arquivos gerados e já posto o que obtive.
[]'s

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Pessoal, segue uma comparação bem simples entre o Closure Compiler e o YUI Compressor.

Arquivo usado para compressão: application.js
Tamanho: 84.296 bytes ~ 82,3 KB

Arquivo comprimido com YUI Compressor: application-min-yui.js
Tamanho: 33.966 bytes ~ 33,1 KB

Arquivo comprimido com Closure Compiler: application-min-closure-w.js
Modo de compressão: WHITESPACE_ONLY
Tamanho: 39.607 bytes ~ 38,6 KB

Arquivo comprimido com Closure Compiler: application-min-closure-so.js
Modo de compressão: SIMPLE_OPTIMIZATIONS
Tamanho: 33.318 bytes ~ 32,5 KB

Arquivo comprimido com Closure Compiler: application-min-closure-ao.js
Modo de compressão: ADVANCED_OPTIMIZATIONS
Tamanho: 24.821 bytes ~ 24,2 KB

Conclusões:
- O tamanho dos arquivos gerados quando comparado o YUI compressor com o Closure Compiler em modo SIMPLE_OPTIMIZATION não varia muito.
- O código ofuscado gerado é praticamente o mesmo.
- O Closure Compiler tem muito mais opções que o YUI compressor.
- O YUI compressor também otimiza código css.

Ainda fico com o Closure Compiler.

[]´s

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
victorcosta
JavaBaby
[Avatar]

Membro desde: 07/01/2007 01:29:37
Mensagens: 95
Localização: Recife - PE
Offline

Tem que testar também o tamanho do arquivo depois do gzip, que faz uma diferença brutal
[MSN]
Sergio Lopes
Moderador
[Avatar]

Membro desde: 17/11/2003 00:22:10
Mensagens: 1131
Localização: São Paulo - SP
Offline

boa, david! valeu pelos testes

e victor, tem razao sobre o gzip. precisa ver se o otimizador usado melhora ou piora o trabalho do gzip

e eu tava lendo sobre o closure e uma opcao pareceu interessante: ele remover codigo nao chamado. q eu saiba o yui nao faz isso

Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Pessoal, falando em gzip, estou compactando o resultado do Closure Compiler, mas o navegador simplesmente não consegue ler o arquivo .gz.
Minha página tem simplesmente um <script type="text/javascript" src="${pageContext.request.contextPath}/javascript/application-min.js.gz"></script>

Como eu faria para funcionar? Ja procurei bastante e não achei uma solução que funcione. Na verdade consegui algo passando por um servlet primeiro (setando o content-encoding para gzip. Não tem uma forma mais simples?

[]´s

This message was edited 1 time. Last update was at 08/11/2009 00:01:35


"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
victorcosta
JavaBaby
[Avatar]

Membro desde: 07/01/2007 01:29:37
Mensagens: 95
Localização: Recife - PE
Offline

Na aplicação você deixa o arquivo .js normal, sem gzip

O gzip você vai configurar no Apache, habilitando o mod_deflate e adicionando isso no httpd.conf

Assim o Apache vai automaticamente gzipar os htmls, javascripts, css enviados, caso os browser suportem (praticamente todos, até o IE6)

Pra conferir o tamanho final dos arquivos enviados você pode usar algo como o plugin Firebug/YSlow do firefox

This message was edited 1 time. Last update was at 08/11/2009 00:02:11

[MSN]
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

victorcosta wrote:Na aplicação você deixa o arquivo .js normal, sem gzip

O gzip você vai configurar no Apache, habilitando o mod_deflate e adicionando isso no httpd.conf

Assim o Apache vai automaticamente gzipar os htmls, javascripts, css enviados, caso os browser suportem (praticamente todos, até o IE6)

Pra conferir o tamanho final dos arquivos enviados você pode usar algo como o plugin YSlow do firefox


É que eu não uso o Apache e sim o Tomcat para desenvolvimento. A minha aplicação vai rodar no Glassfish em produção.
Consegui fazer algo passando por um servlet, mas não gostei de como ficou.. Acho que um filtro tbm pode resolver minha questão... Vou dar uma testada.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
Sergio Lopes
Moderador
[Avatar]

Membro desde: 17/11/2003 00:22:10
Mensagens: 1131
Localização: São Paulo - SP
Offline

cada servidor tem uma configuracao especifica pra gzip (tomcat/jetty etc). acho melhor configurar isso no deploy que fazer vc mesmo

Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Sergio Lopes wrote:cada servidor tem uma configuracao especifica pra gzip (tomcat/jetty etc). acho melhor configurar isso no deploy que fazer vc mesmo

Pensei que não tinha como configurar no Tomcat. Como que eu poderia fazer isso Sergio?

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
Sergio Lopes
Moderador
[Avatar]

Membro desde: 17/11/2003 00:22:10
Mensagens: 1131
Localização: São Paulo - SP
Offline

http://tomcat.apache.org/tomcat-6.0-doc/config/http.html

Sérgio Lopes (twitter: @sergio_caelum)
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails
davidbuzatto
Forum Spammer
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 2095
Localização: São Carlos - SP
Offline

Sergio Lopes wrote:http://tomcat.apache.org/tomcat-6.0-doc/config/http.html

Obrigado Sergio, já consegui configurar aqui

[]´s

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
[WWW]
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team