آموزش ذن پایتون: زیبا بهتر از زشت است

May 2020

ویدیویی وجود ندارد

به احتمال زیاد شناخته شده‌ترین فلسفه پایتون توسط Tim peters نوشته شده، یکی از توسعه دهندگان هسته اصلی پایتون. ذن پایتون برخی از رایج ترین دغدغه های فلسفی را در یک لیست کوتاه قرار می دهد که به عنوان طرح پیشنهادی تقویت پایتون در هسته آن قرار داده شده است. پایتون دارای یک ماژول به نام this است که این فلسفه را نشان میدهد

>>> import this

The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one -- and preferably only one -- obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

فلسفه اول

زیبا بهتر از زشت است Beautiful Is Better Than Ugly

شاید بتوان گفت که این قانون جزئی ترین نظریه‌ای است که وجود دارد. بالاخره زیبایی در نظر بیننده‌ای برای قرن‌ها مورد بحث بوده است. این مطلب مشخص میکند که فلسفه و منطق کاملا از یکدیگر فاصله دارند. یک کاربرد بارز این فلسفه در ساختار درونی زبان پایتون است، که بجای استفاده از کاراکترهای نگارشی، ترجیح میدهد از کلمات انگلیسی استفاده کند. مزیت دیگر، تمرکز پایتون بر استفاده از keyword arguments است که باعث خوانایی بیشتر کد میشود. دو خط پایین را در نظر بگیرید که یک کد را به دو روش مختلف نوشته شده‌اند و ببینید که کدام زیباتر است.

is_valid = form != null && form.is_valid(true)
is_valid = form is not None and form.is_valid(include_hidden_fields=True)

مثال دوم کمی بیشتر شبیه به زبان انگلیسی طبیعی است، و نوشتن صریح نام آرگومان‌ها دید بهتری به خواننده میدهد. به علاوه سبک کدنویسی میتواند تحت تاثیر این زیبایی‌ها قرار گیرد. مثلا نام is_valid به سادگی یک سوال را میپرسد و میتوان نوع پاسخی که برگشت داده خواهد شد را حدس زد. اما نامی مثل validate بسیار مبهم خواهد بود زیرا حتی اگر مقداری برگشت داده نشود هم این نام صحیح است.

البته این بسیار خطرناک است که زیبایی را به عنوان معیاری برای طراحی در نظر بگیریم. اگر هدف‌های دیگری برای سبک کدنویسی در نظر دارید و در یک دوراهی قرار گرفته‌اید حتما فاکتور زیبایی را در نظر بگیرید اما این را اطمینان حاصل کنید جنبه های دیگر ابتدا در نظر گرفته می شود

ارسال نظر

اگر قراره سوالی بپرسید که داخلش کد هست، بهتره از کدتون عکس بگیرید و به ایمیلی که پایین نوشتم بفرستید