Tableless - Desenvolvimento inteligente com Padrões Web

09/11/2008
Artigos

Não “otimize” seu código

Quando fazíamos sites com tabelas, o grande problema era a quantidade de código que escrevíamos. Naquele tempo – 1996, 97, 98 – tínhamos outros pontos que precisavam de uma atenção maior. A conexão era lerda para todo mundo e isso …

Por


Quando fazíamos sites com tabelas, o grande problema era a quantidade de código que escrevíamos. Naquele tempo – 1996, 97, 98 – tínhamos outros pontos que precisavam de uma atenção maior. A conexão era lerda para todo mundo e isso dificultava um bocado as coisas. Por isso, fazer um site pesado era fora de cogitação. Ficávamos “mendigando” cada byte para que o site ficasse milésimos de segundo mais rápido.

O código era o grande problema. A quantidade de código interferia diretamente na performance do site. E isso fez com que os desenvolvedores encontrassem saídas não muito agradáveis.

Era comum fazer códigos como o de baixo:

Produto Preço
Tênis R$230

Se transformarem em verdadeiros monstros:

Produto Preço
Tênis R$230

Isso tudo para economizar alguns bytes, que dependendo do site, significavam teras e teras de banda por mês. Naquele tempo, fazer isso era totalmente justificável. Precisávamos de alguma forma diminuir esse código para que o site ficasse mais rápido para o usuário e as requisições não sobrecarregassem o servidor.

Hoje isso é totalmente dispensável.

Aprendemos a utilizar o CSS e sabemos escrever HTML semântico.
A utilização dos Padrões trazem uma série de vantagens, e uma grande parte dessas vantagens são por causa da diminuição do código. Com o desenvolvimento de camadas e principalmente por causa do uso do CSS, não precisamos mais “otimizar” o código.

Mas parece que os desenvolvedores gostam de coisas complicadas. Esse mal costume de otimização de código ainda existe, e hoje querem otimizar o CSS. Eu acho totalmente inútil. O CSS foi feito para controlar o visual do site inteiro. Ele tirou a responsabilidade de formatação que colocávamos no HTML. Seu trabalho é exclusivamente esse: controlar o visual e diagramação do site.
É normal ele ficar grande, enorme, bizarro! Sim, haverão alguns casos que o tamanho superará mais de 1000, 2000, 3000, 4000 linhas.
Dá para evitar? Claro que dá! Pense simples. Module os arquivos. Faça um planejamento. Mas NUNCA faça com que um CSS escrito assim:

div {
 padding: 10px;
 border: 1px solid #CCC;
 width: 485px;
 height: 37px;
 background: #EEE;
}

Fique assim:

