Capítulo 15. Submódulos
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
É comum ter muitos aplicativos que dependem de uma biblioteca utilitária ou um conjunto de bibliotecas. Nessas situações, queres que cada uma das tuas aplicações seja desenvolvida, partilhada, ramificada e fundida no seu próprio repositório Git, ou porque é a unidade lógica de separação ou talvez devido a questões de propriedade do código.
Mas dividir as tuas aplicações desta forma cria um problema. Cada aplicação depende de uma versão específica da biblioteca partilhada, e tens de saber exatamente qual é a versão. Se alguém atualizar a biblioteca por acidente para uma versão que não tenha sido testada, pode acabar por quebrar a tua aplicação. Além disso, a biblioteca de utilitários não é desenvolvida por si só; normalmente as pessoas estão a ajustá-la para adicionar novas funcionalidades de que necessitam nas suas próprias aplicações. Eventualmente, querem partilhar essas novas funcionalidades com toda a gente que está a escrever outras aplicações; épara isso queserve uma biblioteca de utilitários.
Várias estratégias são comumente usadas na tentativa de resolver esse problema, incluindo a realização de checkouts parciais, a importação de código dependente diretamente para o projeto ou até mesmo a cópia do projeto dependente como uma subpasta no projeto. Mas estas não são soluções elegantes; de facto, algumas pessoas vêem-nas como "hacks". ...