Qual è una buona pratica per collegare diverse parti di un progetto scritte in diversi linguaggi di programmazione? [chiuso]

0

Di solito il passaggio dei dati all'interno di un progetto non è un grosso problema, purché tutto sia scritto in una sola lingua. Tuttavia, le cose potrebbero diventare brutte, se parti del programma sono scritte in lingue diverse. Ad esempio: un metodo java deve improvvisamente chiamare un metodo scritto in python o viceversa. Questo è ovviamente gestibile, tuttavia credo che il consenso sia: un programmatore dovrebbe evitare tali situazioni e mantenere questo tipo di interazioni al minimo.

Mi stupisco ora: come sono gestite le situazioni migliori, specialmente per quanto riguarda le prestazioni e la gestione degli errori.

Per semplicità: si può presumere che il progetto sia destinato all'analisi di file di dati memorizzati localmente come .xlsx, .xml., .txt ecc. che vengono letti e scritti. Bonus: queste parti del progetto possono utilizzare il multi threading e le fasi dell'analisi possono dipendere anche da un'altra.

Posso immaginare diversi approcci diversi:

Per esempio dovrei usare qualche tipo di script / interprete di codice e semplicemente passarlo ogni volta che il file richiesto e lasciare che l'interprete esegua un determinato metodo?

Dovrei lasciare che il codice esegua un comando tramite la riga di comando, inclusi gli argomenti?

Devo scrivere tutto su un file di configurazione (o multiplo), che viene letto continuamente dalle diverse parti del programma?

Come posso assicurarmi che le diverse parti dei programmi non interferiscano con un altro?

EDIT: ho trovato utile: Come interagiscono più lingue un progetto?

Correlati: Come viene chiamato il codice scritto in una lingua da un'altra lingua

    
posta Imago 08.10.2017 - 15:10
fonte

1 risposta

2

Se tutti i programmi sono in esecuzione allo stesso tempo, potresti avere un ciclo di eventi in tutti i programmi che ascoltano le modifiche ai file.

Ad esempio, supponiamo tu abbia un programma di rubrica. La parte Java viene utilizzata per la gestione della raccolta, ma la parte python cerca il nome e il cognome in base all'id utente.

Come primo passaggio potresti avere un file .raw . Il programma Java sta monitorando la cartella e rileva che il file .raw è stato creato. Il programma Java cambia il nome in .processing , lavora su di esso, determina che ha bisogno del nome e del cognome, rinomina il file in .needs.names , il programma python sta monitorando i file che terminano in .needs.names , recupera i nomi da qualche parte , ha modificato il file e quindi lo ha rinominato in .ready per il successivo programma a raccoglierlo.

    
risposta data 08.10.2017 - 19:14
fonte