Principi di Ingegneria del Software in Python
Adam Spannbauer
Machine Learning Engineer
import this
Lo Zen di Python, di Tim Peters (abbreviato)
Bello è meglio di brutto.
Esplicito è meglio di implicito.
Semplice è meglio di complesso.
Il complesso è meglio di complicato.
La leggibilità conta.
Se l'implementazione è difficile da spiegare, è una cattiva idea.
Se l'implementazione è facile da spiegare, potrebbe essere una buona idea.
Nomi poco chiari
def check(x, y=100):
return x >= y
Nomi descrittivi
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Eccesso di zelo
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Lo Zen di Python, di Tim Peters (abbreviato)
Semplice è meglio di complesso.
Complesso è meglio di complicato.

def make_pizza(ingredients):
# Prepara l'impasto
dough = mix(ingredients['yeast'],
ingredients['flour'],
ingredients['water'],
ingredients['salt'],
ingredients['shortening'])
kneaded_dough = knead(dough)
risen_dough = prove(kneaded_dough)
# Prepara la salsa
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)
Nomi poco chiari
def check(x, y=100):
return x >= y
Nomi descrittivi
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Eccesso di zelo
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Principi di Ingegneria del Software in Python