Cosa si intende per "code rot"? [duplicare]

4

Si prega di dire che il codice "marcisce" se non lo si pulisce. Cosa significa?

Ovviamente il codice è testo, non un organismo che può cambiare se stesso. Quindi perché il codice 'marcisce' se non lo tocchi? Cosa lo rende 'marcire' e cosa significa in realtà?

Spiegare, esempi sarebbero i benvenuti.

    
posta Aviv Cohn 10.09.2014 - 01:51
fonte

2 risposte

7

Oltre a la risposta di Michael che, sebbene corretta, è solo una parte dell'equazione.

L'altra parte più comune è il codice che viene continuamente aggiornato, esteso e modificato. Poiché questi processi non sono perfettamente affidabili al 100%, il codice riceve sempre più bug nel tempo. Peggio ancora, tende a ottenere sempre più codice "corretto ma brutto / hacky". Ciò riduce l'integrità del codice, "marcendolo" fino a farlo crollare.

    
risposta data 10.09.2014 - 03:13
fonte
8

L'idea generale è semplice - codice che è rimasto intatto per un lungo periodo di tempo e che ora non viene compilato / eseguito senza alcuno sforzo. La domanda su "come" è un po 'più complicata.

Dato un pezzo di codice e un ambiente fisso, il comportamento del sistema non cambierà. Questo determinismo fa appello al nostro senso generale della logica.

Il problema è che i nostri ambienti non sono mai statici. Stiamo eseguendo nuovi compilatori, IDE diversi, i server sono stati aggiornati e le patch del sistema operativo sono state rilasciate. In generale, anche l'hardware è cambiato. Raramente queste differenze sembrano grandi. Li accumuliamo uno per uno e ci rendiamo conto che il nuovo ambiente non funziona ancora con il vecchio codice.

Il nocciolo della questione è, naturalmente, che si tratta di un processo graduale di cui non prendiamo realmente nota mentre il codice era, in un certo senso, fuori dalla vista. Questo è ciò che porta alla sensazione che il codice sia marcito. Come alcuni avanzi, lo abbiamo lasciato incustodito nel frigorifero e ora l'intero contenitore è rovinato.

Potrebbe essere corretto dire che "deriva dell'ambiente" è un termine più preciso per ciò che è accaduto in questa situazione rispetto al "codice marciume", ma quest'ultimo in modo più specifico cattura ciò che prova per i manutentori del sistema. Da qui la popolarità del termine.

    
risposta data 10.09.2014 - 02:05
fonte

Leggi altre domande sui tag