4 نکته کلیدی برای نوشتن کدهای زبان برنامه نویسی پایتون به صورت مدرن

چهارشنبه 27 بهمن 1400

اگرچه زبان برنامه نویسی پایتون در سال گذشته (سال 2021) سی ساله شد ولی این زبان در چند سال اخیر گسترش پیدا کرده و بسیاری از توسعه دهندگان از آن استفاده می کنند.

 4 نکته کلیدی برای نوشتن کدهای زبان برنامه نویسی پایتون به صورت مدرن

بسیاری از ویژگی های این زبان برنامه نویسی از زمان پیدایش آن بدون تغییر باقی مانده اند اما با گذشت سال ها و منتشر شدن نسخه های جدید این زبان برنامه نویسی راه های جدیدی برای انجام کارهای مختلف در این زبان برنامه نویسی به وجود می آید و کتابخانه های جدیدی نیز منتشر می شوند که روند انجام کارها را ساده تر می کنند.

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

Type hinting در زبان برنامه نویسی پایتون

زبان برنامه نویسی پایتون اخیرا سینتکس  type hinting را معرفی کرده است که به ابزارهای کنترل کیفیت کدهای شخص ثالث اجازه می دهد تا کدهای شما را قبل از زمان اجرا آنالیز و تجزیه و تحلیل کنند و پیش از این که اروری در کدهای شما به وجود بیاید خطاهای موجود در کدهای شما را شناسایی کنند. هرچه بیشتر قصد داشته باشید کدهایی که به زبان برنامه نویسی پایتون می نویسید  را منتشر کنید بیشتر نیازمند استفاده از این قابلیت در زبان پایتون خواهید بود.

هر بازبینی پی در پی این ابزار در پایتون می تواند  annotationهای قدرتمند تر و پیچیده تری را به شما ارائه  دهد. اگر شما هم عادت دارید که از  annotationها در کدهای خود به زبان پایتون استفاده کنید می توانید از ابزار type hinting استفاده کرده و از مزایای آن بهره مند شوید. در واقع با استفاده از این ویژگی شما برای نوشتن کدهای مدرن پایتون مجهزتر خواهید شد.

نکاتی درباره type hinting در پایتون

یک نکته بسیار مهم که باید حتما آن را به خاطر داشته باشید این است که استفاده از type hintها کاملا اختیاری است و شما مجبور به استفاده از آنها نخواهید بود. این طور نیست که شما در هر پروژه ای به آنها نیاز داشته باشید. شما می توانید به راحتی آنها را از اسکریپت های طولانی خود حذف کنید بدون این که مشکلی برای شما به وجود بیاید. نکته مهم دیگر این است که شما می توانید از Pydantic نیز به همین منظور استفاده کرده و از مزایایی که به شما ارائه می دهد استفاده کنید. بسیاری از پروژه هایی که به زبان پایتون نوشته شده اند و امروزه دارای محبوبیت بسیار زیادی هستند( مانند پروژه FastAPI) امروزه به طور گسترده ای از Pydantic استفاده می کنند.

محیط های مجازی پایتون و مدیریت پکیج ها

برای پروژه های ساده اغلب می توانید از ابزار داخلی پایتون که venv نام دارد استفاده کنید تا پروژه ها و نیازمندی های آنها را از یکدیگر جدا کنید اما پیشرفت های اخیر ابزارهای زبان برنامه نویسی پایتون گزینه های دیگری را نیز به شما ارائه می دهد.

Pyenv یکی از این ابزارها است که اگر شما نیاز دارید چندین نسخه از زبان پایتون را روی سیستم خود نصب کنید می توانید از آن استفاده کنید. به این ترتیب می توانید نیازهای مختلف پروژه های خود را برآورده کنید. این ابزار به شما اجازه می دهد تا بین این نسخه های مختلف و براساس نیازهای خود جا به جا شوید. به عنوان مثال اگر احساس می کنید برای انجام وظایف مختلف در پروژه های خود بهتر است که از نسخه های مختلف پایتون استفاده کنید می توانید به سادگی هرچه تمام این کار را انجام دهید. توجه داشته باشید که این ابزار هیچ پشتیبانی رسمی از ویندوز را ارائه نمی دهد اما دارای یک پورت غیر رسمی مخصوص ویندوز است.

