Devo creare due progetti API Django o un singolo progetto API per diversi progetti front-end che si collegano allo stesso database?

-2

Abbiamo creato un LMS utilizzando Angular JS 1, Python (Django) API e mongoDB come database. Ora vogliamo estendere il LMS per renderlo un portale di lavoro. Abbiamo deciso di creare un altro progetto di front end e mantenere il database come uguale. Abbiamo deciso di cambiare il front end in quanto vogliamo creare il nuovo progetto in Angular 5 e sbarazzarci di Angular JS 1 alla fine.

Il mio dubbio riguarda il servizio che abbiamo scritto in Python. Abbiamo api.applicationname.com come servizio. Creeremo un progetto completamente nuovo per il servizio? cioè un nuovo repository git e un nuovo URL. O dobbiamo modificare / aggiungere al repository git esistente e l'URL del servizio? Sto vedendo i seguenti vantaggi per l'utilizzo dello stesso vecchio progetto di servizi.

  1. Non è necessario creare un altro repository git e il monitoraggio dei progetti sarà facile.
  2. Non è necessario riscrivere le API di accesso o riutilizzare le API esistenti sarà abbastanza semplice in quanto sarà un singolo progetto. Capisco che anche se stiamo creando un nuovo servizio, possiamo comunque chiamare il vecchio servizio. Ma c'è qualche vantaggio nel fare qualcosa di diverso dal chiedere allo sviluppatore di ricordare un'altra API e temo che quando persone diverse lavoreranno su diversi progetti, ci sono alte probabilità che gli sviluppatori finiranno per scrivere di nuovo i servizi.

Attualmente abbiamo 611 servizi nell'attuale progetto python.

  1. Se aggiungiamo più servizi, sarà troppo complesso?
  2. Sarà troppo pesante per nginx da gestire?
  3. C'è qualche altro fattore che dobbiamo prendere in considerazione mentre prendiamo questa decisione?
  4. Ci saranno problemi di prestazioni se aggiungiamo molti più servizi al progetto esistente?

Se ho perso punti importanti, per favore fatemelo sapere. Grazie.

Si noti che la domanda non riguarda l'utilizzo di framework diversi in un progetto o front-end e back-end in un progetto. Viene utilizzato lo stesso framework e tecnologia. Solo che lo stiamo estendendo con funzionalità aggiuntive.

    
posta Haris Np 11.03.2018 - 20:51
fonte

1 risposta

0

Ho deciso di andare con lo stesso progetto di servizio. Ho parlato con alcune persone esperte dell'industria e le scoperte sono le seguenti:

Svantaggi di andare per due servizi:

  1. Poiché il database è lo stesso, se utilizzi servizi diversi, finirai per duplicare molti servizi. Ad esempio registrazione, accesso utente ecc.
  2. Potrebbe portare a problemi di integrità dei dati, specialmente se si sta utilizzando un database SQL non incluso. Ad esempio, se lo sviluppatore del nuovo progetto è diverso e se scrive un modulo di registrazione con campi completamente diversi, può interrompere gli accessi utente esistenti nell'altra applicazione o nei report. Nel nostro caso, anche se un utente è registrato nella nuova applicazione, lui / lei dovrebbe avere accesso alla vecchia applicazione usando le stesse credenziali.
  3. Le spese generali di gestione del progetto saranno più. Non si tratta solo di conservare due repository ma di ospitarli come servizio diverso. Se lo ospiterete come uno stesso servizio, di nuovo sarà un incubo gestire le versioni del codice.
  4. Se è necessario riutilizzare qualsiasi servizio esistente, le chiamate incrociate saranno complicate e difficili da mantenere.

I vantaggi di andare per un nuovo servizio:

  1. Anche se lo sforzo di sviluppo sarà maggiore, lo sviluppatore può sviluppare rapidamente i servizi poiché non devono preoccuparsi del servizio esistente.
  2. È possibile creare un diverso ambiente python per l'esecuzione del nuovo servizio. Quindi, se si sta utilizzando una libreria Python che deve essere utilizzata solo nel nuovo progetto, è necessario installarla e non avrà alcun impatto sul vecchio progetto dei servizi. Un argomento contatore per lo stesso è che se si desidera utilizzare una nuova libreria python per lo sviluppo del nuovo servizio, è meglio riscrivere anche il vecchio codice in modo da migliorare anche le prestazioni del servizio esistente.

Raccomandazione finale:

Crea il servizio nello stesso progetto in modo tale che possa essere spostato su un altro progetto in una fase successiva, se necessario. Ad esempio, usa un pattern di codifica o un'app diversa nel progetto Django che ti aiuterà a identificare facilmente i nuovi codici.

Vai per il nuovo progetto se hai intenzione di modificare il framework o se vuoi eliminare completamente il progetto dei servizi esistenti. Se hai intenzione di usare quello vecchio e quello nuovo, fallo come lo stesso progetto. Uno dei miei amici con più di 13 anni di esperienza mi ha detto che in un progetto in CTS, aveva lo stesso progetto di servizio per quasi 10 applicazioni. È meglio avere un progetto di servizio con 200 servizi piuttosto che avere due progetti di 100 servizi che si collegano allo stesso database con la stessa tecnologia e struttura.

    
risposta data 17.03.2018 - 08:27
fonte

Leggi altre domande sui tag