O uso inteligente dos componentes

Encontrar um novo acessório interessante para seu carro, ou uma placa diferente para seu micro – estas são verdadeiras tentações consumistas. E aqueles mais impulsivos acabam transformando seu carro, ou seu micro, em verdadeiras vitrines coreanas, daquelas que exibem de tudo um pouco. Uma verdadeira profusão de cores e formas, sendo a maioria do itens produtos que apresentam pouca ou nenhuma utilização prática.

O mesmo tem acontecido com aplicações Delphi, pelo mesmo motivo: a internet é uma verdadeira prateleira de componentes, muitas vezes gratuitos, e os programadores mais afoitos tem empanturrado suas aplicações com estes componentes. Mas será que esta é a forma mais inteligente da utilização de componentes?

 

A VANTAGEM DO USO DE COMPONENTES

Já ouviu falar em casa pré-fabricada? Juntando as partes com alguma habilidade, e em pouco tempo, é possível completar a construção de uma casa. Os componentes estão para o programador como os blocos de construção estão para mestre de obras. Assim, através do uso de componentes é possível adicionar recursos muito interessantes, visuais ou não, aos seus programas.

Não é preciso reinventar a roda toda vez que desejar montar um carro, ela já está pronta. Os componentes permitem a reutilização de código desenvolvido por outros programadores, ou por outras equipes. Estas equipes trabalharam muito nestes componentes, e expurgaram praticamente todos os erros. Você não precisará passar por isso, porque alguém já fez isto por você.

Graças ao conceito de componentes, o Delphi é hoje a ferramenta de desenvolvimento mais completa e estável disponível no mercado. Embora a curva de aprendizado não seja das menores, após esta etapa o nível de produção é um dos maiores – em grande parte graças ao uso de componentes.

Além de toda esta possibilidade de reutilização, os componentes facilitam o desenvolvimento de projetos em grupo, mesmo que as pessoas estejam fisicamente distantes. Programadores ou grupos isolados podem criar componentes que não dependam tanto do restante da implementação do sistema. Estes componentes são centralizados em um ponto, e as transferências são feitas através da LAN’s ou WAN’s (incluindo aqui a utilização da internet). Então são testados em conjunto e as falhas são remetidas aos programadores, que corrigem o componente e reenviam para a central. Após vários ciclos deste processo, obtém-se uma aplicação completa. E os diversos programadores não precisam estar tão interligados, ou tão a par do trabalho dos demais. Resultado: produtividade e estabilidade.

Ao meu ver, esta implementação de componentes criado pela Inprise é a verdadeira implementação do tão abstrato e vago conceito de objetos, que tem sido tão alardeado nos últimos anos e tão pouco usado. Falando em termos de OOP, diria que esta implementação de componentes é a instanciação da classe OOP na vida real.

 

CUIDADOS NECESSÁRIOS

Depois de tantas vantagens, a melhor coisa a fazer é ir correndo para internet e pegar a maior quantidade de componentes possível para suas aplicações, certo? Errado. Muitos cuidados devem ser tomados.

Em primeiro lugar, analise a verdadeira necessidade de utilização daquele componente. É realmente necessário ou quer apenas mostrar aos amigos que sua aplicação tem um formulário ou um botão que eles não tem? Será que o componente adiciona uma função realmente prática à sua aplicação que não é possível com os componentes que já possui? Adicionar apenas os componentes realmente necessários à sua aplicação é essencial para mantê-la rápida, eficiente e com visual profissional.

Sobre a questão visual, podemos destacar que o uso de muitos componentes, geralmente de origens diferentes, tende a poluir a aplicação. As aplicações dependem muito de sua interface para atrair e agradar aos usuários. Além do mais, o uso exagerado de componentes, especialmente com características visuais, tornam a interface pouco intuitiva e pouco prática.

Uma preocupação sobre componentes é quanto a seu suporte. O componente foi distribuído com os fontes ou não? Se foi, tem você ou sua equipe condições de dar o necessário suporte e promover as devidas alterações? Se não foi, como ficará sua aplicação quando o componente apresentar problemas? Os usuários não estarão interessados em suas dificuldades técnicas com fornecedores de componentes, apenas irão querer suas aplicações funcionando corretamente. E o fornecedor do componente é uma empresa respeitável que garante seus produtos, ou é um programador genial e temperamental de algum canto dos Estados Unidos ou da Europa? O mais fantástico componente transforma-se em sua maior dor de cabeça quando deixa de funcionar em determinadas condições, que normalmente não foram previstas nem por seu criador.

Agora pense no trabalho que a utilização de componentes pode gerar na hora de mudar de equipamento, especialmente se os componentes usados não estiverem organizadamente guardados em mídia de fácil utilização. Instala-se o Delphi na nova máquina, e as dezenas e mais dezenas de componentes. Muitos não funcionam corretamente, por algum motivo desconhecido. Será esta a versão correta, ou havia sido baixada uma nova da internet? E onde estaria esta nova versão agora? Qual era o site mesmo? Já vi gente gastando mais de uma semana só para trocar de máquina, por conta deste tipo de confusão.

Os melhores componentes acabam sendo incorporados no Delphi, em uma futura atualização. Será que é possível aguardar este tempo para utilizá-lo, ou é essencial incorporá-lo agora mesmo em sua aplicação. A Inprise é sem dúvida a maior garantia de funcionamento de um componente. Se ela não conseguir fazê-lo funcionar adequadamente com seu produto, ninguém mais o fará. Assim, manter-se o máximo possível limitado aos componentes do Delphi (que não são poucos na versão 4) dará maior estabilidade à sua aplicação.

E talvez a maior ironia seja quando sai uma versão nova do Delphi (o que não é tão incomum assim) e esta versão traz algo muito parecido ou até melhor do que aquele componente que usávamos. Mas o criador do componente, seja empresa ou pessoa física, demora meses para lançar o componente para a nova versão, ou pior ainda, nem lança porque deixou de trabalhar na criação de componentes. Agora a aplicação está toda baseada no antigo componente, e você não pode mudar de versão nem tão cedo, até fazer todas as alterações necessárias. Isto pode levar meses, dependendo da aplicação, ou talvez nem seja viável fazê-lo. Na época em que você descobriu e incorporou aquele componente, sua aplicação estava na ponta, na frente de todo mundo. Agora, todo mundo está na sua frente, e talvez nem consiga mais alcança-los.

 

PLANEJANDO COM INTELIGÊNCIA

Como em qualquer outra atividade, no desenvolvimento de aplicações é preciso tomar decisões inteligentes para estar na frente e ainda manter a estabilidade necessária. A utilização de componentes pode ser um grande avanço, ou um grande atraso, dependendo de como esta seja feita.

A criação de componentes pela própria equipe pode aumentar muito a produtividade. E a utilização de componentes desenvolvidos por terceiros deve ser feita com os devidos cuidados, pensando sempre no futuro e na evolução de nossas aplicações.

Mas sem dúvida alguma, o uso inteligente de componentes é uma dos melhores e mais produtivos recursos disponíveis para todos nós, programadores.

 

Andre Campos

 

Dúvidas e sugestões sobre o artigo podem ser enviadas para info@alfamicro.com.br .