<?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>JulioGreff.net &#187; kiss</title>
	<atom:link href="http://juliogreff.net/tag/kiss/feed/" rel="self" type="application/rss+xml" />
	<link>http://juliogreff.net</link>
	<description>A mesma web, um novo estilo de desenvolvimento</description>
	<lastBuildDate>Sat, 07 May 2011 17:07:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Hijax: Ajax Acessível</title>
		<link>http://juliogreff.net/hijax-ajax-acessivel/</link>
		<comments>http://juliogreff.net/hijax-ajax-acessivel/#comments</comments>
		<pubDate>Thu, 22 May 2008 20:08:11 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Usabilidade/Acessibilidade]]></category>
		<category><![CDATA[acessibilidade]]></category>
		<category><![CDATA[boas práticas]]></category>
		<category><![CDATA[hijax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[kiss]]></category>

		<guid isPermaLink="false">http://juliogreff.blog.br/?p=145</guid>
		<description><![CDATA[De longe, um dos maiores problemas no uso de Ajax é a acessibilidade. A facilidade em atualizar apenas uma parte da página tornou os desenvolvedores menos preocupados com a acessibilidade de seus projetos. Sem JavaScript, sites inteiros tornam-se completamente inacessíveis. Então, qual a solução para esse problema? Para evitar que o caos venha a este [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/ajax-vs-acessibilidade/' rel='bookmark' title='Permanent Link: Ajax vs. Acessibilidade'>Ajax vs. Acessibilidade</a></li>
<li><a href='http://juliogreff.net/ajax-vs-moda-vs-performance/' rel='bookmark' title='Permanent Link: Ajax vs. Moda vs. Performance'>Ajax vs. Moda vs. Performance</a></li>
<li><a href='http://juliogreff.net/a-aplicacao-ajax-perfeita/' rel='bookmark' title='Permanent Link: A Aplicação Ajax Perfeita'>A Aplicação Ajax Perfeita</a></li>
<li><a href='http://juliogreff.net/fila-de-requisicoes-em-ajax/' rel='bookmark' title='Permanent Link: Fila de Requisições em Ajax'>Fila de Requisições em Ajax</a></li>
<li><a href='http://juliogreff.net/ajax-com-a-mootools/' rel='bookmark' title='Permanent Link: Ajax com a Mootools'>Ajax com a Mootools</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>De longe, um dos maiores problemas no uso de Ajax é a acessibilidade. A facilidade em atualizar apenas uma parte da página tornou os desenvolvedores menos preocupados com a acessibilidade de seus projetos. Sem JavaScript, sites inteiros tornam-se <strong>completamente inacessíveis</strong>. Então, qual a solução para esse problema?</p>
<p>Para evitar que o caos venha a este mundo, surge outra palavrinha: <strong>Hijax</strong>. Mas primeiro vamos voltar a algumas premissas do desenvolvimento web: <strong>aprimoramento progressivo</strong> (<strong>progressive enhancement</strong>) e <strong>degradação elegante</strong> (<strong>graceful degradation</strong>), e me desculpem se errei a tradução dos termos&#8230;</p>
<h3>Aprimoramento Progressivo &#8211; Primeiro o Conteúdo</h3>
<p>Ninguém começa (ou pelo menos não deveria começar) a desenvolver uma aplicação primeiro pela camada de comportamento, isso vai completamente contra a filosofia de desenvolvimento em camadas (primeiro o conteúdo, depois a apresentação e, por último, o comportamento).</p>
<p>A idéia é começar o desenvolvimento de baixo. Em outras palavras, desenvolva da maneira antiga, usando links como sempre se usou desde que a Internet é Internet, devolvendo páginas inteiras como resposta. Depois, somente depois, comece a adicionar funcionalidades <strong>que melhorem a experiência do usuário</strong> (nada de frescuras que o usuário só vai achar bonito, <a href="http://juliogreff.net/ajax-vs-acessibilidade/" title="Ajax vs. Acessibilidade">pra que reinventar o link?</a>).</p>
<h3>Degradação Elegante &#8211; Útil sem perder a elegância</h3>
<p>&#8220;Degradação elegante&#8221; significa perder alguns recursos sem perder suas funcionalidades. Pode-se perder algumas animações e outros fru-frus, mas perder acesso ao conteúdo é inadmissível. CSS não é tão importante quanto as informações que queremos mostrar. Nunca ouviu a frase &#8220;mais ajuda quem não atrapalha&#8221;? A idéia é a mesma.</p>
<p>O desenvolvimento progressivo e em camadas é o caminho mais rápido para a degradação elegante. Mesmo utilizando Ajax, o conteúdo ainda deve continuar acessível através de um link comum. É aí onde <strong>Hijax</strong> entra.</p>
<h3>Hijax &#8211; Seqüestrando os Links</h3>
<p>O próprio termo explica bem o uso da técnica. <a href="http://domscripting.com/blog/display/41" title="Hijax - DOM Scripting" rel="external">Hijax</a>, do inglês hijack (&#8220;seqüestrar&#8221;), quer dizer <strong>seqüestrar</strong> os links comuns, e transformá-los em links Ajax. Simples assim.</p>
<p>&#8220;Simples assim&#8221;? Bem, nem tanto, eu confesso. Seus scripts server-side precisam estar preparados para decidir se enviam o &#8220;pacote completo&#8221; ou a &#8220;versão básica&#8221; da página, se for uma requisição normal ou uma requisição assíncrona, respectivamente. Uma breve dica: header <code>X-Requested-With</code>. Duas versões do site? Nunca mais, isso morreu junto com o Netscape, há muito tempo.</p>
<p>Vale lembrar que somente o uso de Hijax não faz uma aplicação completamente acessível, usável e rica. Há muito mais a se pensar. Já falei sobre <a href="http://juliogreff.net/a-aplicacao-ajax-perfeita/" title="A Aplicação Ajax Perfeita">alguns aspectos para uma boa aplicação Ajax</a>, mas tenho absoluta certeza que não passei nem perto de tudo que é necessário. Mas tudo isso já é uma boa base a ser levada em consideração, e com isso já é possível criar algo melhor que muita coisa que existe por aí, tenha certeza. E você, tem feito seu dever de casa e seguido princípios para tornar sua aplicação disponível a todos?</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/ajax-vs-acessibilidade/' rel='bookmark' title='Permanent Link: Ajax vs. Acessibilidade'>Ajax vs. Acessibilidade</a></li>
<li><a href='http://juliogreff.net/ajax-vs-moda-vs-performance/' rel='bookmark' title='Permanent Link: Ajax vs. Moda vs. Performance'>Ajax vs. Moda vs. Performance</a></li>
<li><a href='http://juliogreff.net/a-aplicacao-ajax-perfeita/' rel='bookmark' title='Permanent Link: A Aplicação Ajax Perfeita'>A Aplicação Ajax Perfeita</a></li>
<li><a href='http://juliogreff.net/fila-de-requisicoes-em-ajax/' rel='bookmark' title='Permanent Link: Fila de Requisições em Ajax'>Fila de Requisições em Ajax</a></li>
<li><a href='http://juliogreff.net/ajax-com-a-mootools/' rel='bookmark' title='Permanent Link: Ajax com a Mootools'>Ajax com a Mootools</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/hijax-ajax-acessivel/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>KISS!</title>
		<link>http://juliogreff.net/kiss/</link>
		<comments>http://juliogreff.net/kiss/#comments</comments>
		<pubDate>Sat, 04 Nov 2006 15:59:43 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[Diversos]]></category>
		<category><![CDATA[boas práticas]]></category>
		<category><![CDATA[kiss]]></category>

		<guid isPermaLink="false">http://www.juliogreff.blog.br/?p=25</guid>
		<description><![CDATA[Não, eu não estou louco, e também não estou dizendo que vou sair por aí beijando todo mundo. Esse KISS que falo é um acrônimo para &#8220;Keep It Simple, Stupid&#8221;, equivalente a &#8220;Mantenha Simples, Estúpido&#8221;, em português. Também não estou chamando ninguém aqui de estúpido, não me entendam mal. Estava programando exaustivamente há horas, e [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/pense-mais-e-codifique-menos/' rel='bookmark' title='Permanent Link: Pense Mais e Codifique Menos'>Pense Mais e Codifique Menos</a></li>
<li><a href='http://juliogreff.net/controle-de-erros-em-js/' rel='bookmark' title='Permanent Link: Controle de Erros em JS'>Controle de Erros em JS</a></li>
<li><a href='http://juliogreff.net/hijax-ajax-acessivel/' rel='bookmark' title='Permanent Link: Hijax: Ajax Acessível'>Hijax: Ajax Acessível</a></li>
<li><a href='http://juliogreff.net/pra-quem-voce-escreve/' rel='bookmark' title='Permanent Link: Pra quem você escreve?'>Pra quem você escreve?</a></li>
<li><a href='http://juliogreff.net/pc-formatado-e-agora/' rel='bookmark' title='Permanent Link: PC formatado, e agora?'>PC formatado, e agora?</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Não, eu não estou louco, e também não estou dizendo que vou sair por aí beijando todo mundo. Esse KISS que falo é um acrônimo para &#8220;Keep It Simple, Stupid&#8221;, equivalente a &#8220;Mantenha Simples, Estúpido&#8221;, em português.</p>
<p>Também não estou chamando ninguém aqui de estúpido, não me entendam mal. Estava programando exaustivamente há horas, e resolvi dar uma passeada pela Internet. Lá pelas tantas, cheguei a um blog através das tags do WordPress, e encontrei esse acrônimo. O significado lá era o mesmo que dei aqui, mas vou dar umas dicas para <acronym title="Keep It Simple, Stupid">KISS</acronym>.</p>
<h3>Comente seu Código</h3>
<p>Por mais simples que seja seu código, comente-o. Acredite, na maioria das vezes vale a pena.</p>
<p>Há muito tempo você escreveu uma função, digamos, para ler XML e mostra-lo na tela (você anda bem experiente mesmo, neh?). Ou qualquer outra função. Aí você deixa ela paradinha lá na sua pasta de códigos por um bom tempo. Por acaso do destino, você volta a precisar daquela função, que não tem nenhum único comentário. E você também não lembra que tipo de técnica utilizou, e acabou adquirindo mais conhecimento para fazer diferente, e esqueceu de erros que cometia.</p>
<p>Isso seria um desastre. Você perderia vários minutos (ou horas, dependendo do tamanho e complexidade do código) tentando entender o código, para depois começar a trabalhar nele (ou com ele).</p>
<p>A coisa piora quando não é você que mexerá nesse código, o pesadelo duplica, triplica, quatriplica de tamanho. Imagine só.</p>
<p>Comentar um código não o simplifica, mas ajuda no processo. Sabe quando você vai comentar uma parte um tanto confusa? Resumindo: comentários, além de ajudar na compreensão de um código, são detectores de tolices, complexidade extra, excesso de código ou de pura e simples falta de simplicidade.</p>
<p>É claro que em funções simples isso não é necessário. É totalmente contraproducente.</p>
<h3>Elimine Linhas de Código</h3>
<p>Como tudo na Internet, e em qualquer computador, um caractere ocupa seu espaço. Uma linha também. Uma linha com caracteres então&#8230;</p>
<p>Linhas em branco e tabulações são importantes, mas há lugares em que são desnecessários. Não pule muitas linhas entre um bloco de código e outro, duas ou três é o suficiente.</p>
<p>Mas não é exatamente sobre essas linhas que falo. Vamos tomar como exemplo o nosso querido JavaScript. Podemos resumir blocos de código, como IF ELSE:</p>
<pre><code>// "Errado"
if( condition ) { umaUnicaLinha(); }
else { outraLinha(); }
// Certo
if( condition ) umaUnicaLinha();
else outraLinha();
// Mais Certo Ainda - Expressão ternária
condition ? umaUnicaLinha() : outraLinha();</code></pre>
<p>Entendeu? Viu quantos caracteres economizamos? Esses blocos podem ser resumidos se tiverem apenas uma linha, dispensado as chaves. E condições ternárias podem ser mais resumidas ainda.</p>
<p>Outra maneira de economizar código é diminuir tarefas repetitivas. Se você já fez um curso mais avançado de MS Word ou Excel, sabe disso (macros). Por exemplo, várias condições devem ser testadas várias vezes da mesma maneira. Em vez de colocar o teste por inteiro, criamos funções! Lógico, não? Isso deve vir desde o planejamento do script.</p>
<p>Em suma, aproveite todos os recursos da linguagem em que você programa para torna-la mais rápida, compacta e simples. Estude bem o que você programa.</p>
<h3>Use Indentações</h3>
<p>Com o código que economizamos ali acima, podemos usa-lo para tornar o código mais legível.</p>
<p>As indentações servem para identificar em que nível alguma instrução se encontra. Não precisam ser indentações muito grandes, dois espaços são o suficiente. Um só dificulta a compreensão de muitos níveis, e tabulações (tecla TAB), em caso de muitos níveis, tornam difícil de ler, pois tiram o código mais indentado do campo de visão do editor.</p>
<p>Indentar é extremamente simples, mas se torna chato às vezes. Por isso, um bom editor ajuda, mantendo as indentações no lugar depois de um Enter.</p>
<p>Se você já viu o código padrão do Invision PB, deve saber do que falo. Aquilo é incompreensível. Tudo fica na mesma linha, no mesmo nível. Faça o possível para tornar seu código, acima de tudo, legível para você, depois para os outros, e depois para as máquinas. Acredite, facilita bastante.</p>
<h3>Nomeie Corretamente</h3>
<p>Essa parte foge um pouco do tema principal, mas já que estou dando umas dicas&#8230;</p>
<p>Procure dar nomes intuitivos às suas funções, atributos, blocos de código, enfim&#8230; O Diego Eis, do Tableless, escreveu <a title="Sobre Nomes e Sobrenomes" rel="external" href="http://www.tableless.com.br/sobre-nomes-e-sobrenomes">um artigo</a> muito interessante sobre nomear classes corretamente. Esse artigo pode também ser aplicado a qualquer coisa, que já citei a pouco.</p>
<p>Dê nomes intuitivos para tudo que criar. Esses nomes devem ter algo a ver com o que você criou, e não onde está posicionada ou o que faz apenas, e somente apenas no que resulta em uma única condição (por exemplo: uma função Ajax complexa que retorna XML e texto, ser chamada de AjaxText, isso é errado).</p>
<p>Poderiam ser citados vários outros pontos, mas eles fugiriam um pouco mais do que quero aqui. Em resumo, o que vale é a simplicidade, legibilidade e total e completa compreensão por humanos, pessoas, gente, nós, enfim&#8230;</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/pense-mais-e-codifique-menos/' rel='bookmark' title='Permanent Link: Pense Mais e Codifique Menos'>Pense Mais e Codifique Menos</a></li>
<li><a href='http://juliogreff.net/controle-de-erros-em-js/' rel='bookmark' title='Permanent Link: Controle de Erros em JS'>Controle de Erros em JS</a></li>
<li><a href='http://juliogreff.net/hijax-ajax-acessivel/' rel='bookmark' title='Permanent Link: Hijax: Ajax Acessível'>Hijax: Ajax Acessível</a></li>
<li><a href='http://juliogreff.net/pra-quem-voce-escreve/' rel='bookmark' title='Permanent Link: Pra quem você escreve?'>Pra quem você escreve?</a></li>
<li><a href='http://juliogreff.net/pc-formatado-e-agora/' rel='bookmark' title='Permanent Link: PC formatado, e agora?'>PC formatado, e agora?</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/kiss/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

