O princípio DRY (não se repita) afirma que "todo conhecimento deve ter uma representação única, inequívoca e autorizada dentro de um sistema". Na maioria das vezes, isso se refere ao código, mas também é estendido à documentação.
Dizem que todo sistema de software possui uma arquitetura, independentemente de você ter escolhido ou não. Em outras palavras, o software que você constrói possui uma estrutura e essa estrutura "como construída" é a arquitetura do software. Como um sistema de software incorporado vem com uma arquitetura, a criação de uma descrição da arquitetura desse sistema é uma violação do Princípio DRY? Afinal, se você precisa conhecer a arquitetura, pode sempre olhar o código ...
agile
documentation
architecture
dry
Michael
fonte
fonte
Respostas:
A duplicação de seus pensamentos no código viola o princípio DRY?
Nossa, se você pudesse conhecer a arquitetura olhando para o código, não haveria "documentos de descrição da arquitetura" em primeiro lugar. Não é uma repetição, é outro nível de descrição do sistema , que não pode ser deduzido trivialmente do código e vice-versa. Portanto, ele tem todo o direito de existir, mesmo que você adote o DRY.
fonte
Não tome DRY como uma regra rígida e rápida. É uma coisa boa, mas você só pode aproximar isso na prática.
Também acho que não está bem escrito. "Não se repita" não parece cobrir o caso igualmente importante de que, para fazer uma mudança semântica ou funcional, você teria que editar o texto-fonte em vários lugares, dizendo coisas diferentes, mas coordenadas.
Em vez de tomar como mandamento não ser violado, é melhor entender por que é uma boa ideia e fazer escolhas sensatas a respeito. A razão pela qual é ruim ter que fazer edições coordenadas em vários lugares é que você, o editor, comete erros. Você não é 100% confiável para fazer as alterações sem erros. Se você tiver que fazer 10 alterações diferentes no texto de origem e conseguir apenas 9 delas corretamente, você corrigiu . É por isso que é bom organizar o texto de origem para minimizar o número de alterações coordenadas. Minimiza erros.
Nós não pertencemos a uma religião em que DRY é um dos mandamentos. É apenas uma maneira prática, embora um pouco enganadora, de encapsular algum senso comum.
fonte
Uma Arquitetura Descrição, ou Design de Software Descrição faz violar DRY. No entanto, em uma organização grande, onde os projetos duram anos, os desenvolvedores vêm e vão, e o sistema é muito grande para qualquer pessoa manter todos os detalhes em mente, é um documento crítico. A quantidade de "repetição" necessária para mantê-lo sincronizado vale totalmente a pena pelo esforço que economiza durante a próxima atualização ou manutenção.
fonte
Uma descrição da arquitetura não viola o princípio DRY.
Seu sistema de software vem com uma arquitetura, com certeza. E está espalhado por muitos arquivos, em muitas classes, com muitos detalhes estranhos e desnecessários para uma visão geral.
Seu documento de arquitetura deve ser como o primeiro parágrafo de uma reportagem: é um esboço, um resumo, um roteiro do projeto.
fonte
Se você datar o documento, ele descreverá a arquitetura no momento da redação.
Considerando que o código representa a arquitetura no momento presente.
Duas coisas separadas - não o mesmo conhecimento.
Contanto que você declare que o documento representa a arquitetura no momento da redação, você não está duplicando o IMO do conhecimento, porque seu conhecimento é diferente sobre o sistema em outro momento.
fonte