Prinsiplər bir-birini tarazlayır
Prinsiplər bir-birini tarazlayır

Prinsiplər nə üçündür

Prinsiplər qanun deyil, təcrübədən çıxan qaydalardır: onlar kodun dəyişməsini ucuzlaşdırır. Bir-birinə qarşı da işləyə bilər, ona görə hər birini bilmək və balans saxlamaq lazımdır. Əlaqəli: anti-pattern-lər, SRP.

DRY: Don't Repeat Yourself

Hər bilik sistemdə bir yerdə olmalıdır. Eyni yoxlama iki funksiyada təkrarlanırsa, qaydanı dəyişəndə birini unutmaq asandır.

python
def create_user(name, email):
    if not name.strip():
        raise ValueError("name is empty")
    if "@" not in email:
        raise ValueError("bad email")
    return {"name": name, "email": email}

def update_user(user, name, email):
    if not name.strip():
        raise ValueError("name is empty")
    if "@" not in email:
        raise ValueError("bad email")
    user.update(name=name, email=email)
    return user

u = create_user("Ann", "ann@mail.io")
print(update_user(u, "Anna", "anna@mail.io"))
text
{'name': 'Anna', 'email': 'anna@mail.io'}

İndi qayda bir yerdədir:

python
def validate(name, email):
    if not name.strip():
        raise ValueError("name is empty")
    if "@" not in email:
        raise ValueError("bad email")