Code beoordelen en refactoren

Casestudy: Software bouwen in Python

Mark Pedigo

Principal Data Scientist

Voordelen van periodieke code review

  • Betere codekwaliteit
    • Vang inconsistenties vroeg af
  • Kennisdeling
    • Samenwerking
    • Op één lijn blijven
  • Consistentie en best practices
    • Hoge standaarden

Twee mensen die code reviewen op een computer

Casestudy: Software bouwen in Python

Voorbeeld code review

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

Geef feedback over:

  • Functionaliteit
  • Leesbaarheid
    • Voorbeeld - Onnodige else
  • Randgevallen
    • Voorbeeld - Negatieve getallen bij factorial
Casestudy: Software bouwen in Python

Voordelen van refactoren

  • Betere codekwaliteit
  • Makkelijker onderhoud
  • Minder technische schuld

Spaghetti wordt omgezet in een stroomdiagram

Casestudy: Software bouwen in Python

Voorbeeld van refactoren

# 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
Casestudy: Software bouwen in Python

Nieuwe functie voor nieuwe formule

Vorige formule $$m = P \cdot \frac{r (1 + r)^N}{(1+r)^N - 1}$$ waarbij $m$ de maandlast is, $P$ het leenbedrag, $r$ de maandrente en $N$ het aantal termijnen

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

Casestudy: Software bouwen in Python

Roadmap

Roadmap met afgeronde onderdelen en wat we starten

Casestudy: Software bouwen in Python

Laten we oefenen!

Casestudy: Software bouwen in Python

Preparing Video For Download...