Grundlagen der Softwareentwicklung in Python
Adam Spannbauer
Machine Learning Engineer
import this
The Zen of Python, by Tim Peters (gekürzt)
Schön ist besser als hässlich.
Explizit ist besser als implizit.
Einfach ist besser als komplex.
Komplex ist besser als kompliziert.
Lesbarkeit zählt.
Wenn die Implementierung schwer zu erklären ist, ist es eine schlechte Idee.
Wenn die Implementierung leicht zu erklären ist, könnte es eine gute Idee sein.
Schlechte Benennung
def check(x, y=100):
return x >= y
Beschreibende Benennung
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Übertrieben
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Das Zen von Python, von Tim Peters (gekürzt)
Einfach ist besser als komplex.
Komplex ist besser als kompliziert.

def make_pizza(ingredients):
# Teig machen
dough = mix(ingredients['yeast'],
ingredients['flour'],
ingredients['water'],
ingredients['salt'],
ingredients['shortening'])
kneaded_dough = knead(dough)
risen_dough = prove(kneaded_dough)
# Sauce machen
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)
Schlechte Benennung
def check(x, y=100):
return x >= y
Beschreibende Benennung
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Übertrieben
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Grundlagen der Softwareentwicklung in Python