ابزار Pipenv

این پکیج که نام آن در واقع خلاصه شده عبارت Python dev workflow for humans می باشد برای مدیریت یک محیط مجازی به همراه تمام وابستگی های موجود در پروژه شما طراحی شده است. علاوه بر این باید دقت داشته باشید که این ابزار اطمینان حاصل می کند که وابستگی ها قطعی هستند. به این ترتیب شما می توانید نسخه هایی که مد نظر دارید را دریافت کرده و آنها را با یکدیگر ترکیب کنید. البته باید دقت داشته باشید که این ابزار مشکلاتی را در پکیج بندی برای شما ایجاد می کند. بنابراین برای پروژه هایی که در نهایت قصد دارید آنها را در PyPI بارگذاری کنید یا این که با سایر افراد به اشتراک بگذارید این ابزار چندان ابزار کاربردی برای شما نخواهد بود.

سایر ابزارهای مدیریت پکیج و محیط مجازی در زبان برنامه نویسی پایتون

Poetry یکی دیگر از ابزارهای کاربردی دیگر است که براساس مشکلاتی که Pipenv داشت طراحی شده است. این ابزار نه تنها به شما اجازه می دهد تا پروژه های خود و نیازمندی های آنها را مدیریت کنید بلکه به شما اجازه می دهد تا به راحتی پروژه خود را در PyPI مستقر کنید. علاوه بر این باید دقت داشته باشید که این ابزار امکان مدیریت محیط های مجازی را نیز برای شما فراهم می کند.

PDM که مخفف Python Development Master می باشد جدیدترین و پیشرفته ترین پروژه در این زمینه به شمار می آید. این ابزار نیز مانند ابزارهایی که در بخش های قبلی به شما معرفی کردیم برای راه اندازی یک پروژه، مدیریت وابستگی های آن و سایر موارد مربوط به مدیریت پروژه و پکیج ها مورد استفاده قرار می گیرد. این ابزار از استاندارد  PEP 582 برای مدیریت پکیج ها استفاده می کند که این کار را به صورت محلی در محل ذخیره پروژه انجام می دهد. بنابراین نیازی نیست که شما برای هر یک از پروژه های خود یک محیط مجازی ایجاد کنید. البته باید دقت داشته باشید که این ابزار یک ابزار نسبتا جدید است و به همین علت نیز پیش از استفاده قطعی از آن باید امتحان کنید که آیا با سیستم شما سازگاری دارد یا خیر؟

سینتکس جدید پایتون

تکامل زبان برنامه نویسی پایتون به این معناست که ویژگی ها و مفاهیم بسیار زیادی به خود این زبان نیز اضافه شده است. در نسخه های اخیر پایتون شاهد آن بوده ایم که ساختارهای سینتکسی جدیدی به این زبان اضافه شده اند که امکان برنامه نویسی قوی تر و مختصرتر را برای توسعه دهندگان و برنامه نویسان فراهم می کند. در این بخش های بعدی بیشتر درباره این ساختارهای جدید صحبت خواهیم کرد.

تطبیق الگو و عملگر walrus در سینتکس زبان برنامه نویسی پایتون

جدیدترین ویژگی سینتکسی که به زبان برنامه نویسی پایتون اضافه شده است قابلیت تطبیق الگوی ساختاریافته است که از نسخه 3.10 پایتون در دسترس قرار گرفته است. نکته بسیار مهمی که باید درباره این ساختار بدانید این است که چیزی فراتر از switch/case در زبان برنامه نویسی پایتون می باشد. این ویژگی به شما اجازه می دهد تا براساس محتویات و ساختار اشیا تصمیم گیری کنید و جریان موجود در برنامه را به این شکل کنترل کنید.

