Come modificare lo stesso codice memorizzato in più posti dopo averne migliorato uno?

0

Ho del codice scritto in Matlab. Uso il codice in diverse cartelle che contengono dati diversi. Poiché voglio modificare alcuni parametri per ogni diverso dato, tengo il codice nella cartella di ogni dato per ricordare quali parametri ho usato.

Il problema è che a volte miglioro il codice ed è difficile andare in ogni cartella e modificare quella parte di codice. C'è qualche soluzione a questo problema? Sarebbe bello se io modificassi una parte del codice e poi cambiasse in tutti gli altri posti in cui ho memorizzato lo stesso codice.

Il controllo della versione sarebbe di aiuto con questo problema?

    
posta MOON 26.06.2015 - 11:32
fonte

2 risposte

8

Il controllo della versione non è il problema qui. È un principio fondamentale della programmazione che dice "Non ripeterti". È una massima onorata dal tempo, in gran parte esattamente per la ragione che citi.

Se possibile, disponi le cose in modo che la logica che scrivi risieda in uno posto e solo in un posto. Non so nulla di Matlab, quindi non ho diea se sia possibile includere codice da un altro file, subroutine cal, ecc., Ma vale la pena scoprirlo.

Se non è possibile rifattorizzare il codice per obbedire a DRY, si applica il seguente principio: "Non scrivere codice, scrivi programmi che scrivono codice". In altre parole, scrivi un piccolo script di shell / app Perl / quello che ti piace che genera tutte le varianti di questo codice contemporaneamente. Quindi, la prossima volta che cambi qualcosa, devi solo cambiarlo nello script di aiuto. (Devi ricordarti di rieseguire lo script di aiuto - questo è il prezzo che paghi con uno strumento che non ti permette di praticare la DRYness corretta.)

    
risposta data 26.06.2015 - 11:54
fonte
3

Il controllo della versione non è quello che ti serve qui. Devi mettere il tuo codice che vive in molti posti in un unico posto.

Un buon primo passo sarebbe creare una cartella per il codice condiviso, copiare il codice condiviso in funzioni in quelle cartelle condivise e sostituire le copie originali con le chiamate di funzione al codice nella cartella condivisa.

Ecco la documentazione per iniziare con le funzioni di authoring: link

Affinché i file originali possano trovare le nuove funzioni nella nuova cartella condivisa, è necessario aggiungere la nuova cartella al percorso di ricerca MATLAB. più informazioni sono qui: link

    
risposta data 27.06.2015 - 17:36
fonte

Leggi altre domande sui tag