Zasady inżynierii oprogramowania w Pythonie
Adam Spannbauer
Machine Learning Engineer
import this
The Zen of Python, by Tim Peters (abridged)
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
The complex is better than complicated.
Readability counts.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Złe nazewnictwo
def check(x, y=100):
return x >= y
Opisowe nazewnictwo
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Przesada
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
The Zen of Python, by Tim Peters (abridged)
Simple is better than complex.
Complex is better than complicated.

def make_pizza(ingredients):
# Make dough
dough = mix(ingredients['yeast'],
ingredients['flour'],
ingredients['water'],
ingredients['salt'],
ingredients['shortening'])
kneaded_dough = knead(dough)
risen_dough = prove(kneaded_dough)
# Make sauce
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)
Złe nazewnictwo
def check(x, y=100):
return x >= y
Opisowe nazewnictwo
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Przesada
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Zasady inżynierii oprogramowania w Pythonie