Okunabilirlik önemlidir

Python'da Yazılım Mühendisliği İlkeleri

Adam Spannbauer

Machine Learning Engineer

Python'un Zen'i

import this
The Zen of Python, by Tim Peters (kısaltılmış)

Güzel, çirkinden iyidir.
Açık, örtükten iyidir.
Basit, karmaşıktan iyidir.
Karmaşık, karışıktan iyidir.
Okunabilirlik önemlidir.
Eğer uygulama açıklaması zorsa, kötü bir fikirdir.
Eğer uygulama açıklaması kolaysa, iyi bir fikir olabilir.
Python'da Yazılım Mühendisliği İlkeleri

Açıklayıcı adlandırma

Kötü adlandırma

def check(x, y=100):
    return x >= y

Açıklayıcı adlandırma

def is_boiling(temp, boiling_point=100):
    return temp >= boiling_point

Aşırıya kaçma

def check_if_temperature_is_above_boiling_point(
        temperature_to_check, 
        celsius_water_boiling_point=100):
    return temperature_to_check >= celsius_water_boiling_point
Python'da Yazılım Mühendisliği İlkeleri

Basit tutun

The Zen of Python, by Tim Peters (kısaltılmış)

Basit, karmaşıktan iyidir.
Karmaşık, karışıktan iyidir.

  Pizza Dilimi

Python'da Yazılım Mühendisliği İlkeleri

Pizza yapımı - karmaşık

def make_pizza(ingredients):
    # Hamur yap
    dough = mix(ingredients['yeast'],
                ingredients['flour'],
                ingredients['water'],
                ingredients['salt'],
                ingredients['shortening'])

    kneaded_dough = knead(dough)
    risen_dough = prove(kneaded_dough)

    # Sos yap
    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)
    ...
Python'da Yazılım Mühendisliği İlkeleri

Pizza yapımı - basit

def make_pizza(ingredients):
    dough = make_dough(ingredients)
    sauce = make_sauce(ingredients)
    assembled_pizza = assemble_pizza(dough, sauce, ingredients)

    return bake(assembled_pizza)
Python'da Yazılım Mühendisliği İlkeleri

Ne zaman yeniden düzenlenmeli

Kötü adlandırma

def check(x, y=100):
    return x >= y

Açıklayıcı adlandırma

def is_boiling(temp, boiling_point=100):
    return temp >= boiling_point

Aşırıya kaçma

def check_if_temperature_is_above_boiling_point(
        temperature_to_check, 
        celsius_water_boiling_point=100):
    return temperature_to_check >= celsius_water_boiling_point
Python'da Yazılım Mühendisliği İlkeleri

Uygulama Zamanı

Python'da Yazılım Mühendisliği İlkeleri

Preparing Video For Download...