Quindi sto lavorando con un cliente che ha una vecchia applicazione che ha alcune stranezze interessanti. Tra le altre cose, ha un proprio sistema di versioni di codice per le funzioni aziendali, memorizzando l'intera versione dell'algoritmo in un database. I dati vengono quindi recuperati e compilati su richiesta (questa è un'applicazione web, e sì, compila un sacco di codice ogni volta che provi ad acquistare qualcosa).
Per ovvi motivi, questo non è esattamente veloce. Sto cercando di migrare il codice in normali progetti di codice, ma come potete immaginare, questo crea una sfida interessante per quanto riguarda le versioni degli algoritmi.
È un requisito aziendale che le citazioni / offerte precedenti in revisione debbano utilizzare lo stesso algoritmo utilizzato al momento della creazione. Detto preventivo dovrebbe quindi essere in grado di ricalcolare, con input modificati, ecc (quindi non possiamo semplicemente archiviare i risultati).
Come affronteresti questo problema? Stanno avendo enormi problemi nella produzione ora che ho semplicemente deciso che creeremo un hot-fix spostando tutto il codice su librerie e funzioni di chiamata reali con il controllo delle versioni dei nomi (alcuniAlgortihm6Jun2014 o qualsiasi altra cosa) che risolveranno il problema dell'immenso uso della banda e tempo di compilazione sprecato, ma è tutt'altro che elegante.
Mentre cercherò di implementare cambiamenti architettonici molto più grandi in futuro, per ora sto semplicemente cercando un buon modo per mantenere più versioni dello stesso algoritmo nel codice statico, senza ricorrere a questa convenzione di denominazione. Pensieri?