É incrível o número de perguntas repetidas que encontro ao fazer uma pesquisa por algum assunto técnico. Todo fórum tem a mesma pergunta repetida inúmeras vezes.
Eu fico me perguntando, será que as pessoas não conhecem o Google ou será que é tão mais fácil postar uma dúvida do que fazer uma simples pesquisa?
Acho que todo site onde o usuário pode postar dúvidas deveria ter uma caixa de pesquisa como a abaixo, que deve ser preenchida obrigatoriamente antes do usuário postar qualquer dúvida. Teste e veja por quê (Se você está lendo pelo Feed, o formulário abaixo não irá aparecer. Clique aqui para acessar o site).
Além disso, o FAQ de diversos sites poderia ser substituído por links como os abaixo. Certamente seriam muito mais relevantes:
sábado, 26 de junho de 2010
terça-feira, 8 de junho de 2010
Como reutilizar componentes
Muito se fala de reutilização de componentes. Todos sabem que é muito importante reutilizar para reduzir o esforço, porém, o que muitos não entendem é que a reutilização não é tão simples.
Principalmente pessoas em cargos de chefia, que não estão diretamente ligados ao desenvolvimento, não entendem o que realmente é a reutilização. O que, à princípio parece ser algo simples, na verdade, deve ser feito com cuidado. Não adianta chegar um dia na empresa e dizer “vamos reutilizar componentes” sem ter uma política adequada.
Vejo três formas comuns de se reutilizar componentes:
Porém, o custo do desenvolvimento é apenas uma parte do custo total de utilização de um componente. Ao adotar um componente de terceiro deve-se ter cuidado com algumas outras questões:
Um detalhe muito importante é: não desenvolver um componente sem um caso de uso em mente. Já vi diversas vezes componentes ultra genéricos, que resolvem todos os problemas do mundo, serem criados e quando precisam ser utilizados, simplesmente não servem para nada.
Normalmente a criação de um componente reutilizável deve ocorrer de forma natural. Se um determinado componente foi útil para uma situação, e poderá ser aproveitado para outras, então sim, podemos reutilizá-lo. Antes de pensar em reutilizar é necessário utilizar.
A questão mais complexa dessa reutilização é o versionamento do componente. Deve-se ter muita atenção no controle das versões e alterações que fazem outros projetos deixarem de funcionar. Esse componente, afinal, estará sendo utilizado em mais de um projeto e consequentemente, cada alteração deve ser muito bem pensada.
Há situações onde determinado código é usado em várias situações, mas em todas com pequenas modificações, não sendo possível ou valendo a pena tentar criar um componente.
Por exemplo, nos últimos projetos que participei foi necessário fazer uso de um Application Controller. Apesar da base ser igual em todos os projetos, cada um tem suas peculiaridades. Nesse caso, foi muito mais simples copiar a classe e adaptá-la.
Deve-se tomar muito cuidado para o copiar e colar não virar regra. Essa forma de reutilização deve ser utilizada somente como exceção, e somente entre mais de um projeto, quando o custo de versionamento e gerenciamento do componente são maiores que o benefício da reutilização. Dentro de um mesmo projeto, o custo de versionamento é pequeno, por isso, normalmente o copiar e colar nunca será utilizado.
Sem um planejamento adequado, aquilo que deveria ser uma forma de reduzir custos acaba se tornando uma tormenta.
Principalmente pessoas em cargos de chefia, que não estão diretamente ligados ao desenvolvimento, não entendem o que realmente é a reutilização. O que, à princípio parece ser algo simples, na verdade, deve ser feito com cuidado. Não adianta chegar um dia na empresa e dizer “vamos reutilizar componentes” sem ter uma política adequada.
Vejo três formas comuns de se reutilizar componentes:
- Utilizar componentes de terceiros;
- Desenvolver componentes próprios reutilizáveis;
- Copiar e colar (sim, isso mesmo).
Utilizar componentes de terceiros
Essa forma de reutilização é, à princípio, a que demanda menos esforço por parte da equipe de desenvolvimento, afinal, não é necessário desenvolver nada.Porém, o custo do desenvolvimento é apenas uma parte do custo total de utilização de um componente. Ao adotar um componente de terceiro deve-se ter cuidado com algumas outras questões:
- Qual a curva de aprendizado dele?
- Quão extensível ele é? Pode ser customizado para atender as diversas necessidades?
- No caso de um problema nesse componente, como será feita a correção?
- Este componente está em desenvolvimento? Está maduro? Há previsão de continuidade no desenvolvimento dele?
Desenvolver componentes próprios reutilizáveis
Quando não há um componente de terceiros disponível, ou há alguma outra limitação como o preço ou inadequação do componente, a solução pode ser desenvolver seus próprios componentes reutilizáveis.Um detalhe muito importante é: não desenvolver um componente sem um caso de uso em mente. Já vi diversas vezes componentes ultra genéricos, que resolvem todos os problemas do mundo, serem criados e quando precisam ser utilizados, simplesmente não servem para nada.
Normalmente a criação de um componente reutilizável deve ocorrer de forma natural. Se um determinado componente foi útil para uma situação, e poderá ser aproveitado para outras, então sim, podemos reutilizá-lo. Antes de pensar em reutilizar é necessário utilizar.
A questão mais complexa dessa reutilização é o versionamento do componente. Deve-se ter muita atenção no controle das versões e alterações que fazem outros projetos deixarem de funcionar. Esse componente, afinal, estará sendo utilizado em mais de um projeto e consequentemente, cada alteração deve ser muito bem pensada.
Copiar e colar
Não, não estou de brincadeira. Copiar e colar é uma ótima forma de reutilização.Há situações onde determinado código é usado em várias situações, mas em todas com pequenas modificações, não sendo possível ou valendo a pena tentar criar um componente.
Por exemplo, nos últimos projetos que participei foi necessário fazer uso de um Application Controller. Apesar da base ser igual em todos os projetos, cada um tem suas peculiaridades. Nesse caso, foi muito mais simples copiar a classe e adaptá-la.
Deve-se tomar muito cuidado para o copiar e colar não virar regra. Essa forma de reutilização deve ser utilizada somente como exceção, e somente entre mais de um projeto, quando o custo de versionamento e gerenciamento do componente são maiores que o benefício da reutilização. Dentro de um mesmo projeto, o custo de versionamento é pequeno, por isso, normalmente o copiar e colar nunca será utilizado.
Conclusão
A reutilização de componentes não deve ser feita a esmo, sem nenhum planejamento. Não basta o diretor dizer “vamos reutilizar” e tudo sai funcionando. É necessário uma política de reutilização e acima de tudo, um ótimo versionamento.Sem um planejamento adequado, aquilo que deveria ser uma forma de reduzir custos acaba se tornando uma tormenta.
Assinar:
Postagens (Atom)