Prinsip Rekayasa Perangkat Lunak di Python
Adam Spannbauer
Machine Learning Engineer
import this
The Zen of Python, oleh Tim Peters (diringkas)
Indah lebih baik daripada jelek.
Eksplisit lebih baik daripada implisit.
Sederhana lebih baik daripada kompleks.
Kompleks lebih baik daripada rumit.
Keterbacaan itu penting.
Jika implementasi sulit dijelaskan, itu ide buruk.
Jika implementasi mudah dijelaskan, itu mungkin ide bagus.
Penamaan buruk
def check(x, y=100):
return x >= y
Penamaan deskriptif
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Berlebihan
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, oleh Tim Peters (diringkas)
Sederhana lebih baik daripada kompleks.
Kompleks lebih baik daripada rumit.

def make_pizza(ingredients):
# Membuat adonan
dough = mix(ingredients['yeast'],
ingredients['flour'],
ingredients['water'],
ingredients['salt'],
ingredients['shortening'])
kneaded_dough = knead(dough)
risen_dough = prove(kneaded_dough)
# Membuat 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)
Penamaan buruk
def check(x, y=100):
return x >= y
Penamaan deskriptif
def is_boiling(temp, boiling_point=100):
return temp >= boiling_point
Berlebihan
def check_if_temperature_is_above_boiling_point(
temperature_to_check,
celsius_water_boiling_point=100):
return temperature_to_check >= celsius_water_boiling_point
Prinsip Rekayasa Perangkat Lunak di Python