revisione del codice di outsourcing / refactoring [chiuso]

1

Ho un piccolo progetto (3000 righe in Python) che ho scritto io stesso; non ha bug noti e ha alcune parti decenti, ma è in gran parte un disastro a causa della mia mancanza di tempo. Sfortunatamente, devo essere colui che continua a scrivere e mantenere il codice.

È una buona idea assumere uno sviluppatore con molta esperienza, spiegare loro i requisiti (verbalmente, dal momento che non li ho documentati), e lasciare che controllino il codice e lo aggiustino (in stretta discussione con me)?

Sono preoccupato che:

(a) questo lavoro è così fastidioso che gli sviluppatori di grande esperienza non vorrebbero farlo.

(b) Spenderei così tanto tempo a spiegare i requisiti e ciò che fa il mio codice attuale che sarebbe più veloce per me fare il lavoro vero e proprio.

    
posta max 02.03.2011 - 18:42
fonte

4 risposte

10

Non penso che sia la strada giusta da percorrere. Come si nota, spiegare i requisiti e lo stato attuale del codice richiederebbe già molto tempo. Metti accanto ad esso il tempo necessario per comprendere e discutere i risultati del revisore e fare le correzioni nel codice.

Inoltre, come fai a sapere che il revisore è all'altezza del compito? E come ti assicuri che (s) abbia un modo simile di pensare come te? Senza questo, il risultato della revisione potrebbe essere analogo a "riscrivere questa sacra schifezza, in quanto non conforme a < l'ultimo e più grande paradigma di programmazione secondo il recensore > ". Quindi aggiungi a quanto sopra il costo di trovare e selezionare un revisore adatto.

È solo la mancanza di tempo che ti fa considerare questa opzione? Sei altrimenti sicuro della tua capacità di migliorare il codice con uno standard più elevato?

In tal caso, suggerirei un graduale refactoring , in base alle attività e alle future modifiche al codice. Ha lo scopo di sconfiggere la mancanza di tempo lavorando in piccoli passi realizzabili. Migliora il codice un po 'ogni volta che lo tocchi: col tempo i piccoli miglioramenti faranno una grande differenza.

In caso contrario, dovresti comunque imparare e esternalizzare l'attività di revisione non ti aiuterà in questo.

Ultimo ma non meno importante: per essere in grado di mantenere il codice in modo efficiente a lungo termine, è necessario conoscerlo a fondo, mantenendo un modello mentale all'interno della tua mente. E il processo di costruzione e mantenimento di questo modello mentale non può essere esternalizzato.

    
risposta data 02.03.2011 - 18:47
fonte
4

Non sono sicuro di quale sia la necessità di uno sviluppatore esperto qui.

Le linee di codice a 3k non sono molto, cosa ti impedisce di tagliarlo in 10-12 componenti gestibili (classi / metodi qualunque) per iniziare e poi riprenderlo da lì?

E data la tua situazione, ti consiglio vivamente una suite di test unitari per verificare la funzionalità dei singoli componenti.

    
risposta data 02.03.2011 - 19:13
fonte
0

Condividere i requisiti verbalmente non è mai una buona idea e apre le porte a incomprensioni, errori di implementazione e fallout tra le parti. Non una bella immagine. :)

Assicurati di documentare bene le cose e pensaci come un investimento per il tuo progetto. Ripaga a picche una volta fatto. Ricorda che la maggior parte delle volte stai leggendo il codice, più che scriverlo. Assicurati che le cose siano facili da leggere, prima di tutto.

Se hai bisogno di una guida su come refactattare correttamente e cambiare il tuo modo di codificare (non più di 3000 classi di linea), ti consiglio di leggere Clean Code - Un manuale di programmazione agile.

    
risposta data 02.03.2011 - 19:34
fonte
0

Sarei d'accordo con la maggior parte delle persone sul fatto che le linee di codice 3K non sono il colosso che tu sembri farne. Potresti documentare la logica dietro ciò che il codice dovrebbe fare una piccola cosa alla volta.

    
risposta data 03.03.2011 - 03:35
fonte

Leggi altre domande sui tag