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.
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")){'name': 'Anna', 'email': 'anna@mail.io'}İndi qayda bir yerdədir:
def validate(name, email):
if not name.strip():
raise ValueError("name is empty")
if "@" not in email:
raise ValueError("bad email")