Se una biblioteca non fornisce tutte le mie esigenze, come devo procedere? [chiuso]

1

Sto sviluppando un'applicazione che coinvolge modelli matematici e fisici e mi piacerebbe utilizzare una libreria Math per cose come Matrices. Sto usando C #, quindi stavo cercando alcune librerie e ho trovato Math.NET. Ho l'impressione, dalle esperienze passate, che per la matematica, utilizzare una libreria di terze parti solida e approvata dal settore sia molto meglio che scrivere il proprio codice.

Sembra buono per molti scopi, ma non fornisce supporto per Quaternions, che devo usare come tipo. Inoltre, ho bisogno di alcune funzioni in Vector e Matrix che non sono fornite, come le matrici di rotazione e le funzioni di rotazione del vettore e il calcolo dei prodotti incrociati. Allo stesso tempo, fornisce un sacco di funzioni / classi che semplicemente non ho bisogno, il che potrebbe significare un sacco di inutili ingombri e complessità.

A questo ritmo, dovrei anche preoccuparmi di usare la libreria? Dovrei scrivere la mia biblioteca matematica? O è un'idea migliore attenersi alla libreria di terze parti e in qualche modo avvolgerla? Forse dovrei creare una sottoclasse del tipo Matrix e Vector della libreria? Ma non è considerato un cattivo stile?

Ho anche provato a cercare altre librerie ma sfortunatamente non ho trovato nulla di adatto.

    
posta 9a3eedi 28.05.2014 - 07:52
fonte

1 risposta

8

Scrivi i corsi che ti servono usando la libreria. Una volta che hai il codice e i test corretti, offri di riportare tali classi nella libreria , poiché MathDotNet sembra essere un progetto open source.

Per chiarire le cose, usare la libreria per scrivere quelle funzionalità che si trovano mancanti non significa modificare il codice sorgente della libreria per correggerlo da solo. Significa importare la libreria nel codice e utilizzare le sue funzioni esistenti per risparmiare più lavoro possibile mentre si sviluppano le nuove classi. Puoi in seguito isolare tali modifiche e creare una patch per la libreria.

Inoltre, per chiarire la questione della licenza: la licenza MIT di MathDotNet non ti ti costringe a contribuire con le tue modifiche. Ma è una buona cosa da condividere, solleva l'onere di mantenere i tuoi cambiamenti dalle tue stesse spalle e aiuta a prevenire un futuro in cui ogni sviluppatore C # ha la sua implementazione Quaternion.

    
risposta data 28.05.2014 - 12:41
fonte

Leggi altre domande sui tag