Sábado, 2 de Maio de 2009

Desenvolvimento para Web 2.0

Oi pessoal,

Nesses últimos meses andei mexendo com um monte de tecnologias diferentes para a Web e acho que já está mais que hora de partilhar com vcs! Ext JS, GWT, GXT e Adobe Flex são algumas dessas tecnologias que tive a chance de testar, estudar e usar em projetos comerciais. 

O legal de tudo isso é o fato de poder explorar não só o que são essas tecnologias mas também como integra-las a componentes novos, código legado e aos frameworks que usamos no nosso dia-a-dia. 

Gostaria de começar apresentando o Ext JS - pra quem não conhece, trata-se de um framework Ajax centrado na construção de interfaces ricas com alta interatividade e usabilidade. Vale a pena dar uma olhada no site www.extjs.com e conferir os exemplos, a documentação e até mesmo baixar o framework para explorar um pouco.

Nos próximos posts eu vou mostrar alguns exemplos, fragmentos de código e dicas de como se pode conseguir bons resultados usando Ext JS.

Recentemente foi lancada uma nova API chamada Ext Core - vejam o que eles prometem:

Ext Core is a lightweight, high-performance cross-browser JavaScript library for building dynamic web pages. It features:
* Highly portable 25kb file size (minified/gzipped)
* Flexible, permissive open-source MIT license
* Comprehensive 75 page manual written by the Ext team
* The same easy to use API you're already used to

Bem, como o texto mesmo fala, a idéia central é prover componenentes visuais leves para a construção de páginas dinâmicas na web. Uma coisa que de caraachei interessante nessa API foi um suporte mais natural a meu ver de herança entre objectos JS. Vejam só isso:

Person = Ext.extend(Object, {
   constructor: function(first, last){
      this.firstName = first;
      this.lastName = last;
   }

   getName: function(){
      return this.firstName + ' ' + this.lastName;
   }
});

Developer = Ext.extend(Person, {
getName: function(){
   if(this.isCoding){
      return 'Go Away!';
   } else{
      // Access the superclass getName method
       return Developer.superclass.getName.call(this);
   }
}
});

var p = new Person('John', 'Smith');
alert(p.getName());

Outra coisa legal é a documentação que me parece bem mais detalhada que a do original Ext JS. Os exemplos são bem claros, e o conteúdo das explicações do Manual(www.extjs.com/products/extcore/manual/index.php)  com certeza ajudam a entender até mesmo conceitos da API original.

Bem, feitas as apresentações, nas próximas rodadas vamos ter algo concreto para nos divertir!

Abraços!

Estamos voltando

Oi amigos,

Infelizmente já faz um certo tempo que não paro um pouco pra postar algo! Dizer que a vida anda corrida é "chover no molhado", a de todos vcs deve estar assim também, então não vamos perder mais tempo e falar sobre coisas legais!

Abraços!

Quarta-feira, 25 de Junho de 2008

Searchme - Novo estilo de Busca na Web 2.0

Oi pessoal,

Esse lance de Web 2.0 anda numa velocidade absurda mesmo!

Eu que já havia me encantado com sites fantásticos tais como o Netvibes e seus brilhantes recursos visuais, agora dei de cara com uma ferramenta de busca bastante ousada: www.searchme.com

Como Engine de busca, a ferramenta não me surpreende pois acredito que nada supera o Google, mas quanto aos recursos visuais, interatividade e funcionalidades é bem legal.

Com ele é possível ter um preview das páginas resultantes de uma busca, numa visão que usa um slider. Como vcs podem ver na imagem a seguir, é muito legal!


Uma das coisa mais legais que achei foi uma barra de ferramentas que aparece no canto superior direito com a qual é possível compartilhar uma página recem encontrada com um amigo enviando-lhe o link ou mesmo salvar numa "pilha" uma determinada página que tenha chamado a atenção - basta arrastar a página para a "pillha" :D.

Bem, para um Beta acho que está indo muito bem! Aconselho a darem uma olhada e descobrir mais detalhes. Esse tipo de menu tem se mostrado a febre do momento nas interfaces gráficas de SOs e aplicações móveis.

Tha's all folks!

Sexta-feira, 20 de Junho de 2008

Exadel Flamingo - Flex com Seam e Spring

Pessoal,

Uma ótima notícia para os amantes do desenvolvimento Web é o lançamento do Exadel Flamingo. Trata-se de uma ferramenta para integração do Adobe Flex na camada de apresentação com os inúmeros poderes do JBoss Seam e Spring.
Eu já estava tendo ótimos resultado com JBoss Seam e tecnologias tais como JSF, e mais recentemente Ext JS, mas agora a coisa tomou um rumo muito mais produtivo.
Com o Adobe Flex agora na jogada, o desenvolvedor ganha muita flexibilidade na construção de componentes de UI, por conta da linguagem de scritp fornecida o Action Script.
As facilidades em se poder implementar herânça, polimorfismo e outras boas práticas agora é bem mais animadora. Eu sempre achei o JSF incapaz de oferecer a flexibilidade e riqueza de componentes visuais necessárias para construção das novas aplicações que a Web 2.0 possibilita. Minhas experiências com frameworks de AJAX tais como YUI e Ext JS já me deram novas esperânças, mas confesso que ainda tenho várias críticas a fazer sobre a Segurança nessas ferramentas.
Eu já vinha ha algum tempo pensando em como poderia estar integrando o conjunto de idéias que venho criando com o Flex e quando soube do Flamingo não pude resistir à tentação de baixa-lo e investigar.
Bem, as primeiras impressões são as melhores! Pelo que pude ver estou convencido a explorar um pouco mais alem dos guias e exemplos.
Para quem ficou curioso, segue abaixo alguns links relevantes:
  • http://www.theserverside.com/news/thread.tss?thread_id=49358
  • http://exadel.com/web/portal/download/flamingo
