GURUS - OTIMIZACAO DE CODIGO
Já que como disse o Casper, meu nome tá na lista dos Nerds, vou deixar um único conselho (atenção: vou citar só um porque a maioria dos idosos que auxiliam o site já escreveram e muitos sobre os pontos básicos de otimização de código).
Criar classes como o Bruno citou é sem dúvida nenhuma o momento em que o menino deixa de brincar de Falcon para se tornar Homem. Quando você aprende a fundo como trabalhar com classes, ou seja, orientado à  objetos, e principalmente sabendo como criar [txt-color=#ff0000]componentes reutilizáveis[/txt-color] aprenderá a poupar tempo para desenvolvimento e a modelar/unificar todo seu código.
Uma classe pode ter todo seu processamento interno, por isto, tudo que for relativo à  ela se trata internamente, não desfragmentando seu código e principalmente concetrando seus processos.
No resto, o nÃvel da discussão até aqui, já está excelente e os pontos básicos e até mesmo os pontos para desenvolvedores de nÃlve intermediário já foram abordados.
Criar classes como o Bruno citou é sem dúvida nenhuma o momento em que o menino deixa de brincar de Falcon para se tornar Homem. Quando você aprende a fundo como trabalhar com classes, ou seja, orientado à  objetos, e principalmente sabendo como criar [txt-color=#ff0000]componentes reutilizáveis[/txt-color] aprenderá a poupar tempo para desenvolvimento e a modelar/unificar todo seu código.
Uma classe pode ter todo seu processamento interno, por isto, tudo que for relativo à  ela se trata internamente, não desfragmentando seu código e principalmente concetrando seus processos.
No resto, o nÃvel da discussão até aqui, já está excelente e os pontos básicos e até mesmo os pontos para desenvolvedores de nÃlve intermediário já foram abordados.
Atendendo ao Kyanor, algumas dicas "iniciantes":
- Nunca deixe o caminho para o banco de dados gravado no seu aplicativo:
"C:\Arquivos de programas\Aplicativo\Aplicativo.exe"
Use a propriedade App.Path no lugar:
App.Path & "\Aplicativo.exe"
Isso vale pra todas as referências a caminhos no seu pograma, inclusive "DatabaseName" do objeto Data, do Data Environment, etc. Não preencha o campo "DatabaseName" (ou similar) desses objetos na janela de "Properties" (ou seja, em tempo de projeto). Faça isso dentro do código (ou seja, para o caminho ser definido em tempo de execução):
Private Sub Form_Activate()
Data1.DatabaseName = App.Path & "\Aplicativo.mdb"
End Sub
Indo um pouco mais além, é interessante fazer uma verificação, logo na inicialização do aplicativo, pra saber se ele está sendo executado de uma pasta ou na raiz de um drive. Em aplicativos pequenos, que rodam direto de um disquete, por exemplo, isso é muito importante:
ondetah = App.Path 'define o caminho para o aplicativo
If Right(ondetah, 1) = "\" Then ondetah = Left(ondetah, Len(ondetah) - 1)
Assim, ao invés do App.Path, passamos a usar a variável pública "ondetah"
- Não tem servidor? Então quem chega mais cedo?
Não é uma regra geral. Deve-se usar o bom senso, mas não deixe que o seu cliente dê a palavra final. O caso é o seguinte: é muito comum o dono da empresa querer a melhor máquina pra ele (pra ficar escrevendo cartinha no Word
). DaÃ, quando você desenvolve aquele aplicativo pra rodar na rede, a tendência natural é que o cliente mande que você instale na máquina dele. Não ceda na primeira. A primeira pergunta a fazer é: "O senhor passa o dia inteiro aqui?" e, se ele der uma balançada, a segunda pergunta é "Quando o senhor sai, alguém tem acesso à  sua sala?". Se ele negar acesso à  maquina dele, se ele tem compulsão por segurança e coloca senha pra tudo, então convença-o de que a máquina ideal pra ser o servidor do seu aplicativo é a da secretária. Ele vai dizer: "Mas ela usa um 486". AÃ, dê um sorrisinho maldoso e encare fixamente o Pentium 4 dele...
- Use ADO
O VB foi feito pra acesso a dados. A gente dá uma forçada, faz uns joguinhos, cai de cabeça na Web (longe de mim criticar isso; só mostra a versatilidade e poder da ferramenta), mas o forte mesmo é o acesso a dados. Se você está começando agora, e pegou aquela apostila velha do seu primo pra aprender VB, repare que lhe serão apresentados o objeto Data e a biblioteca DAO para acesso a dados. Garanto pra você que o tempo que você vai levar pra entender a lógica do DAO vai ser o mesmo pra aprender o ADO. Mas, se você já usa DAO há um bom tempo, a migração é bem mais rápida. Quem tem dificuldade pra mudar do DAO pro ADO é justamente a turma que já tem um certo tempo de programação, mas não o suficiente pra usar as filtragens das consultas SQL. Aà aparece um serviço realmente profissional, multiusuário (leia-se "Rede") e aà se vê que só o Data1 com uma Combo não vão dar conta do recado. E justamente na hora que você mais precisava, tem que parar tudo pra aprender ADO na marra. Então, antes que você chegue a esse ponto, comece com ADO.
- O que você quer?
Isso é extremamente difÃcil. Mais até do que saber programar. Explico:
Vai você fazer o seu primeiro aplicativo que não é para um parente próximo (pois se for pra parente, prepare-se pra chateação eterna...). Você está bem preparado, pegou muita dica aqui do VBMania, ouviu muito conselho dos VBMummys (lista da qual eu não participo
) e chega lá cheio de confiança. O cara fala assim "Eu preciso só de um pograminha pra cadastrar uns clientes... Coisa pouca... Você faz isso em meio dia... Já deve até ter alguma coisa pronta..."
Naquela sua gana de ver os milhares de Reais entrando no seu bolso, você concorda com tudo. Sente até que, se não pegar aquele serviço, vem outro e pega, cobrando metade do que você cobraria. E aÃ?
Daà que você faz exatamente como o cara pediu, e ele olha e diz: "Só uma coisinha: eu preciso fazer relatórios por região. Você colocou São Paulo, mas eu tenho vendedores na cidade em cinco regiões distintas. Como eu vou separar?". E volta você pra trás pra acertar essa e mais 48 outras "coisinhas" que ele vai falando no decorrer de 6 meses, que não chegam a ser melhorias no pograma e sim "consertos" de coisas que VOCÃÅ não previu (é amigo, a culpa foi sua...). No fim, os milhares de Reais se diluiram em quase um ano de trabalho, e você conclui que teria sido melhor pegar um serviço de pedreiro que daria mais.
Então, vai pegar um serviço? Mergulhe nele de cabeça! Antes que o cliente lhe encha o saco, encha o dele! Enquanto não ter anotado exatamente o que vai fazer, não comece! DaÃ, quando tudo (tuuuuudo) estiver definido, mostra pro cara e pergunta: "é isso?". Se ele confirmar, corre em casa (se já não tiver feito isso), faz um contratinho de prestação de serviço bem informal (gente, estou falando de empresinha e programador iniciante; não me critiquem por isso), com todos os itens tratados e pede pro cara assinar. Assina também. No futuro, o que passar disso entra pro rol do "Suporte". Aquele papel não vale muita coisa (se você vive no, do e para o mercado informal), mas pelo menos "refresca a memória" do cara.
Depois Tio Max continua.
- Nunca deixe o caminho para o banco de dados gravado no seu aplicativo:
"C:\Arquivos de programas\Aplicativo\Aplicativo.exe"
Use a propriedade App.Path no lugar:
App.Path & "\Aplicativo.exe"
Isso vale pra todas as referências a caminhos no seu pograma, inclusive "DatabaseName" do objeto Data, do Data Environment, etc. Não preencha o campo "DatabaseName" (ou similar) desses objetos na janela de "Properties" (ou seja, em tempo de projeto). Faça isso dentro do código (ou seja, para o caminho ser definido em tempo de execução):
Private Sub Form_Activate()
Data1.DatabaseName = App.Path & "\Aplicativo.mdb"
End Sub
Indo um pouco mais além, é interessante fazer uma verificação, logo na inicialização do aplicativo, pra saber se ele está sendo executado de uma pasta ou na raiz de um drive. Em aplicativos pequenos, que rodam direto de um disquete, por exemplo, isso é muito importante:
ondetah = App.Path 'define o caminho para o aplicativo
If Right(ondetah, 1) = "\" Then ondetah = Left(ondetah, Len(ondetah) - 1)
Assim, ao invés do App.Path, passamos a usar a variável pública "ondetah"
- Não tem servidor? Então quem chega mais cedo?
Não é uma regra geral. Deve-se usar o bom senso, mas não deixe que o seu cliente dê a palavra final. O caso é o seguinte: é muito comum o dono da empresa querer a melhor máquina pra ele (pra ficar escrevendo cartinha no Word

- Use ADO
O VB foi feito pra acesso a dados. A gente dá uma forçada, faz uns joguinhos, cai de cabeça na Web (longe de mim criticar isso; só mostra a versatilidade e poder da ferramenta), mas o forte mesmo é o acesso a dados. Se você está começando agora, e pegou aquela apostila velha do seu primo pra aprender VB, repare que lhe serão apresentados o objeto Data e a biblioteca DAO para acesso a dados. Garanto pra você que o tempo que você vai levar pra entender a lógica do DAO vai ser o mesmo pra aprender o ADO. Mas, se você já usa DAO há um bom tempo, a migração é bem mais rápida. Quem tem dificuldade pra mudar do DAO pro ADO é justamente a turma que já tem um certo tempo de programação, mas não o suficiente pra usar as filtragens das consultas SQL. Aà aparece um serviço realmente profissional, multiusuário (leia-se "Rede") e aà se vê que só o Data1 com uma Combo não vão dar conta do recado. E justamente na hora que você mais precisava, tem que parar tudo pra aprender ADO na marra. Então, antes que você chegue a esse ponto, comece com ADO.
- O que você quer?
Isso é extremamente difÃcil. Mais até do que saber programar. Explico:
Vai você fazer o seu primeiro aplicativo que não é para um parente próximo (pois se for pra parente, prepare-se pra chateação eterna...). Você está bem preparado, pegou muita dica aqui do VBMania, ouviu muito conselho dos VBMummys (lista da qual eu não participo

Naquela sua gana de ver os milhares de Reais entrando no seu bolso, você concorda com tudo. Sente até que, se não pegar aquele serviço, vem outro e pega, cobrando metade do que você cobraria. E aÃ?
Daà que você faz exatamente como o cara pediu, e ele olha e diz: "Só uma coisinha: eu preciso fazer relatórios por região. Você colocou São Paulo, mas eu tenho vendedores na cidade em cinco regiões distintas. Como eu vou separar?". E volta você pra trás pra acertar essa e mais 48 outras "coisinhas" que ele vai falando no decorrer de 6 meses, que não chegam a ser melhorias no pograma e sim "consertos" de coisas que VOCÃÅ não previu (é amigo, a culpa foi sua...). No fim, os milhares de Reais se diluiram em quase um ano de trabalho, e você conclui que teria sido melhor pegar um serviço de pedreiro que daria mais.
Então, vai pegar um serviço? Mergulhe nele de cabeça! Antes que o cliente lhe encha o saco, encha o dele! Enquanto não ter anotado exatamente o que vai fazer, não comece! DaÃ, quando tudo (tuuuuudo) estiver definido, mostra pro cara e pergunta: "é isso?". Se ele confirmar, corre em casa (se já não tiver feito isso), faz um contratinho de prestação de serviço bem informal (gente, estou falando de empresinha e programador iniciante; não me critiquem por isso), com todos os itens tratados e pede pro cara assinar. Assina também. No futuro, o que passar disso entra pro rol do "Suporte". Aquele papel não vale muita coisa (se você vive no, do e para o mercado informal), mas pelo menos "refresca a memória" do cara.
Depois Tio Max continua.


Aee Tio Max!!( intimidade? naooo)
Tipo ajudou mto oq vc disse realmente quem imagina qui a programaçao eh um mar de rosas ou ate mesmo de dinheiro, eheheh, ta enganado... na minha opiniao, é precizo fazer um nome para arrumar uma grana...
Obrigadaum ae, quem tiver mais dica pra Newbie, le-se iniciante, estamos ae...
Valeu Bruno, certamente que radicalismo é perigoso, mas, quando o tempo é escasso temos que levar em conta as opinioes e a sua é muito importante.
Veja que o sucesso tem várias mãos, do ponto de vista comercial, nao se deve perder tempo com ferramentas obsoletas, mas talvez, do ponto de vista arqueológico, aprender Paradox traga algum sucesso como os exploradores que descobriram a pedra de roseta (http://www.geocities.com/tioisma2002/rosetast.htm) peça de extrema importancia para decifrar os programas de nosso amigo Max Mummy.
Veja que o sucesso tem várias mãos, do ponto de vista comercial, nao se deve perder tempo com ferramentas obsoletas, mas talvez, do ponto de vista arqueológico, aprender Paradox traga algum sucesso como os exploradores que descobriram a pedra de roseta (http://www.geocities.com/tioisma2002/rosetast.htm) peça de extrema importancia para decifrar os programas de nosso amigo Max Mummy.
espero estar ajduando mesmo - mas uma coisa que voce colocou ai é interessante...
acho que todos que fizeram algum tipo de curso técnico ou faculdade relacionada a desenvolvimento, mais cedo ou mais tarde viram pascal...
a idéia do pascal nada mais era do que dar ferramentas para os futuros arquitetos de solucoes - mas para vc poder desenhar solucoes complexas, tem de saber como funciona a base....
conhecer bancos é a mesma coisa - até uns 2 anos atrás, eu só trabalhava com access...
o mysql foi uma espécie de bum - agora digo o pq sou tao fã deste banco...
se vc trabalhar na forma mais primitiva dele, vc eh obrigado a fazer TUDO por código...
quer criar banco, tabela, alterar entre bases, relacionamentos, chaves e tudo o mais - qq coisa eh em prompt do DOS...
meu nivel de "intimidade" com SQL cresceu exponencialmente...
o mesmo vale para o paradox - para quem esta acostumado com bloco de notas, dbf, access - o paradox eh uma boa lição tb...
Citação:do ponto de vista arqueológico, aprender Paradox traga algum sucesso
acho que todos que fizeram algum tipo de curso técnico ou faculdade relacionada a desenvolvimento, mais cedo ou mais tarde viram pascal...
a idéia do pascal nada mais era do que dar ferramentas para os futuros arquitetos de solucoes - mas para vc poder desenhar solucoes complexas, tem de saber como funciona a base....
conhecer bancos é a mesma coisa - até uns 2 anos atrás, eu só trabalhava com access...
o mysql foi uma espécie de bum - agora digo o pq sou tao fã deste banco...
se vc trabalhar na forma mais primitiva dele, vc eh obrigado a fazer TUDO por código...
quer criar banco, tabela, alterar entre bases, relacionamentos, chaves e tudo o mais - qq coisa eh em prompt do DOS...
meu nivel de "intimidade" com SQL cresceu exponencialmente...
o mesmo vale para o paradox - para quem esta acostumado com bloco de notas, dbf, access - o paradox eh uma boa lição tb...
Bom, o Bruno lembrou bem da necessidade do programador saber dominar a manutencao e criacao da base de dados via código.
Entao vai minha dica, e desculpem a falta de modéstia, mas essa é muito boa e guardem bem guardada, bom, sem enrolacao, é o seguinte, para quem trabalha para um só cliente, essa dica nao vale de nada, mas quando voce tem muitos clientes rodando o mesmo programa, é comum a necessidade de fazer alteracoes na base de dados, mas já pensou voce ir de um em um pra mudar? e ja pensou se voce esquece e nao muda de um bom cliente aquele campinho que ninguem usa e um dia daqui a 2 anos alguem resolve usar e dá pau? até voce lembrar o que é vai ouvir um monte. A dica é : altere os bancos de dados, exclua ou inclua campos, inclua ou exclua tabelas sempre via código! nunca em momento algum utilize um front end para fazer manutencao no seu banco de dados porque mais cedo ou mais tarde voce vai esquecer, e fazendo via codigo, voce ja esta com a mao na massa , basta colocar uma rotina ao iniciar o programa que verifica a integridade da base em relacao as mudancas, dá trabalho mas fica muito bom, inclusive quando voce pega um bd velho, tipo backup e roda, o programa ja vai fazendo a adequacao automaticamente sem a necessidade de ficar importando tabelas manualmente.
Entao vai minha dica, e desculpem a falta de modéstia, mas essa é muito boa e guardem bem guardada, bom, sem enrolacao, é o seguinte, para quem trabalha para um só cliente, essa dica nao vale de nada, mas quando voce tem muitos clientes rodando o mesmo programa, é comum a necessidade de fazer alteracoes na base de dados, mas já pensou voce ir de um em um pra mudar? e ja pensou se voce esquece e nao muda de um bom cliente aquele campinho que ninguem usa e um dia daqui a 2 anos alguem resolve usar e dá pau? até voce lembrar o que é vai ouvir um monte. A dica é : altere os bancos de dados, exclua ou inclua campos, inclua ou exclua tabelas sempre via código! nunca em momento algum utilize um front end para fazer manutencao no seu banco de dados porque mais cedo ou mais tarde voce vai esquecer, e fazendo via codigo, voce ja esta com a mao na massa , basta colocar uma rotina ao iniciar o programa que verifica a integridade da base em relacao as mudancas, dá trabalho mas fica muito bom, inclusive quando voce pega um bd velho, tipo backup e roda, o programa ja vai fazendo a adequacao automaticamente sem a necessidade de ficar importando tabelas manualmente.
Falta de tempo. Mas, se o tópico permanecer mais alguns dias, acho que durante o fim de semana posso dar uns palpites por aqui.
Só comento, pelo momento, que não havia percebido ainda a assinatura utilizada pelo carÃssimo Tio MaxMummy ("Max, o Fiscal Lindão").
A lógica me leva no caminho de desacreditar de tal afirmação.
1 - Tio Max é desenvolvedor com um respeitável saldo positivo de conhecimentos acumulados. Passa (ou passou), portanto, bom tempo apenas pilotando o teclado, de forma que o condicionamento fÃsico fica (ou ficou) em segundo plano, ou seja, se não é gordo, já foi ou o será;
2 - Sendo fiscal, poucos devem considerar "Lindão" encontrar-se com ele, profissionalmente falando. De fato, a maioria deve achar uma visão aterradora;
3 - Com o tempo de exposição, os olhos também não devem ter permanecidos imunes aos efeitos da radiação dos monitores, ou seja, se não usa óculos, já usou ou usará;
4 - Para finalizar, apesar de o vinho melhorar com a idade (ao menos os bons), o mesmo não se dá com a espécie humana. O mais frequente, aliás, é justamente o oposto: Ficamos mais flácidos, ranzinzas, cheios de manias, mais desconfiados de tudo, menos otimistas, mais sucetÃveis ao estresse e ás rugas. E, sendo o Tio MaxMummy um dos remanescentes descendentes dos habitantes da primeira vila fundada após o dilúvio (vila essa fundada pelo também carÃssimo Và ' JOBA), idade é o que não falta.
Fim de senama, posto algo no sentido de contribuir de verdade, não apenas de jogar tecladas fora.
T+
Só comento, pelo momento, que não havia percebido ainda a assinatura utilizada pelo carÃssimo Tio MaxMummy ("Max, o Fiscal Lindão").
A lógica me leva no caminho de desacreditar de tal afirmação.
1 - Tio Max é desenvolvedor com um respeitável saldo positivo de conhecimentos acumulados. Passa (ou passou), portanto, bom tempo apenas pilotando o teclado, de forma que o condicionamento fÃsico fica (ou ficou) em segundo plano, ou seja, se não é gordo, já foi ou o será;
2 - Sendo fiscal, poucos devem considerar "Lindão" encontrar-se com ele, profissionalmente falando. De fato, a maioria deve achar uma visão aterradora;
3 - Com o tempo de exposição, os olhos também não devem ter permanecidos imunes aos efeitos da radiação dos monitores, ou seja, se não usa óculos, já usou ou usará;
4 - Para finalizar, apesar de o vinho melhorar com a idade (ao menos os bons), o mesmo não se dá com a espécie humana. O mais frequente, aliás, é justamente o oposto: Ficamos mais flácidos, ranzinzas, cheios de manias, mais desconfiados de tudo, menos otimistas, mais sucetÃveis ao estresse e ás rugas. E, sendo o Tio MaxMummy um dos remanescentes descendentes dos habitantes da primeira vila fundada após o dilúvio (vila essa fundada pelo também carÃssimo Và ' JOBA), idade é o que não falta.
Fim de senama, posto algo no sentido de contribuir de verdade, não apenas de jogar tecladas fora.
T+
uehuehueheuheuheuehueheuheuueuh....
n sei nem oq fala.... so ri mesmo...
euehuehueheuheueh
n sei nem oq fala.... so ri mesmo...
euehuehueheuheueh
Professor, vou derrubar suas suposições uma por uma. No final, o senhor verá que sua noção de lógica está precisando de uma boa revisão:
1 - Bem, essa você acertou. E dou expediente no teclado das 08:00 h até o último cliente (que tem variado da 00:00h até umas 02:00h da manhã). E estou um pouco fora de forma. Uns trinta quilos pra ser mais exato;
2 - é... já tive alguns problemas com meus "visitados". Não foram poucas as vezes em que a coisa ficou "feia";
3 - AHÃ ÂÃ ÂÃ ÂÃ ÂÃ Â!!! Sou mundialmente conhecido como "Max olhos de águia", se brm que de vex em quando eu tenho errado na digiração.
4 - COMO é QUE é!? EU? RANZINZA E ESTRESSADO?!!!! @#$!³Â£Ã‚¢$#%$¨& !!! Palhaçada que tá virando isso aqui!!! Ah se eu fosse mais novo!!!
Tá vendo? Você estava enganado. Manterei minha nova alcunha até que alguém consiga REALMENTE me mostrar que estou errado.
1 - Bem, essa você acertou. E dou expediente no teclado das 08:00 h até o último cliente (que tem variado da 00:00h até umas 02:00h da manhã). E estou um pouco fora de forma. Uns trinta quilos pra ser mais exato;
2 - é... já tive alguns problemas com meus "visitados". Não foram poucas as vezes em que a coisa ficou "feia";
3 - AHÃ ÂÃ ÂÃ ÂÃ ÂÃ Â!!! Sou mundialmente conhecido como "Max olhos de águia", se brm que de vex em quando eu tenho errado na digiração.
4 - COMO é QUE é!? EU? RANZINZA E ESTRESSADO?!!!! @#$!³Â£Ã‚¢$#%$¨& !!! Palhaçada que tá virando isso aqui!!! Ah se eu fosse mais novo!!!
Tá vendo? Você estava enganado. Manterei minha nova alcunha até que alguém consiga REALMENTE me mostrar que estou errado.
Ola gente:
Depois de algum tempo afastado, por motivo de saúde (não muito sério), também vou dar a famosa desculpa de falta de tempo (bom dia Professor !!!) para não responder este tópico agora.
Mas estou preparando alguma coisa para postar no fim de semana (parece que já và isto antes).
Pena que o tópico tenha desvirtuado para Banco de Dados, que em termos de otimização de código é outro assunto. Aguardem ...
Mas, o meu sobrinho Max fez um desafio e eu tenho que responder...
Manterei minha nova alcunha (Max o Fiscal Lindão) até que alguém consiga REALMENTE me mostrar que estou errado.
Está aqui a prova:

Este é o famoso Tio Max, o Fiscal Lindão
???????


Tirem suas conclusões !!!!!!!!
Depois de algum tempo afastado, por motivo de saúde (não muito sério), também vou dar a famosa desculpa de falta de tempo (bom dia Professor !!!) para não responder este tópico agora.
Mas estou preparando alguma coisa para postar no fim de semana (parece que já và isto antes).
Pena que o tópico tenha desvirtuado para Banco de Dados, que em termos de otimização de código é outro assunto. Aguardem ...
Mas, o meu sobrinho Max fez um desafio e eu tenho que responder...
Manterei minha nova alcunha (Max o Fiscal Lindão) até que alguém consiga REALMENTE me mostrar que estou errado.
Está aqui a prova:

Este é o famoso Tio Max, o Fiscal Lindão
???????



Tirem suas conclusões !!!!!!!!
Tópico encerrado , respostas não são mais permitidas