Software-engineeringprincipes in Python
Adam Spannbauer
Machine Learning Engineer
import this
The Zen of Python, by Tim Peters (verkort)
Mooi is beter dan lelijk.
Expliciet is beter dan impliciet.
Eenvoudig is beter dan complex.
Complex is beter dan gecompliceerd.
Leesbaarheid telt.
Als de implementatie moeilijk uit te leggen is, is het een slecht idee.
Als de implementatie makkelijk uit te leggen is, kan het een goed idee zijn.
Slechte naamgeving
def check(x, y=100):
return x >= y
Beschrijvende naamgeving
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Te ver gaan
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
De Zen van Python, door Tim Peters (verkort)
Eenvoudig is beter dan complex.
Complex is beter dan gecompliceerd.

def make_pizza(ingredients):
# Maak deeg
dough = mix(ingredients['yeast'],
ingredients['flour'],
ingredients['water'],
ingredients['salt'],
ingredients['shortening'])
kneaded_dough = knead(dough)
risen_dough = prove(kneaded_dough)
# Maak saus
sauce_base = sautee(ingredients['onion'],
ingredients['garlic'],
ingredients['olive oil'])
sauce_mixture = combine(sauce_base,
ingredients['tomato_paste'],
ingredients['water'],
ingredients['spices'])
sauce = simmer(sauce_mixture)
...
def make_pizza(ingredients):
dough = make_dough(ingredients)
sauce = make_sauce(ingredients)
assembled_pizza = assemble_pizza(dough, sauce, ingredients)
return bake(assembled_pizza)
Slechte naamgeving
def check(x, y=100):
return x >= y
Beschrijvende naamgeving
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Te ver gaan
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Software-engineeringprincipes in Python