عملگر walrus که آن را به شکل (:=) نمایش می دهیم از نسخه 3.8 به این زبان برنامه نویسی اضافه شده است و عملیات انتساب را معرفی می کند. این عملگر در واقع راهی برای تخصیص دادن یک مقدار به یک متغیر و سپس اعمال یک تست روی متغیر در یک مرحله می باشد. در بسیاری از موقعیت های رایج برنامه نویسی مانند بررسی مقدار بازگشتی یک تابع و در عین حال حفظ نتیجه شما می توانید از این عملگر استفاده کنید.

پارامترهای Positional-only

با وجود این که این ویژگی یک ویژگی جزئی است ولی بسیار مفید است که اخیرا به سینتکس زبان برنامه نویسی پایتون اضافه شده است. این پارامترها به شما اجازه می دهند تا مشخص کنید که کدام پارامترهای تابع باید به عنوان پارامترهای موقعیتی یا positional شناخته شوند و نباید به عنوان آرگومان های کلیدی در نظر گرفته شوند. از جمله مواردی که شما می توانید از این ویژگی استفاده کنید بهبود و وضوح بیشتر کدهای مربوط به توسعه پایگاه داده است. این دقیقا هدفی است که بسیاری از ویژگی های دیگر این زبان برنامه نویسی نیز روی آن تمرکز کرده اند.

قابلیت های مربوط به تست در زبان برنامه نویسی پایتون

نوشتن تست برای یک پایگاه کد مانند نخ دندان کشیدن روزانه است، همه قبول دارند که این کار بسیار خوب و مفید است اما تعداد کمی واقعا آن را انجام می دهند و حتی تعداد کمتری آن را به درستی انجام می دهند. پایگاه کدهای مدرن زبان برنامه نویسی پایتون حتما باید مجموعه تست های خوب و باکیفیتی داشته باشند و ابزارهایی که در حال حاضر در این زبان وجود دارند می توانند به شما کمک کنند تا بتوانید این تست ها را راحت تر برای این زبان برنامه نویسی ایجاد کنید. در ادامه نکاتی را در خصوص این ابزارها برای شما بیان خواهیم کرد.

ابزارهای تست در زبان برنامه نویسی پایتون

زبان برنامه نویسی پایتون دارای فریم ورک داخلی تست مخصوص به خود می باشد که می توانید از آن برای ایجاد Unittest استفاده کنید. اگرچه Unittest در حال حاضر یک گزینه قدیمی به شمار می آید ولی به عنوان تست پیش فرض گزینه چندان بدی نیست. فریم ورک Pytest ابزار جایگزینی است که شما می توانید از آن برای تست در زبان برنامه نویسی پایتون استفاده کنید. یکی از ویژگی های مهم این فریم ورک این است که انعطاف پذیری آن بسیار بیشتر است( شما می توانید تست ها را در هر بخش از کدهای خود اعمال کنید) و دیگر نیازی به نوشتن boilerplate نخواهید داشت. علاوه بر این باید دقت داشته باشید که Pytest افزونه های زیادی را برای بهبود عملکرد خود به شما ارائه می دهد که از جمله آنها می توان به ابزارهای تست async code اشاره کرد. شما می توانید براساس نیاز خود از هر یک از این افزونه ها نیز استفاده کنید و از مزایایی که به شما ارائه می دهند نهایت بهره را ببرید.

نکات پایانی درباره تست در پایتون

یکی دیگر از موارد کمکی بسیار مهم برای تست در زبان برنامه نویسی پایتون code coverage است که مشخص می کند تست های نوشته شده واقعا چه مقدار از پایگاه کدهای ما را پوشش می دهند. ماژول Coverage ماژولی است که به همین منظور طراحی شده است و قابلیت های زیادی را در این زمینه به شما ارائه می دهد. نکته جالبی که باید  بدانید این است که Pytest نیز از این ماژول پشتیبانی کرده و با استفاده از یک افزونه قابلیت های آن را به شما ارائه می دهد.

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • Python
  • 954 بازدید
  • 2 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید