Revisione e refactoring del codice

Caso di studio: sviluppare software in Python

Mark Pedigo

Principal Data Scientist

Vantaggi delle revisioni periodiche del codice

  • Qualità del codice migliorata
    • Intercetta incongruenze presto
  • Condivisione della conoscenza
    • Collaborazione
    • Allineamento
  • Coerenza e best practice
    • Standard elevati

Due persone che rivedono codice al computer

Caso di studio: sviluppare software in Python

Esempio di code review

def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result

Dai feedback su:

  • Funzionalità
  • Leggibilità
    • Esempio - else non necessario
  • Casi limite
    • Esempio - Numeri negativi per un fattoriale
Caso di studio: sviluppare software in Python

Vantaggi del refactoring del codice

  • Qualità del codice migliore
  • Manutenzione più semplice
  • Debito tecnico ridotto

Gli spaghetti diventano un diagramma di flusso

Caso di studio: sviluppare software in Python

Esempio di refactoring

# Original code
def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result
# Refactored code
def factorial(n):
    if n < 0:
        raise ValueError("Not defined")

if n == 0: return 1
result = 1 for i in range(1, n + 1): result *= i return result
Caso di studio: sviluppare software in Python

Nuova funzione per la nuova formula

Formula precedente $$m = P \cdot \frac{r (1 + r)^N}{(1+r)^N - 1}$$ dove $m$ è la rata mensile, $P$ l’importo del prestito, $r$ il tasso mensile e $N$ il numero di rate

Nuova formula $$P = m \cdot \frac{(1+r)^N - 1}{r (1 + r)^N}$$

Caso di studio: sviluppare software in Python

Roadmap

Roadmap che mostra le parti già completate e quelle da iniziare

Caso di studio: sviluppare software in Python

Let's practice!

Caso di studio: sviluppare software in Python

Preparing Video For Download...