That's it!

Quinta-feira, 29 de Maio de 2008

No Silver Bullet

Oi pessoal,

Certa vez recebi um e-mail com uma piada com o seguinte título: "Como um programador mata um Dragão". Acredito que quase todos vcs chegaram a se divertir com esse e-mail mas o que sempre me chamou a atenção foi a profunda verdade que vi em relação à atitude do "programador Java": "Chega, encontra o dragão, desenvolve um framework para aniquilamento de dragões em múltiplas camadas, escreve vários artigos sobre o framework mas não mata o dragão."

Bem, piadas a parte, é disso que quero falar nesse post: A "bala de prata".
Quem me conhece a mais tempo, sabe que sempre bati nessa tecla, falando que não acredito ser possível existir, ou mesmo desenvolver uma ferramenta que resolva de forma completa todos os nossos problemas.

Vamos pensar em desenvolvimento de aplicações Java EE. Eu sempre fui um dos que defendeu o uso Camadas de Software e Padrões de Projeto, mas tambem sempre acreditei que o uso de tais recursos deveria ser um processo natural, reflexo da " real necessidade". Acho que isso ficou sempre mais claro pra mim por conta da época em que eu era músico e que tinha como direcionamento uma das máximas do Jazz: menos é mais!

Esse post é apenas uma reflexão sobre como é facil perder o foco do problema que temos a resolver e gastamos nosso tempo procurando a "bala de prata", a solução perfeita que de forma "automágica" pouparia o tempo dos programadores livrando-os das atividades repetitivas e tediosas.

Isso me faz lembrar de coisas tais como JDO! Não sei se todos chegaram a ter contato com isso ... Fruto de uma Especificação Java que nunca vingou, complexa demais, difícil de implementar e carente de coisas básicas tais como ser possível remover elementos por meio de sua OQL.

Por outro lado chamo a atenção ao outra tecnologia que conquistou seu espaço pela sua simplicidade, baixo número de classes e interfaces em sua API, e uma fantastica e eficiente Arquitetura: O Modelo Servlet. Algum de vcs sabe me dizer se existe até hoje uma outra maneira de se implementar Java na Web que não seja por meio de Servlets? Struts, JSF, AJAX, JBoss Seam, Web Work, Web Services etc ... Todos esses usam Servlets!

É claro que cada um tem sua maneira de encapsular o uso dos Servlets mas o fato é que sem eles nada seria possível. Ao contrário de um amigo meu que gosta de fazer as coisas pelo "caminho mais difícil", eu não defendo o uso da programação crua com Servlets, o exemplo dos Servlets é apenas para reforçar o quanto podemos manter o foco em soluções simples, de baixa complexidade e que atendem ao seu propósito.

Em se tratando de arquiteturas e soluções complexas eu já vi muita coisa louca :P Vi desde páginas JSPs entupidas de scriptlet Java, executando milhares de linhas de lógica de negócio a sistemas com inúmeras camadas de software, cada uma com muitos factories e interfaces ... Eu mesmo trabalhei num que para implementar 5 ou 6 Use Cases fazia uso de 60Mb de arquivos .jar. Acreditava-se que dentro desses .jar estava a "bala de prata" e isso justificava o uso de toda essa parafernália. Imaginem que enquanto o restante da equipe tentava configurar o projeto para usarmos a "bala de prata", eu sozinho implementei 4 dos Use Cases usando uma arquitetura simples e flexível.

Como falei em meu primeiro Post, estou tendo uma experiencia interessante com o JBoss Seam integrado com um framework de AJAX, Ext JS. Realmente temos obtido otimos resultados mas estamos longe de construir a bala de prata. Eu vou estar comentando mais na frente sobre as principais caracteristicas que me chamaram a atencao nessas duas ferramentas, mas tb nao deixarei passar as insatisfacoes que tenho encontrado durante essa experiencia.

That's all folks!

[]'s

Quinta-feira, 22 de Maio de 2008

"Gentleman, start your engines!"

Olá amigos,

Finalmente vou iniciar esse Blog :D !!!

Com o ritmo de vida que levo fica difícil poder estar expressando e discutindo minhas idéias e opiniões com as pessoas que me cercam na intensidade que gostaria.

Assim, acredito que essa pode vir a ser uma maneira interessante de promover essa partilha de experiências.

A idéia é realizar posts diversos, abordando questões tecnológicas, tendências, ferramentas e frameworks etc

Algumas vezes também vou levantar questões "polêmicas" e gostaria de contar com opinião de vcs ... acho legal esse tipo de coisa pois acredito que assim aprendemos mais e nos tornamos mais maduros.

Bom, that's it! Esse post já tá ficando grande pra ser o inaugural :D!

Logo estarei "dando seguimento aos trabalhos" falando um pouco da experiência que estou tendo com o que acredito ser uma das grandes sacadas em desenvolvimento Java EE: JBoss Seam + Ext JS

Preparem-se, vcs vão gostar!

[]'s