<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog do Alone &#187; Design</title>
	<atom:link href="http://www.nelsonalone.com.br/category/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nelsonalone.com.br</link>
	<description>A tecnologia de forma simplificada</description>
	<lastBuildDate>Fri, 30 Apr 2010 01:18:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ajax com RichFaces</title>
		<link>http://www.nelsonalone.com.br/2010/01/26/ajax-com-richfaces/</link>
		<comments>http://www.nelsonalone.com.br/2010/01/26/ajax-com-richfaces/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 08:42:37 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=417</guid>
		<description><![CDATA[Desenvolver aplicações para Web que requer bom desempenho, clareza no conteúdo e flexibilidade não é tarefa fácil até para os desenvolvedores experientes. O principal item que deve ser levado em conta é o bom desempenho pelo fato de influenciar na maioria dos valores que podem ser agregados em um produto voltado para Web. Nesse ponto, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Desenvolver aplicações para Web que requer bom desempenho, clareza no conteúdo e flexibilidade não é tarefa fácil até para os desenvolvedores experientes. O principal item que deve ser levado em conta é o bom desempenho pelo fato de influenciar na maioria dos valores que podem ser agregados em um produto voltado para Web. Nesse ponto, existem diversas dicas que podem ser seguidas através da iniciativa da Google, o <a href="http://code.google.com/intl/pt-BR/speed/articles/">Let’s make the web faster</a> , que apresenta uma série de dicas para compactar o conteúdo ao máximo para tornar a transferência da páginas mais rápida.</p>
<p style="text-align: justify;">Existem recursos que viabilizam o desempenho em aplicações Web de forma aceitável para o usuário final. Entre elas, na minha opinião, o mais adequado é o Ajax. Existem outras alternativas como o Flex, porém, dependendo da aplicação desenvolvido pode haver demora no carregamento e processamento das requisições, mesmo sendo carregada uma única vez. Com base nisso, a utilização do Flex sobre uma intranet é uma excelente opção. Como o contexto é a internet, soluções Ajax levam vantagem pelo fato do conteúdo ser apresentado em HTML/XHTML e pelo fato de não utilizar nenhum plugin para os navegadores. Porém, quando se trata de JavaScript, muitos desenvolvedores tentam evitar por ser mais uma linguagem necessária para o aprendizado para desenvolver uma aplicação. Ironicamente, um desenvolvedor web necessita saber no mínimo três linguagens para desenvolver uma aplicação utilizável.</p>
<p style="text-align: justify;">Em alguns casos, a utilização do javascript em alguns projetos torna-se complicada devido a dificuldade, principalmente quando projetos são feitos utilizado AJAX. Isso encorajou a criação de inúmeros frameworks e componentes que tentam tornar o desenvolvimento de aplicações que utilizam AJAX mais simples e fáceis de manter.</p>
<p style="text-align: justify;">JQuery é um framework que tenta facilitar ao máximo a utilização de JavaScript nas páginas, sendo que, é a ferramenta mais utilizada quando se trata de recursos para a linguagem. O que chama mais atenção são os efeitos e a facilidade para desenvolver com essa ferramenta.</p>
<p style="text-align: justify;">A comunidade Java é privilegiada com inúmeros frameworks e APIs que facilitam o desenvolvimento resolvendo problemas de vários segmentos, principalmente WEB. Acredito que, devido a dificuldade de desenvolver aplicações WEB apenas com JSP, Servlets, Filters, TagLibs, etc., os desenvolvedores tentaram diminuir essa dificuldade com frameworks, tai então a explicação da grande quantidade de frameworks WEB para Java.</p>
<p style="text-align: justify;">Em Java, atualmente, o frameworks WEB mais utilizado, depois do Struts (legado) , é o JSF. Talvez devido ao fato de ser um produto da Sun e estar coberto por uma especificação. Não cheguei a ver detalhes da especificação 2.0, mas nas versões anteriores o desenvolvimento ainda é maçante e chato, onde existem situações que necessitam cada vez da habilidade do desenvolvedor. Porém, muito foi feito para tentar corrigir os problemas e ao mesmo tempo agregar valor ao framework com as extensões repletas de componentes para ser utilizados nos projetos, uma dessas extensões é o <a href="http://www.jboss.org/richfaces">RichFaces</a>. Atualmente encontra-se na versão 3.3 e vem uma série de componentes que podem funcionar sobre uma camada AJAX. A facilidade é tanta que a forma de desenvolver é a quase a mesma que desenvolver com JSF puro. Com isso, está a disposição do desenvolvedor recursos de Drag’nDrop, calendários bem elaborados, efeitos, e uma série de componentes bem desenvolvidos que funcionam sobre AJAX.  A configuração do RichFaces também é simples, basta adicionar alguns filtros, escolher o template, ou desenvolver um, configurar um ou dois XMLs e adicionar algumas taglibs no projeto e pronto, seu projeto já está configurado.</p>
<p style="text-align: justify;">O objetivo desse artigo não é de escrever um tutorial e nem comparar as ferramentas, é de alertar sobre a má utilização dos recursos AJAX na aplicação com o RichFaces. O framework utiliza JQuery para fazer os efeitos e manipular do DOM HTML/XHTML, com isso, o conteúdo do framework vai junto com o projeto. A infra-instrutora de um projeto AJAX é repleta de JavaScript e quando projetos se tornam  complexos, conseqüentemente, a complexidades de manter os script se eleva. Com isso, existe uma estrutura de arquivos javascript pronta para suportar a arvore JSF gerada a cada requisição tornando a estrutura pesada ao ponto de ser desvantagem desenvolver a aplicação baseada em requests sobre toda a página.</p>
<p style="text-align: justify;">Destrinchando o conteúdo carregado pelo browser, existe um tipo de arquivo que representa a chamada de sua URL que é respondida a cada requisição, é configurada no web.xml na definição da chamada para a execução do servlet. Nesses arquivos contem o emaranhado do Javascript que o servidor envia a cada requisição. No meu caso, esses arquivos ficaram em torno de 933Kb, é um tamanho considerável quando se trata de requisições. Isso pode deixar sua aplicação uma carroça quando sua aplicação for pro ar.</p>
<p style="text-align: justify;">Nessa situação, a solução para esse problema é aplicar ao máximo os recursos AJAX na aplicação, fazendo com que apenas um trecho da página possa ser renderizada e não todo a cada requisição. Isso diminui bastante o tráfego na rede tornando a aplicação um pouco mais leve. Nas primeiras solicitações a aplicação fica muito lenta, mas quando o conteúdo está no cache o desempenho fica razoável.</p>
<p style="text-align: justify;">Para comprovar, fiz um teste desenvolvendo uma página simples com um CSS pequeno e sem nenhum arquivo JavaScript amais. Fiz as configurações dos pacotes JSF e do RichFaces descritas em seus devidos manuais respectivamente. Fiz com que a primeira página utilizasse um apenas um <em>&lt;a4j:region &gt; </em>contendo alguns componentes, como; <em>&lt;a4j:form&gt; </em>e  um &lt;a4j:commandLink&gt;. Isso é suficiente para habilitar o suporte AJAX do framework, ou seja, carregando todos os JavaScript responsáveis por essa funcionalidade.</p>
<p style="text-align: justify;">Na documentação do framework não existem tópicos que auxiliem a diminuir o tamanho do conteúdo, isso encoraja a utilização massiva dos recursos em todas as páginas e evitando request desnecessários. Não quero dizer que o framework seja ruim, pelo contrário, é uma ótima ferramenta, porém, deve ser utilizada com cuidado. A utilização de AJAX puro é uma excelente opção.</p>
<p style="text-align: justify;">[]s.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/01/26/ajax-com-richfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desigh X Negócio</title>
		<link>http://www.nelsonalone.com.br/2010/01/02/desigh-x-negocio/</link>
		<comments>http://www.nelsonalone.com.br/2010/01/02/desigh-x-negocio/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 19:23:17 +0000</pubDate>
		<dc:creator>nelsonsozinho</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Off-Toppic]]></category>

		<guid isPermaLink="false">http://www.nelsonalone.com.br/?p=402</guid>
		<description><![CDATA[Trabalho em uma empresa de tecnologia, especificamente desenvolvendo software, e também trabalho como freelancer nas horas vagas (que no momento são cada vez mais raras). Ganhei conhecimento e experiência participando como desenvolvolvedor,  a vezes como quadjunvante, nos projetos que apareciam, sendo que, a sua maioria eram de projetos WEB e alguns poucos eram de frameworks [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Trabalho em uma empresa de tecnologia, especificamente desenvolvendo software, e também trabalho como freelancer nas horas vagas (que no momento são cada vez mais raras). Ganhei conhecimento e experiência participando como desenvolvolvedor,  a vezes como quadjunvante, nos projetos que apareciam, sendo que, a sua maioria eram de projetos WEB e alguns poucos eram de frameworks e desktops. Suas finalidades também eram variadas, desde serviços até websites para vender produtos, porém, uma coisa me deixava muito frustrado, a dificuldade de não saber elaborar uma interface intuitiva e ao mesmo tempo simples, resumindo, tinha inveja (e tenho até hoje) dos designs.</p>
<p style="text-align: justify;">Dediquei meus estudos para conhecer linguagens de programação, frameworks, processos, padrões, boas práticas, ferramentas, etc, mas nunca me dediquei a aprender alguma coisa de design.  Digo que design não significa manipular imagens, HTML, CSS, Photoshop, etc. o termo significa muito mais que isso, significa ter em mente a melhor forma de apresentar um produto, impacto visual, chamar o cliente, ou melhor, possuir o “conhecimento artístico” de como tocar um cliente através da arte.</p>
<p style="text-align: justify;"><img class="aligncenter size-medium wp-image-403" title="passionate-design_id820440_size400" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/12/passionate-design_id820440_size400-300x300.jpg" alt="" width="300" height="300" /></p>
<p style="text-align: justify;">Vi que isso era de extrema importância depois tentar fazer uma interface, para uma necessidade específica, que iria utilizar em um projeto. Tinha a idéia mais não tinha capacidade para colocar em prática. Frustrado com minhas tentativas em vão, consultei alguns colegas que são web designs e solicitei uma ajuda no que eu estava fazendo. Depois de alguns minutos expondo minhas idéias ele me surpreendeu afirmando que eu não sabia o que eu estava fazendo, ou seja, tinha o problema, mas formulou sua resolução de forma errada.</p>
<p style="text-align: justify;">Quanto mais ele falava mais ficava desapontado, pois realmente, o que eu tinha em mente não tinha bulufas com a solução do problema. Para tentar mostrar melhor, ele desenhou a interface toda na minha frente mostrando o porque de cada elemento contido na tela, achei isso fantástico, além do mais, ganhei a interface de graça e utilizo até hoje no projeto. Analisando isso, me questionei sobre a vantagem de ter designs em empresas que desenvolvem software, seja web ou não.</p>
<p style="text-align: justify;">No ponto em que fui ajudado, todas as regras de negócio já estavam completamente desenvolvidas e testadas para solucionar o problema. Tratando a interface como um item sem importância, vi que estava completamente errado sobre quase tudo que tinha feito. Ou seja, o problema que aconteceu foi que não me preocupei com a apresentação para o cliente. É obvio que, tendo uma interface sem a regra de negócio o sistema não funciona, porém, se tendo a regra de negócio e não tendo uma interface funcional e também intuitiva o fator psicológico entra em cena. Isso é fácil de exemplificar; É só observar o comportamento de uma pessoa que utiliza uma família sistema operacional quase que</p>
<p style="text-align: justify;"><img class="aligncenter size-medium wp-image-404" title="web_design" src="http://www.nelsonalone.com.br/blog/wp-content/uploads/2009/12/web_design-300x287.jpg" alt="" width="300" height="287" /></p>
<p style="text-align: justify;">a vida toda e força-la  a utilizar um sistema sem sua interface que estava acostumada. Acreditem, já vi isso acontecer e quem se ferra é o setor de suporte.</p>
<p style="text-align: justify;">Bom, voltando ao assunto, é óbvio que a necessidade de ser ter uma equipe de design é importantíssima. A Apple faz disso o seu principal elemento de desenvolvimento de produtos e venda, eles levam a sério o Design Funcional. A Microsoft incorpora o design no seus produtos voltados para usuários comuns e incorpora o design ao produto de forma intuitiva que ajuda o departamento de vendas a fazer o seu papel de forma agressiva.</p>
<p style="text-align: justify;">Descrevi minha experiência frustrante de tentar fazer um trabalho de design sem o conhecimento adequado para isso. Respeito muito o trabalho desses caras porque, sem eles a web (WWW) não era um elemento tão atrativo como é hoje, e o marketing não seria são eficiente como é hoje.</p>
<p style="text-align: justify;">[]s</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nelsonalone.com.br/2010/01/02/desigh-x-negocio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
