O problema principal
Vendo o bom apoio mais modernas plataformas de programação tem para gerenciamento de pacotes (pense gem
, npm
, pip
, etc), faz sentido para projetar um aplicativo ou sistema ser composto por pacotes desenvolvidos internamente, de modo a promover e criar uma arquitetura flexível?
Exemplo
Um exemplo disso seria criar pacotes para acesso ao banco de dados, bem como para autenticação e outros componentes do sistema. Naturalmente, eles também usam pacotes externos. Em seguida, seu sistema importa e usa esses pacotes - em vez de incluir o código em sua própria base de código.
Considerações
Para mim, parece que isso promoveria a dissociação de código e ajudaria a manutenção, quase do tipo de aplicativo baseado na Web versus aplicativo de desktop (as atualizações são aplicadas quase automaticamente, base de código única para funcionalidade única etc.).
Parece um conceito de design racional e são? Isso é realmente usado como uma maneira padrão de estruturar aplicativos hoje?