पढ़ने योग्य होना मायने रखता है

Python में Software Engineering Principles

Adam Spannbauer

Machine Learning Engineer

The Zen of Python

import this
The Zen of Python, by Tim Peters (संक्षिप्त)

सुंदर बदसूरत से बेहतर है.
स्पष्ट अप्रत्यक्ष से बेहतर है.
सरल जटिल से बेहतर है.
जटिल जटिलतर से बेहतर है.
पढ़ने योग्यता मायने रखती है.
अगर implementation समझाना कठिन हो, तो वह बुरा विचार है.
अगर implementation समझाना आसान हो, तो वह अच्छा विचार हो सकता है.
Python में Software Engineering Principles

वर्णनात्मक नामकरण

खराब नामकरण

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

वर्णनात्मक नामकरण

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

अति कर देना

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 में Software Engineering Principles

सरल रखें

The Zen of Python, by Tim Peters (संक्षिप्त)

सरल जटिल से बेहतर है.
जटिल जटिलतर से बेहतर है.

  Pizza Slice

Python में Software Engineering Principles

पिज़्ज़ा बनाना - जटिल

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)
    ...
Python में Software Engineering Principles

पिज़्ज़ा बनाना - सरल

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

    return bake(assembled_pizza)
Python में Software Engineering Principles

कब रिफैक्टर करें

खराब नामकरण

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

वर्णनात्मक नामकरण

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

अति कर देना

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 में Software Engineering Principles

अभ्यास करते हैं!

Python में Software Engineering Principles

Preparing Video For Download...