Sempre me pego pensando na reutilização de código ao iniciar um novo projeto.
Até que ponto devo tornar meu código reutilizável?
Devo limitá-lo ao escopo do aplicativo ou torná-lo reutilizável fora do projeto?
Às vezes, sinto que a reutilização do código pode atrapalhar um design simples. Por favor, compartilhe seu próprio entendimento e abordagem de reutilização de código.
refactoring
code-reuse
Lamin Sanneh
fonte
fonte
Respostas:
O código precisa funcionar antes de poder ser reutilizado. Portanto, isso implica em design e função (primária) antes da consideração da reutilização do código.
É bom pensar em reutilizar e reutilizar componentes que você já escreveu. Mas às vezes pode ser tão rápido, se não mais rápido, apenas para escrever o código e fazê-lo funcionar. Depois de resolver o problema original, você pode refatorar o código para torná-lo mais reutilizável.
fonte
Lembre-se do KISS e YAGNI:
Código
re-usability better to be considered
depois de ter seu documento de design pronto . Isso permitirá que você veja a seção / partes do código que serão potencialmente duplicadas.Assim, quando você não tiver um design claro, aplique a abordagem KISS e YAGNI em seu trabalho!
fonte
Isso é da minha experiência, mas ainda acredito que pode ser aplicado e segue as linhas do que o GlenH7 mencionou.
Trabalho entre 3 empresas realizando vários projetos. As empresas são irmãs umas das outras com algumas práticas padrão e metodologia de trabalho, mas também são únicas de várias maneiras. Com isso dito, geralmente começo cada projeto de novo e quero apenas concluí-lo ou mostrar progresso. Então, se eu me deparar com um cenário em que me lembro de um código ou funcionalidade que escrevi para um projeto anterior, farei uma das duas coisas (dependendo do tempo):
Copie o código anterior do outro projeto (não tenha muito tempo) para o meu projeto atual.
Segundo método mais rápido
Copie o código anterior e coloque-o em uma biblioteca comum e inclua essa biblioteca no projeto atual (para facilitar o avanço).
2b. Se eu fizer alterações no outro projeto (original), refatorá-lo-ei para usar a nova biblioteca [mas geralmente não o fará, a menos que precise refazer o projeto].
Apenas esteja avisado, teste o diabo das bibliotecas comuns. Bibliotecas comuns significam criar dependências. Dependências criam pontos de falha. Embora você possa precisar de algo ligeiramente ajustado para sua implementação atual, você não sabe como isso mudará mais alguma coisa usando essa biblioteca.
fonte
Às vezes, acho que copiar e colar algumas linhas de código é uma solução melhor. Mesmo na linguagem humana, quando você quer dizer uma frase que você disse antes apenas com uma ligeira variação, você a repetirá com a variação, porque isso causa menos problemas para qualquer pessoa.
No entanto, se o seu módulo grande precisar ser usado de uma maneira um pouco diferente da suportada, não o clone apenas para modificar poucas linhas, pois é muito provável que você queira estender a funcionalidade que tanto a base quanto a compartilhar clone no futuro. Em vez disso, basta configurá-lo ou exportar a funcionalidade que a base e o clone compartilham em outro módulo que eles usarão.
fonte
Não exagere. E se você não tiver certeza, mantenha o escopo do aplicativo até escrever projetos suficientes para ver onde pode reutilizar o quê.
fonte