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

June 2020

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

 

فلسفه ششم

پراکنده بهتر از متراکم است Sparse Is Better Than Dense

این اصل تا حد زیادی به ظاهر بصری سورس کد پایتون مربوط می شود و از فضای سفید برای تمایز میان بلوک های کد استفاده می کند. هدف اینست که کدهایی که به هم مرتبط هستند را در کنار هم و جدا از بقیه نگداریم بجای اینکه فقط برای ذخیره چند بایت فضا در دیسک همه آنها را در کنار هم قرار دهیم. کسانی که با JAVA ، C ++ و سایر زبانهایی که از {} برای نشان دادن بلوک های کد استفاده می کنند نیز می دانند که تا زمانی که بلوک های کد در داخل پرانتزها قرار داشته باشند ، فضای سفید یا تورفتگی فقط ارزش خوانایی دارد و هیچ تاثیری در اجرای کد ندارد.

 

در دنیای واقعی ، نگرانی های خاص زیادی وجود دارد که باید به آنها توجه کنید ، مانند نحوه جدا کردن کلاس های سطح ماژول یا مدیریت if های تک خطی. اگرچه هیچ مجموعه ای از قوانین برای همه پروژه ها مناسب نخواهد بود، اما PEP8 جنبه های بسیاری از طرح بندی سورس کد را مشخص می کند که به شما کمک می کند این اصل را رعایت کنید. PEP8 تعدادی نکات در مورد چگونگی قالب بندی جملات import ، کلاس ها ، توابع و حتی بسیاری از انواع عبارات را ارائه می دهد. جالب است که توجه داشته باشید كه PEP 8 شامل تعدادی قانون به ویژه در مورد عبارات است كه بطور خاص جلوگیری از فضای اضافی را تشویق می كنند. نمونه های زیر را که مستقیم از PEP 8 است ، ببینید:

Yes: spam(ham[1], {eggs: 2})
No:  spam( ham[ 1 ], { eggs: 2 } )

Yes: if x == 4: print x, y; x, y = y, x
No:  if x == 4 : print x , y ; x , y = y , x

Yes: spam(1)
No:  spam (1)

Yes: dict['key'] = list[index]
No:  dict ['key'] = list [index]

 

نکته اصلی این اختلاف آشکار این است که فضای سفید یک منبع با ارزش است و باید با مسئولیت توزیع شود. از این گذشته ، اگر همه چیز سعی کند از هر طریقی خاص بایستد ، هیچ چیز اصلاً برجسته نیست. اگر از فضای سفید برای جدا کردن کیت های بسیار مرتبط با کد مانند عبارات قبلی استفاده می کنید ، کد واقعاً نامربوط هیچ تفاوتی با بقیه ندارد.

 

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

ارسال نظر

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