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

دوشنبه 12 مهر 1400

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

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

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

آشنایی با کدنویسی تمیز

هیچ تعریف دقیقی برای کدنویسی تمیز وجود ندارد. علاوه بر این باید دقت داشته باشید که راهی برای اندازه گیری میزان تمیز بودن کدها نیز عملا وجود ندارد. بنابراین شما نمی توانید که ابزاری را روی قطعه کدی اجرا کنید و به شما بگوید که این کد چقدر تمیز، قابل نگهداری و استاندارد است. مطمئنا شما می توانید ابزارهایی مانند checkers، linters، static analyzers و ... را روی کدهای خود اجرا کنید و این ابزارها می توانند به میزان زیادی کمک کننده باشند. نکته ای که باید به آن دقت کنید این است که ابزارها ضروری هستند ولی کافی نیستند. کد تمیز چیزی نیست که یک ماشین یا اسکریپت بتواند آن را تشخیص دهد بلکه مسئله ای است که متخصصان این حوزه باید درباره آن تصمیم بگیرند. در ادامه مصاحبه ای را با Mariano Anaya برای شما آماده کرده ایم که درباره اهمیت کدنویسی به صورت تمیز در پایتون و نحوه انجام این کار صحبت خواهیم کرد.

 ناتوانی در نوشتن کدهای کارآمد تا چه اندازه می تواند به سازمان ها یا نرم افزارها آسیب برساند؟

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

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

توسعه دهندگان در زمان شروع کار با سیستم های قدیمی باید به چه نکاتی توجه کنند؟

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

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

شروع کار با سیستم ها و پروژه های قدیمی و کدنویسی تمیز

در زمان کار کردن با پروژه های قدیمی و پیاده سازی کدنویسی تمیز و مناسب روی آن انجام تجزیه و تحلیل مناسب و داشتن یک برنامه ریزی درست برای بهبود کدها از اهمیت بسیار زیادی برخوردار است و شما به جای این که به صورت مستقیم سراغ کدها بروید و شروع به بازسازی کدها کنید باید این کار را انجام دهید. این کار به شما کمک می کند تا تصور واضح تری از کاری که باید انجام دهید به دست بیاورید و یک سیستم درجه بندی مناسب را برای اصلاحاتی که باید صورت گیرد ارائه دهید. به طور کلی بازنویسی کامل برنامه باید در مراحل پایانی صورت گیرد اگرچه در برخی از موارد شما نیاز دارید تا بیشترین اولویت را به تغییر کدها بدهید و هرچه سریع تر آنها را ویرایش کنید و حتی گاهی اوقات باید تمام کدها را تغییر دهید.( به عنوان مثال اگر کدهای خود را با نسخه 2 پایتون نوشته اید باید تمام کدها را تغییر دهید).

به نظر شما پیشرفت های آتی زبان برنامه نویسی پایتون شامل چه مواردی است؟

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

به نظر من قابلیت های مربوط به برنامه نویسی asynchronous در نسخه های بعدی نیز بهبود پیدا می کند.

من همچنین پیشرفت هایی را در جهت بهبود و کارآمدتر کردن زبان برنامه نویسی پایتون مشاهده کرده ام که این مسئله ممکن است به معنای داشتن یک کامپایلر سبک وزن تر باشد یا این که به علت کاهش تعداد پکیج ها در کتابخانه استاندارد این زبان باشد. این موارد پیشرفت هایی هستند که من امیدوارم در آینده در این زبان برنامه نویسی مشاهده کنم.

برخی از عقاید رایج درباره کدنویسی تمیز

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

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

درباره کتاب خود " کدنویسی تمیز در پایتون" به ما بگویید

سوالی که پیش می آید این است که این کتاب چه مسیری را طی می کند و آیا به خوانندگانش در توسعه کدهای کارآمد و قابل نگهداری کمک می کند؟ در پاسخ به این سوال باید گفت در فصل اول این کتاب با مقدمه ای درباره اهمیت داشتن یک پایگاه کد ساختار یافته و فریم ورکی برای فصل های بعدی کار خود را آغاز می کنیم. در این بخش شما با ابزارها و توصیه هایی در مورد چگونگی راه اندازی موفقیت آمیز آشنا خواهید شد و ابزارهای خودکارسازی که به ما در فرمت کردن کدها کمک می کنند را بیشتر می شناسید. علاوه بر این شما اطلاعاتی درباره راه اندازی پایپ لاین ها برای مستقر کردن کدها به صورت موثر که به شما در کدنویسی تمیز کمک می کند به دست خواهید آورد.

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

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

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

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

آیا کتاب شما سناریوهای کاربردی را برای تمرین تکنیک های آموزش داده شده ارائه می دهد؟

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

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

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

صحبت پایانی

Mariano Anaya یک مهندس نرم افزار است که بیشتر وقت خود را صرف ایجاد نرم افزار با پایتون و راهنمایی توسعه دهندگان دیگر کرده است. از جمله زمینه های مختلفی که Mariano Anaya علاوه بر زبان برنامه نویسی پایتون روی آنها کار کرده است می توان به مواردی مانند معماری نرم افزار، برنامه نویسی فانکشنال، سیستم های توزیع شده و سخنرانی در کنفرانس های مختلف موجود در این زمینه اشاره کرد. او سخنران اصلی Euro Python در سال های 2016 و 2017 بود. برای آشنایی بیشتر با او و خرید کتاب " کدنویسی تمیز در پایتون" می توانید به حساب کاربری او در گیت هاب مراجعه کنید که نام آن rmariano است. شما در این حساب کاربری می توانید اطلاعات زیادی را درباره این نویسنده به دست بیاورید و با میزان دانش و اطلاعات او آشنا شوید.

علاوه بر این شما می توانید برای به دست آوردن اطلاعات بیشتر در زمینه کدنویسی تمیز در پایتون از سایر بخش های سایت ما نیز دیدن کنید. 

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

نویسنده 3284 مقاله در برنامه نویسان
  • Python
  • 235 بازدید
  • 3 تشکر

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

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