Ho lavorato per un certo numero di aziende che, nel tempo, hanno ramificato il loro servizio principale per fornire servizi aggiuntivi e / o flussi di entrate. La mia domanda è quando è il momento giusto per separare queste preoccupazioni in più applicazioni, anche quando funzionano sugli stessi dati / estensioni di alcuni?
Ad esempio, supponiamo che un'azienda abbia un'applicazione di business principale che si risolve attorno all'indice musicale / alla scoperta della musica. Se questa società in seguito ha deciso di espandersi nell'offerta di siti Web per musicisti che utilizzano l'indice esistente, dovrebbe essere un'applicazione separata che riceve i dati dall'applicazione core-business tramite API o è ragionevole inserirlo in un modulo di l'applicazione esistente e usa gli oggetti aziendali esistenti?
Mi sembra che la abilità di raggruppare le cose in un'unica applicazione non dovrebbe essere una ragione sufficiente per farlo. In Unix, pratichiamo Separation of Concerns, ma quando si tratta di sviluppo aziendale, questo principio sembra essere perso. Nell'esempio sopra, ritengo che questi dovrebbero essere applicazioni separate, ma nella mia esperienza sono testimone che gli sviluppatori li sommano tutti insieme per risparmiare tempo.