Recentemente sto usando un pacchetto software che sembra abbastanza utile, ma che non capisco come funzioni internamente.
Questo pacchetto contiene software generato da diversi dottorandi e docenti di un'università tra diversi anni, che si riflette nello stile del codice. Ci sono diversi articoli relativi a pezzi di questo software, che ho letto ma, ancora, non sono sicuro di averli capiti correttamente.
Ho deciso di guardare all'interno del codice sorgente per capire cosa e come funziona:
Il pacchetto manca di test, a volte ci sono funzioni definite che il linguaggio di programmazione ha già implementato (è R se questo è importante), o due funzioni con funzionalità di sovrapposizione, diversi modi di notifica all'utente (usa message
, cat
o write
) e funziona con 30 parametri. Ho trovato anche alcuni errori nelle funzioni (usando un nome di variabile che è lo stesso di un nome di funzione di base invece di un nome di variabile definito all'interno della funzione). O definisce una nuova classe ma non definisce i metodi per tale classe, rendendo così molte righe di codice duplicate.
Ho continuato a cercare di capire il pacchetto e migliorare la sua coerenza, ho iniziato unificando lo stile e aggiungendo test (la prima volta utilizzando i test), ma poiché non sono sicuro dell'output atteso, sto solo testando i risultati dà per ogni opzione, o per la struttura. Dopo un po 'di tempo vorrei iniziare a modificare alcune funzioni e verificare con il test già scritto che non si rompono.
Che altro dovrei fare per migliorare il pacchetto e la mia comprensione di esso? Come posso migliorare in modo efficace la mia comprensione del pacchetto?