Sto discutendo con la mia azienda su come strutturare un'applicazione per la registrazione degli studenti che stiamo facendo.
Abbiamo un servizio SOAP per l'invio di email. Questo servizio è responsabile dell'invio e della registrazione delle e-mail inviate dalle nostre diverse applicazioni. (Consente di chiamarlo EmailService )
Poi abbiamo un servizio SOAP che gestisce tutta la logica necessaria per l'iscrizione di uno studente. (chiamiamolo EnrollmentService )
Poi abbiamo un'applicazione client (UI) che ha alcune regole per le piccole imprese e chiama i servizi di sapone precedentemente menzionati.
La discussione sull'architettura SW che abbiamo è la seguente:
Vorrei che l'applicazione client richiamasse EmailService quando necessario e che il EnrollmentService gestisca solo i pensieri relativi alla registrazione.
I miei colleghi sviluppatori vorrebbero includere solo EnrollmentService nell'applicazione client, aggiungere un metodo SendEmail () in EnrollmentService e lascia che EnrollmentService includa EmailService e chiami i metodi necessari.
Penso che questo possa violare il paradigma della "separazione delle preoccupazioni" ...
Il mio argomento:
Cosa succede se improvvisamente un'altra applicazione client che utilizza EnrollmentService sceglierebbe di utilizzare un servizio SMS invece di EmailService ... quindi avremmo bisogno di estendere EnrollmentService con un metodo SendSMS (). Improvvisamente il EnrollmentService dovrebbe conoscere diversi servizi di comunicazione.
I miei colleghi sviluppatori dicono: "non avremo mai bisogno di nient'altro che e-mail" e "non avremo bisogno di un'altra app per questo client". Dico: "non si sa mai ..."
Qualcuno può dirmi quale approccio potrebbe essere migliore
Grazie mille