Il modo migliore per controllare la versione di una configurazione enorme per un'applicazione?

3

Ci scusiamo se questo non ha senso, l'inglese non è la mia prima lingua.

Sto lavorando a un'applicazione in cui il flusso di lavoro è suddiviso in "regole" definite su più pagine di un foglio di calcolo di Excel, uno script VB rimuove le descrizioni degli stati ecc e lascia solo numeri, quindi esporta questa configurazione come MySQL che viene poi importato nel database dal quale funziona l'applicazione.

Abbiamo 2-3 sviluppatori che lavorano al foglio di calcolo. Spesso il foglio di calcolo viene aperto dalla sua posizione su un'unità di rete condivisa, vengono apportate piccole modifiche e talvolta il numero di versione non viene incrementato.

Questo rende molto difficile tenere traccia delle modifiche e anche chi le ha create e perché. Idealmente dovremmo tirare il foglio di calcolo in una directory di lavoro, fare una diff e commettere le modifiche e poi inviarle a un repository principale. Sembra che non ci siano strumenti fattibili per fare una cosa del genere con Excel.

Quindi la mia domanda è quale sarebbe un modo migliore per supportare una configurazione molto grande, renderla controllabile dalla versione e comunque leggibile?

    
posta blarg 20.11.2014 - 16:04
fonte

2 risposte

7
  1. La prima cosa da fare è passare al controllo della versione senza modificare nulla. Basta avere i file lì dentro. Se scopri eventuali rotture in seguito, puoi ancora riprovare.
  2. Applica un "blocco" sui sorgenti fino a raggiungere il passaggio 4.
  3. Converti tutto in un formato non binario. Nel caso di Excel dovresti essere in grado di convertire in OOXML, oppure potresti optare per un formato più semplice come ODS.
  4. Verifica che funzioni ancora tutto.

Puoi farlo su una base per file se vuoi che i file siano disponibili il più possibile mentre fai la conversione. Oppure puoi automatizzare la conversione e (a meno che tu non abbia importi veramente folli) fallo in pochi secondi.

A questo punto sei a un passo dal separare correttamente codice e dati (come suggerito da @FrustratedWithFormsDesigner), a quel punto puoi lasciare il deserto di un codice orribile incorporato per il lusso del riutilizzo del codice, del codice non procedurale e automatizzato test.

    
risposta data 20.11.2014 - 16:09
fonte
0

Vorrei pubblicare alcune idee e informazioni, tra cui scegliere e scegliere, in quanto è in parte una questione di gusti, opinioni e risorse disponibili.

Personalmente, consiglio di usare git in situazioni in cui è necessario raggruppare i file. È l'unico software di controllo della versione che conosco, in grado di farlo tranquillamente. Ti consiglio di avere il tuo git-server (la gitolite è molto buona per questo scopo).

Ho la seguente configurazione:

  • gitolite + git per controllo di versione + gitweb per una semplice panoramica.

  • Uno script CGI sullo stesso server, che in pratica è un "visitatore" contatore".

Lo script CGI apre un file, legge un numero da esso, incrementa il numero e lo memorizza nel file; impacchetta anche la data, i secondi / minuti / ore e altre informazioni in un unico pacchetto e invia all'utente richiedente. L'utente richiedente è uno script di shell, che viene eseguito ogni volta che compilo (build) usando Xcode (su Mac). Se non stai usando Xcode, puoi inserirlo nel tuo Makefile.

Il motivo per cui è uno script CGI che ha il bump del numero di versione, è che hai bisogno di un posto centrale (e solo uno) con accesso atomico, così sempre ottieni un univoco numero.

Non importa se ottieni la versione 0.1.4 e il tuo amico ottiene la versione 0.1.5 e il tuo amico invia la versione 0.1.5 prima di inviare la tua versione; la cosa più importante qui è che i numeri di versione sono sempre unici. -E se non ti piace il tuo numero di versione, basta richiederne un altro. ;)

    
risposta data 21.11.2014 - 02:36
fonte

Leggi altre domande sui tag