A reutilização de código é um método de conceção de computadores e outros sistemas, através da reutilização de código já existente. Um sistema deve ser parcial ou totalmente composto por partes de componentes escritos anteriormente e/ou partes de outro sistema. A reutilização de código é o principal método utilizado para reduzir os custos de mão de obra no desenvolvimento de sistemas de software complexos.
As conversas sobre "reutilização de código" são muito populares entre os programadores e, na maior parte das vezes, falam delas de forma positiva. Gostam de pensar que os desenhos que conceberam são "universais" e "adequados para outros projectos". Mas será que isso é verdade?

Reutilização de código: vale a pena?

A reutilização de código é realmente útil se estiver a criar algo que pretende utilizar como biblioteca para vários projectos. Este método permite poupar tempo e recursos e reduzir a redução através da utilização de recursos já criados. A ideia-chave da reutilização de código é que partes de um programa de computador escrito num determinado momento podem ser utilizadas na construção de outros programas escritos posteriormente.
Alguns dos chamados códigos de "reutilização" envolvem simplesmente a cópia de alguns ou todos os códigos de um programa existente para um novo. Embora as organizações possam utilizar esta abordagem, podem enfrentar muitos dos mesmos problemas associados aos códigos de licença causados por encurtamento e programação.

Tipos de reutilização de código

Muitos investigadores têm trabalhado para tornar o método de reutilização de código mais rápido e mais fácil. A reutilização de código pode ainda ser classificada:
? Reutilização interna - a organização reutiliza os seus próprios componentes. Esta pode ser uma boa decisão comercial, uma vez que a organização pode querer controlar um componente que é crítico para o projeto.
? Reutilização externa - a organização pode licenciar um componente de terceiros. O licenciamento de um componente de terceiros custa normalmente 1 a 20% do custo de desenvolvimento dentro da empresa. A equipa deve também considerar o tempo necessário para encontrar, estudar e integrar o componente.
Por exemplo, um dos maiores mercados de modelos é o https://themeforest.net/. Aqui, as pessoas podem comprar temas, fazer edições de texto e imagem e publicar o sítio como o construiriam. No entanto, não é uma má abordagem se for uma pequena empresa e precisar de uma solução rápida. A grande questão é - e se quiser construir um sítio semelhante ao do Facebook, pode encontrar um modelo e reutilizá-lo? Mesmo que possa, a resposta é não. Porque é difícil adaptar a base de código de outra pessoa e também muito difícil de atualizar, sendo provavelmente mais fácil começar um novo projeto do zero.

Vantagens e desvantagens do método de reutilização de código

Vamos considerar as vantagens e desvantagens da reutilização de código. O nosso objetivo é reduzir os custos, aumentar a fiabilidade e melhorar a consistência.
? Custo - o custo de utilização de software existente é normalmente inferior ao custo de desenvolvimento de um produto equivalente. O custo de aquisição de produtos de software é inferior ao custo de utilização de projectos de código aberto. Embora alterar o código existente seja mais difícil do que escrever um novo código).
? Fiabilidade - Duas situações são simples de ignorar quando se reescreve um código. A primeira é um código funcional adicionado pelo autor original. A segunda é um novo código adicionado ao código fonte após a deteção de um defeito no teste. Utilizar código comprovado é normalmente mais fiável do que código novo.
? Consistência - a interface externa fornecida pelo sistema deve ser coerente: escrever um novo código que possa ser coerente com outras partes do funcionamento do sistema.
Também devemos pensar na dimensão do projeto. Por exemplo, apresentamos a seguir as vantagens e desvantagens da reutilização de código para um pequeno sítio Web.
Vantagens:
? Rápida colocação no mercado.
? Preço barato (normalmente é uma pequena taxa ou 10-30 USD por mês).
? Inclui frequentemente actualizações.
Desvantagens:
? O vosso produto final não é único (parece um modelo de solução barata).
? Muitas vezes não é muito personalizável.
? Continua a ser necessário contratar um programador ou um programador freelancer para implementar o projeto.

Para aplicações complexas e de grande dimensão, a situação da reutilização de código é diferente

Vantagens:
? Se uma solução 100% corresponder às suas necessidades e tiver suporte e preços qualificados, faz sentido utilizá-la.
Desvantagens:
? Continua a ter um custo significativo (normalmente, um plano pago mensalmente é pago para sempre).
? Vai precisar de uma equipa interna para gerir as operações e o desenvolvimento/melhorias.
? É muito difícil trabalhar com a base de código de outra pessoa, por vezes até impossível, pois pode ser muito confuso.

Riscos da reutilização de código

A reutilização de código acarreta alguns riscos. Há situações em que pode ser simplesmente impossível. Um problema para justificar os investimentos é o facto de alguns gestores não darem tempo para dominar o código antigo. Outro risco potencial é a falta de compreensão do âmbito e dos componentes do código. Outro risco potencial é a incapacidade de efetuar uma análise.
O desejo de compreender todo o código pode ser uma tarefa avassaladora, por isso é importante dividir o código em componentes e destacar as partes principais para reutilização. Dedique algum tempo a identificar os componentes do código que devem ser reutilizados. Por vezes, pode ser necessário documentar totalmente o código. Por exemplo, de acordo com os requisitos regulamentares, mas as tentativas de reutilizar e documentar todo o código geralmente não são eficazes. O objetivo principal deve ser identificar trechos de código para documentação e reutilização.

Reutilização de código: quatro aspectos fundamentais para o sucesso

Os principais aspectos-chave de uma reutilização de código bem sucedida são:
1. Compreender a arquitetura do código original para identificar componentes, limites e interfaces.
2. Determinação do potencial de reutilização.
3. Avaliação do tempo gasto na reutilização em comparação com a recriação de componentes.
4. Decidir sobre cada componente: o que reutilizar e como (sem alterações, com alterações menores ou significativas).

Conclusão

O mais importante é que é muito fácil pensar "hmmm esta solução corresponde a 80% do que eu preciso". Certamente, é mais barato apenas adicionar funcionalidades adicionais. No entanto, não recomendamos que o faça. É mais difícil ajustar a estrutura e a solução existentes, alterar o design e fazer tudo sob o código de outra pessoa.
A reutilização de código é possível desde que se fique satisfeito com uma solução idêntica ou completamente igual. No momento em que personaliza o código existente, torna-se difícil manter a estrutura da forma correcta. A reutilização de código não é uma opção para si se quiser ter um excelente desempenho. Embora o desenvolvimento personalizado seja dispendioso, traz qualidade se escolher os programadores certos.