A partire da un progetto di grandi dimensioni, dovrei dividerlo in parti più concise?

6

Background: attualmente uno stagista presso un'azienda e che lavora per il riutilizzo di programmi precedenti (ancora in uso, ma per diversi reparti) da utilizzare per testare il nuovo hardware. Il nuovo hardware è diverso in termini di layout del registro e interfaccia del firmware dalle vecchie iterazioni dell'hardware. Mi è stato dato libero dominio su come configurare questo progetto in quanto deve essere utilizzato esclusivamente per il nuovo hardware.

Attualmente esiste un singolo file .c e 5 diversi file di intestazione che compongono il programma. Il file .c è attualmente lungo oltre 10000 linee e comprende OGNI singola funzione in uso di main ().

La mia domanda è, dovrei dividere il codice in blocchi più riconoscibili di file .c? Al momento è solo un lieve fastidio passare e trovare i metodi che mi servono, ma richiede molto tempo e ho scadenze. Quali sono i vantaggi e i compromessi di farlo ora, piuttosto che dopo?

Il mio obiettivo è di completare il ripensamento del programma entro la prossima settimana (questo è un strong ottimismo, molto probabilmente richiederà due settimane), quindi è più efficiente iniziare a cullare e spostare il codice ora, o trarrò vantaggio da sto solo cercando di forzare la mia strada così com'è?

    
posta ardent 13.07.2012 - 20:11
fonte

3 risposte

5

Se è possibile rendere più gestibile il codice esistente, è opportuno ridefinirlo meglio. Altrimenti ti causerà problemi ogni volta che ti riferisci ad esso. Immagina di dover lavorare di nuovo con quel codice tra un anno o due. Non penso che sarà un'esperienza piacevole.

Anche se non hai molto tempo, vale davvero la pena refactoring. Penso che un giorno sarà più che sufficiente per dividere il codice in diversi pezzi logici e creare un file separato per ciascuno. Questo ti aiuterà a ottenere l'immagine più grande del codice nel suo complesso, e la prossima volta che devi trovare qualcosa saprai esattamente dove cercare.

Ci sono alcune domande simili (ma non duplicate). Dai un'occhiata a loro:

risposta data 13.07.2012 - 20:20
fonte
0

Presumibilmente stai testando il codice sulle scatole con l'obiettivo di migrare verso di esso. Quindi, presumo che sia meglio mantenere il software il più vicino possibile all'originale se questo deve essere usato per i confronti affiancati ecc. Altrimenti, qual è il punto?

    
risposta data 13.07.2012 - 20:24
fonte
0

Ecco cosa ho fatto nel mio precedente lavoro. Anch'io ho affrontato questo problema in cui qualche idiota pensava che sarebbe stata una buona idea inserire il codice in file e dato che sarebbe stato l'unico a lavorarci per anni, conosceva approssimativamente i numeri di linea per ogni funzione / metodo.

Sapevo che avrebbe infranto le cose Se avessi provato a modulare tutto il codice, così ho iniziato a scegliere i metodi / le funzioni che stavo cambiando. Per esempio ho dovuto correggere un problema di visualizzazione del carrello e per questo ho dovuto apportare delle modifiche a method / function clearShoppingCart (), quindi ho preso questo codice in un file separato ShoppingCartUtility.java

In un periodo di 3 mesi, ho spostato il 75% del codice in una struttura gestibile e facile da capire.

Cheers! Dinesh

    
risposta data 13.07.2012 - 21:49
fonte