Principios de ingeniería de software en Python
Adam Spannbauer
Machine Learning Engineer
import this
El Zen de Python, por Tim Peters (resumido)
Lo bello es mejor que lo feo.
Lo explícito es mejor que lo implícito.
Lo simple es mejor que lo complejo.
Lo complejo es mejor que lo complicado.
La legibilidad importa.
Si la implementación es difícil de explicar, es una mala idea.
Si la implementación es fácil de explicar, puede ser una buena idea.
Nombres pobres
def check(x, y=100):
return x >= y
Nombres descriptivos
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Exagerando
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
El Zen de Python, por Tim Peters (resumido)
Lo simple es mejor que lo complejo.
Lo complejo es mejor que lo complicado.

def make_pizza(ingredients):
# Hacer masa
dough = mix(ingredients['yeast'],
ingredients['flour'],
ingredients['water'],
ingredients['salt'],
ingredients['shortening'])
kneaded_dough = knead(dough)
risen_dough = prove(kneaded_dough)
# Hacer 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)
Nombres pobres
def check(x, y=100):
return x >= y
Nombres descriptivos
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Exagerando
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Principios de ingeniería de software en Python