Esiste un termine per riutilizzare il codice ridigitandolo?

4

Ho costruito un prototipo ("uno da buttare via") qualche tempo fa, e lo sto ricostruendo ora come alfa. Mio Dio, ne è valsa la pena.

Ho riutilizzato parte del codice del prototipo copiando e incollando quindi modificandolo, ma mi sono imbattuto in un modello di visualizzazione del prototipo come guida, ma nella scrittura del nuovo codice da zero. Questo non mi prende troppo tempo perché sono un tipo di dattilografo molto veloce.

In questo momento sto ricostruendo una funzione complessa, e in realtà la sto leggendo riga per riga e digitando codice equivalente nella mia versione alfa. Trovo che sia meglio del refactore di copia-incolla perché mi riacquista la logica e non mi manca parti del codice quando lo sto leggendo. Esiste un nome per questo tipo di riutilizzo? Qualche commento autorevole sui suoi vantaggi / svantaggi?

    
posta Excrubulent 27.08.2013 - 14:24
fonte

3 risposte

7

IMHO il termine che corrisponde alla tua attività migliore è solo una riscrittura .

Può sembrare banale, ma alcuni commentatori hanno già usato quel termine, e se cerchi il termine qui su PSE, troverai molti post relativi alla domanda quando una riscrittura è buona o cattiva, o quando vai meglio con il refactoring (che è il più delle volte usato in opposizione a "riscrivere" le cose). Vedi, per esempio, qui:

When is a BIG Riscrivi la risposta?

    
risposta data 27.08.2013 - 15:07
fonte
5

In genere il codice di alta qualità dovrebbe essere leggibile , nel senso che leggerlo è sufficiente per comprendere e (ri) utilizzare.

Dato che il tuo caso è piuttosto opposto, sembra che sia una varietà "sola scrittura", nel senso in cui questo termine è usato nell'articolo di Wikipedia Lingua di sola scrittura :

In computer humor, a write-only language is a programming language with syntax (or semantics) sufficiently dense and bizarre that any routine of significant size is too difficult to understand by other programmers and cannot be safely edited. Likewise, write-only code is source code so arcane, complex, or ill-structured that it cannot be reliably modified or even comprehended by anyone with the possible exception of the author...

Per evitare fraintendimenti, in precedenza non proibisce veramente i compromessi giustificati . Ad esempio, la leggibilità può essere compromessa quando la considerazione della prestazione lo impone, o la qualità del codice può essere compromessa a favore dello sviluppo rapido di prototipi / prove di concetti (come probabilmente nel tuo caso).

    
risposta data 27.08.2013 - 14:43
fonte
3

La chiamerei implementazione, in pratica il tuo prototipo funge da progetto.

Spesso faccio lo stesso, faccio un prototipo e quando è utile lo implemento. Quello che faccio però è copiare i pezzi rilevanti della fonte dal prototipo, metterli nella mia fonte principale come commento e lavorare da lì.

    
risposta data 27.08.2013 - 14:40
fonte

Leggi altre domande sui tag