div{padding:10px;border:1px solid #CCC;width:485px;height:37px;background:#EEE}

Tenha dó do seu próximo e tenha dó de você mesmo.

Se você escreve o código de acordo com os Padrões, já economizou código suficiente. Não prejudique a manutenção do site por conta dessa neura. Escreva código legível!

Há outro ponto que devemos levar em consideração: imagine que o site pese 40Kb. Estes 40Kb são compostos por 20Kb de CSS e 20Kb de HTML. O CSS tem uma característica interessante: ele é cacheado pelo browser quando visitante entra no site.
Na primeira visita do usuário ele baixará 40Kb de uma vez. Já na segunda visita ele baixará apenas 20Kb relativos ao HTML. Ele não precisará baixar os 20Kb de CSS porque o arquivo já está cacheado pelo browser.

Não “otimize” seu código CSS, nem seu código HTML. Faça apenas com Padrões Web e siga categoricamente a semântica. É a melhor otimização que você pode conseguir.

O Leonardo Caineli escreveu um artigo sobre isso. Claro, discordo da opinião dele.

[update]Depois do post o pessoal chamou a atenção para essa prática em empresas grandes. Notei que no post eu não falei nada sobre isso. Sim, concordo que essa prática, só nessa hipótese, é totalmente considerável.

Quando treinei a primeira equipe do Terra – da época do site laranjão, lembra-se? – a primeira coisa que eles fizeram foi converter a home, e eles ainda sim queriam colocar todo o CSS em apenas uma linha.

Realmente 1Kb multiplicado por milhões é coisa para caramba e não há banda que agüente. Por isso, é totalmente aceitável que sites com um porte muito grande, “otimizem” seu código. [/update]

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://twitter.com/diegoeis/

Veja os outros posts de

  • Glaucia Rezende

    Amei o artigo, e os comentários.
    Penso igual ao Mauro George.

    Bjs!

  • Eduardo Lopes

    Penso que o autor do artigo foi muito simplista em defender seu ponto de vista. Acontece que a otimização de código não leva em consideração questões de estética de codificação, visual ou performance somente. Os benefícios de tableless para a acessibilidade dos sites é indiscutível. Sugiro o autor pesquisar um pouco mais sobre este tema.

  • Pingback: W3C Redesign » Pinceladas da Web - XHTML, CSS, JavaScript e WebStandards

  • http://renatotavares.com Renato

    Mesmo o meu sendo pequeno eu gosto de otimizar, quando tiver que dar alguma manutenção pego um css que guardo no arquivo edito e depois compacto outra vez…

    realmente eu sou neurótico.

  • http://www.djalmaaraujo.com.br Djalma Araújo

    Eu defendo a otimização em todos os casos. Estamos falando de eficiência e não estética. Confesso que não guardo versões sem ser em uma linha, mas por costume. Ainda li uma artigo sobre como você escreve seu css, ordenando, posicionamento, dimensao, floats.. em fim.. o que já ajuda bastante sobre como otimizar e ser muito eficiente nesta otimização.

    abraço.

  • http://cssorbit.blogspot.com Danilo

    Otimizar o código css é sempre bom http://cssorbit.blogspot.com/2009/11/agrupando-seletores-otimizando-o-css.html ! Mas em relação a escrita do css vai de gosto pra gosto !

  • Miquéias

    Realmente antes tinha essa opinião, mas acho que estilos ‘otimizados’ ficam mais legíveis(com espaços entre os seletores e valores), o código fica menor – ou seja, demora menos pra achar determinada div ou class, etc. E ainda economiza banda!

  • Pingback: Evolua seu CSS - Dicas | import Zeh.Design

  • Osmar Alves

    Bom, estou aqui revivendo o post, porque achei a discussão interresante.

    A um certo tempo atrás eu usava o CSS do tipo assim:

    a {
    text-decoration:none;
    color:#333333;
    }

    O problema que eu sempre tinha com isso era que pra mim poder me localizar nos seletores era uma verdadeira perda de tempo. Certo dia encontrei no videolog um vídeo (óbvio que seria um vídeo néh), do Bruno Dulcetti explicando algumas coisa sobre padrões client-side, o link é esse http://videolog.uol.com.br/video.php?id=391599, fui assistindo o vídeo, mesmo estando em baixa qualidade pude notar que ele escreve CSS de uma maneira um pouco diferente, dai fiquei encabulado e fui tentar escrever do mesmo jeito, e não é que deu certo, me senti muito mais a vontade pra montar minhas css’s.

    Ta, mais como isso:

    a { color:#333333; text-decoration:none; }

    pode ser melhor que isso?:

    a {
    text-decoration:none;
    color:#333333;
    }

    Simples, é só você montar um esquema para que identifique onde estarão as propriedades. Eu montei um esquema onde eu SEMPRE sigo uma “ordem de uso” das propriedades, no meu caso eu faço +/- assim:

    seletor { width:; height:; margin:; padding:; background:; border:; font:; text:; color:; /*Daqui em diante seria o resto das propriedades que são mais difíceis de serem usadas, tipo float:; cursor:; clear:; visibility:; overflow:; etc:; */ }

    No meu caso esse esquema funciona que é uma beleza, só pra esclarecer, eu não uso dessa maneira pra diminuir tamanho de arquivo, uso por me sentir mais a vontade com os códigos que escrevo.

    Obs.: Dessa maneira acho que fica até melhor para separar os blocos de código, por exemplo de um menu:

    ul#menu { propriedades }
    ul#menu li { propriedades }
    ul#menu li a { propriedades }
    ul#menu li a:hover,
    ul#menu li a.current { propriedades }

    Bom é isso que tinha a dizer, o que acham?

  • http://www.taulukko.com.br/ Gran Kain

    Faço os códigos com comentários, identados, do jeito que for.
    Com uma boa ferramenta de minify nada disto preocupa. Se você abrir o fonte é tudo bonitinho, dá pra corrigir os bugs, tudo sem se preocupar.
    Se abrir do site uma bagunça com poucos kbytes.
    Se quiser debugar, basta abrir o site em modo debug que o código aparece normal.

    Sem stress, grilos, ou comentários, espaços etc sendo transferidos do servidor pro cliente ^^

  • Pingback: Modulando o CSS | Marcelo Brito Blog

  • http://raulpereira.com raulpereira

    Entendo que para sites com grande volume de acesso essa técnica é aceitável, mas realizar otimização de código é tão simples, não precisamos lidar com o arquivo otimizado, basta usar ferramentas para isso antes de publicar o código… http://developer.yahoo.com/yui/compressor/

  • Lucas Câmara

    Graças a Deus que não precisamos nos preocupar com os mínimos bytes hoje em dia, embora não custe nada economizar alguns milisegundos. Pode-se usar compressores de HTML como: http://www.textfixer.com/html/compress-html-compression.php ; http://www.apromotionguide.com/compressor/ ,etc, e manter uma cópia original das páginas para edição.

  • Pingback: Modulando o CSS « Kleyton Caires Blog

  • Jean Monteiro

    Que vergonha! Post feito só para ter cliques – assunto polémico – e conteúdo ZERO.
    Quando comecei com a trabalhar com a web esse site era até bom, hoje já não olho da mesma forma.