Thursday, August 31, 2006

Cuidado o SQL pode derrubar sua aplicação!!!

Alguns já estão sabendo que eu ando desenvolvendo em PHP, já a alguns meses venho me introduzindo na comunidade PHPzeira e venho sinceramente enfrentando problemas a pesar de estar gostando da comunidade.

Bom, nos fóruns, estou sentindo a grande falta de conhecimento da turma que “domina” a linguagem, em alguns a falta de lógica e em outros a gana por complicar o código, a tal adoração por scripts enormes e identados, quanto mais classes, funções e objetos tiver o código mais bonito é, “Vamos ‘printar’ esse código vamos imprimir em papel fotográfico e vamos emoldurá-lo”... só falta isso acontecer. Porém não vim neste post falar da comunidade em si e sim da falta de responsabilidade de alguns sejam desenvolvedores PHP, sejam ASPeiros, sejam CFers ou até mesmo XHTML/CSS os famosos “Guerreiros da W3C” hehehe desculpem mas tenho que falar isso para descontrair.

Porque citei o PHP (comunidade)? Por que estava eu no fórum Imasters na área de PHP, buscando uma duvida para responder ou de alguma forma ajudar, quando encontrei uma bem do jeito que eu gosto, com um grave erro de conceito no SQL. Nota-se nestas comunidades ou até no dia-a-dia de trabalho, a falta de conhecimento de SQL de muitos, não sou nenhum “expert” no assunto, mas procuro ler e entender a melhor forma de utilizar tudo que necessito.

Muitos “programadores” não tem noção de SQL bem escrito, existem feras nessas comunidades que ao ler-se seus scripts encontramos erros grotescos de SQL e as vezes até de lógica, meu Deus, atenção é o básico para um bom script. Então respondi ao post sugerindo e indicando uma melhor forma de escrever o SQL dele.

O problema todo que eu constatei e vejo diariamente isso foi o seguinte mau uso do SQL:

SELECT*

FROM tabela...

Bom, por que os desenvolvedores não utilizam os nomes dos campos que vão usar na query? Gente numa consulta a uma tabela que contém apenas dois campos não influi tanto, mas digamos que seja um E-commerce que a tabela requisitada contenha 30 campos onde você só precise de 2 campos da mesma.

Quantas visitas o Submarino tem por minuto? Vamos chutar que seja 1 milhão. Já pensou se uma determinada consulta de uma página do Submarino tivesse um problema desses, e essa tabela tivesse 30 campos e só fosse necessário 2 campos para a realização da consulta.

Em um minuto teríamos 30 milhões de campos consultados onde poderiam ser apenas 2 milhões. 28 milhões de campos a menos, você consegue imaginar a quantidade de trafego reduzido nisso ai?

O pior nem é isso, para mim o pior é que ninguém liga para isso, estão mais preocupados com o uso ou não de tabelas em dados não tabelares, isso sim faz sua página carregar mais rápido economizando banda e etc... Os “Guerreiros da W3C” estão bastante preocupados com os padrões e muitos deles esquecem da programação que é muito mais responsável pela velocidade da aplicação do que todo o resto.

Acho que a conscientização de todos para a correta estruturação do código fonte, é tão importante quanto o desenvolvimento dentro dos padrões.

Eu sinceramente espero que este monte de letrinhas que digitei sirva para alguma coisa ao menos para reflexão.

Deixo o povo ciente que não estou direcionando o erro aos programadores PHP e aos adeptos do Web Standard, isso acontece e muito em todas as outras linguagens de programação e principalmente com os que não usam os padrões web, isso é um vício geral que deve ser reparado.

Fico grato pela atenção de vocês.

Abraços a todos.