-2

Componentes: O futuro do desenvolvimento Web

criado por Gustavo Villa em 16/01/2006 6:25pm
Imagine se hoje, quando você decide que vai comprar uma televisão precisasse encomendá-la. E não é só isso. Para que ela ficasse pronta, primeiro os engenheiros eletrônicos precisassem criar cada chip, cada transistor, cada COMPONENTE para utilizar uma única vez.

Com certeza essa "maravilha" teria alguns bons zeros a mais no seu preço. Seria sem dúvida algo extremamente elitizado. Os problemas apenas estariam por começar pois caso houvesse algum problema nessa sua TV feita sobre medida, o único lugar que poderia TENTAR resolver isso seria o mesmo que a fabricou.

Que maravilha, não? Pois é. É exatamente isso que vivenciamos hoje com o desenvolvimento de software (especialmente para web)!

Apesar de algumas iniciativas visando a padronização da criação de componentes, pouco se encontra no mercado esse tipo de iniciativa.

A engenharia de componentes visa exatamente a criação de um conjunto de componentes de software padronizados, pré-construídos e disponibilizados para se enquadrar na solução de desenvolvimento de algum sistema.

Hoje leva apenas alguns minutos para montar um televisor pois os componentes já são projetados para serem integrados com facilidade.

Apesar dos sistemas componentizados serem mais complexos, são muito mais fáceis de montar e muito menos propensos a erros já que, assim como na televisão, se um componente apresenta problemas, basta concertá-lo ou substituí-lo.

A qualidade está também diretamente ligada à esse fator. Como cada componente deve existir independentemente de outros, esses são construidos baseados em dados de entrada e dados de saída. Se os dados de saída estão incorretos, basta revisar aquele componente; não é necessário revisar todo o sistema.

Podemos identificar duas linhas paralelas de desenvolvimento de componentes.

Uma é aquela que visa analizar itens que sempre se repetem no desenvolvimento de aplicações e que são candidatos à componentes. A outra é o desevolvimento de componentes sobre encomenda. Está diz respeito aos casos onde os componentes existentes não se enquadram na situação mesmo diante de adaptações.

Para ambas práticas são usadas técnicas de engenharia de software que visam identificar erros antes deles acontecerem. Nesta breve visão sobre componentização é fácil pensar o quanto estamos nos atrazando e aumentando nossos custos tendo que re-desenvolver aplicações para cada cliente.

A tendência é que a componentização ganhe cada vez mais força. Esse processo tende a permitir que possamos construir softwares mais rápidos, com maior qualidade e menores preços.

Com certeza vale a pena investir nesta área para não virar o "Fabricante de carroças sobre encomenda".

Espero ter ajudado e esclarecido o tema =)
Grande abraço!

Comentários:

Mostrando 1 - 10 de 16 comentários
Sobre essa coisa de tratar as coisas separadamente, a maioria dos CMS usam essa ideia.
Assim, se um componente de album nao funcionar direito ou tiver mtos bugs, é so troca-lo. Isso nao ira interferir no andamento do site.
09/10/2006 7:15am (~10 anos atrás)

Gustavo Villa disse:
Para aqueles que pediram: adquiram o livro "Engenharia de Software" de Roger Pressman. Há um capítulo inteiro sobre componentização.
Indico este livro de olho fechado. Além deste aspecto, ele trata de diversos outros pontos do processo de desenvolvimento de software.

Para quem se interessa pelo assunto, há diversos sites que tratam desse assunto. A UML por exemplo, contempla em seus diagramas a questão da componentização.
16/07/2006 3:59pm (~10 anos atrás)

Josue Samuel disse:
... como todos disseram, suas idéias são ótimas, mas faltou dar indicações bibliográficas (livros, artigos, tutoriais) para quem desejar se aprofundar.

iniciei recentemente na POO e esta forma de programar está sendo FANTÁSTICA. Só que minha visão de "componentização" ainda é mt limitada devido à inexperiência.

Seu artigo me deixou babando pelo título e desenvolvimento, entretanto pecou na conclusão.

Que tal vc fechar com chave de ouro dando mais detalhes pra nós? ;o)

Fora isso, vc tem talento e futuro. Não desista de postar suas idéias.
21/06/2006 2:52pm (~10 anos atrás)

Parabens pelo artigo, realmente muito bom!

Uma das soluçoes para este porém é a orientação a objetos e trabalhando com diversas tecnologias podemos oferecer soluções mais eficazes, práticas e rápidas.

Porém tenho que resaltar uma frase sobre seu artigo: "Fabricante de carroças sobre encomenda".

Digamos hoje a Ferrari, esta fabrica carros exclusivos seguindo os mesmos padroes da VW a grande diferença esta nos recursos oferecidos por cada produto final onde o valor de uma Ferrari equivale a praticamente 25 GOLs.

O que quero dizer com isso, a sim que defir um padrão e reutilizar codigos porem o diferencial esta no produto final e na qualidade que você oferece ao seu cliente.
21/04/2006 10:02am (~10 anos atrás)

Hugo Amaral disse:
gostei,

estou começando em php, e já vou pensar em reaproveitar meus codigos!

valeu.
15/02/2006 6:55pm (~10 anos atrás)

hinom disse:
concordo com o texto.

Mas existe uma diferença muito grande no mundo do software. Uma tecnologia que hj é utilizada, daqui a 5 anos pode nem existir mais. Isso é uma das causas da balbúrdia no mundo web.

Por isso devemos estar atentos ao que vêm pela frente e nunca apegar-se a um determinado sistema, linguagem ou tecnologia.

O facismo no mundo IT é retrocesso.
13/02/2006 4:12am (~10 anos atrás)

Voce tem uma visão muito ampla sobre o assunto.
Parabens
09/02/2006 1:52pm (~10 anos atrás)

Leo Cabral disse:
...acho que tudo isso poderia se resumir a um link:
http://pear.php.net/

Talvez vocês conheçam o Aston Martin (http://www.astonmartin.com/),
é mais que um carro; é uma lenda. Praticamente feito a mão e vendido
sob encomenda. Muito bonito mesmo. É um dos casos em que o "fabricante
de carroças feitas sobre encomenda" se transforma em algo mais
do que simples "fabricante de automóveis de alta qualidade".

Essa é a diferença dele, a questão não está nos diferenciais comerciais
mas nas criação de funcionalidades que contemplem as necessidades
do usuário. Necessidades estas que ele ainda nem sabe que possui,
mas que já são supridas pelo produto.
08/02/2006 11:12am (~10 anos atrás)

Ótimo artigo!
Em programação reuso é sinônimo de orientação a objetos.
crie uma classe básica para cada necessidade.
dessa forma você pode reutilizá-la em outros trabalhos e caso tenha que adaptar crie uma nova classe um pouco mais esecífica herdando as características da classe básica. bem resumido mas essa é a essência!
03/02/2006 11:52am (~10 anos atrás)

Realmente seria uma maravilha o reuso, entretanto não há regras estabelecidas no desenvolvimento.
Ele varia de empresa para empresa, e mais dentro da mesma empresa há diferenças, há falta de padronização.
Um dia termos regras específicas para cada desenvolvimento, mas a criatividade do criador (programador, designer...) ficará prejudicada?

Onde ficrá o diferencial?
03/02/2006 11:45am (~10 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)