در اصل CodeRefactoring یعنی چه؟ چرا باید در کدنویسی CodeRefactoring داشته باشیم؟
خب در این بخش یک مبحث مهم و ضروری در پایتون را مورد بررسی قرار خواهیم داد.
گروه لرن پایتون برای علاقهمندان خود، قطاری در نظر گرفته جهت سیروسفر در برنامهنویسی که به دنیای زیبای پایتون سفرکرده و با مفاهیم جذاب پایتون آشنا خواهند شد.
حاضری سفر پایتونی مونو شروع کنیم؟ پس بزن بریم که پایتون منتظر شماست…
مسافران محترم به مقصد CodeRefactoring لطفاً آماده حرکت باشید.
ایستگاه CodeRefactoring:
CodeRefactoring یعنی چه؟ خب در این ایستگاه یک مبحث مهم و ضروری در پایتون را مورد بررسی قرار خواهیم داد. قبل از هر چیزی بریم ببینیم اصلاً چرا باید در کدنویسی CodeRefactoring داشته باشیم؟
بله اینها سؤالاتی هستند که اکثر مبتدیهای پایتون با آنها مواجه میشوند من خودم اولین باری که CodeRefactoring و شنیدم برایم خیلی بیمعنی و پیچیده اومد چون وقتی کد و نوشتیم و اجرا شد چه دلیلی داره دوباره از CodeRefactoring استفاده کنم چرا باید “سری که درد نمی کنه رو دستمال ببندم”؟ خب برنامه من همیشه اجرا میشود دیگر چرا اصلاح کد؟ بله گفتم اصلاح کد دقت کردید؟!!! اگر دقت نکردید دوباره برگردید عقب و پاراگراف قبلی رو بخوانید.
در این ایستگاه قرار است ذهن خود را پاکسازی کنیم و یک نظمی بدیم تا مفهوم CodeRefactoring یعنی چه، بهتر قابل درک شود. خب دوستان وقتی کد یک برنامه را نوشتید باید به سؤال زیر جواب بدید. “آیا زمان تغییر و اصلاح کد پایتونی که نوشتم فرارسیده است یا نه؟” اگر پاسخ شما بله بود پس تا آخر این مطلب همراه ما باشید تا بتوانید کدهای خود را ریفکتور کنید بهطوری که کد شما اصلاح و مرتب شود بدون اینکه تغییری در روند اجرای کد داشته باشید.
CodeRefactoring یعنی چه؟
CodeRefactoring یعنی فرآیندی برای بهبود و اصلاح کد برای داشتن یک کد تمیز، ساده، کارآمد و قابل نگهداری. بهطوری که عملکرد اصلی کد تغییر نکند. این تعریف سادهای بود که میتوانستیم برای کدریفکتورینگ ارائه دهیم.
هدف از Refectoring بهبود کد با ایجاد تغییرات کوچک بدون تغییر در اجرای کد است یعنی به هیچ عنوان در اجرای کد تغییری نخواهیم داشت و سبب افزایش خوانایی کد میشود تا بهتر بتوانیم اشکالات آن را برطرف کنیم.
هدف کلی از CodeRefactoring این است که حرفهای پایتونی شویم تا بتوانیم کد بهینهای را بنویسیم از من نوعی، به شما نصیحت هیچوقت به خاطر کمبود زمان کدهای نامرتب ننویسید و همیشه یادمان باشد اصلاح کد را به بعد موکول نکنیم چون هیچ کسی جز خودتان متضرر نخواهد شد.
زمانی که میخواهیم یک ویژگی جدید به کد اضافه کنیم اگر یک کد نامرتب داشته باشیم با کامنتهای زیاد، اضافه کردن ویژگی جدید کار بسیار پیچیدهای خواهد بود و زمان بیشتری تلف خواهد کرد ولی وقتی کد من از قبل Refector شده باشد این پروسه اضافه کردن یک دستور، کار من را بسیار راحت خواهد کرد زیرا دسترسی به بخشهایی از کد بسیار آسانتر از قبل خواهد بود تا درک کد بهتر شود. در نتیجه بعد از اینکه کد را نوشتیم باید کد خود را اصلاح کنیم تا کد کمتر، تمیزتر و بهینهای داشته باشیم.
مزایای CodeRefactoring:
1-کد کمتر با خوانایی بیشتر و درک بالا 2 -آسان و قابل نگهداری 3 -تسهیل در رفع باگ
تا اینجای بحث، هدفمان از Refectory مشخص شد و فهمیدیم که برای چه کاری باید استفاده کنیم حال این سؤال پیش میآید وقتی معنی CodeRefactoringرو فهمیدم خب چطوری باید از آن استفاده کنم؟ نگران نباش دوست عزیز تا لرن پایتون و داری غم نداشته باش بریم سراغ روشهای ساده برای Refectoring حالا وقتش رسیده که روشهای جدیدی یاد بگیریم تا بتونیم کدهای خود را بهینه کنیم بزن بریم. وارد محیط ویژوال استودیو کد میشیم وطبق موارد گفته شده شما هم تمرین کنید.
1-تعریف تابع برای کارهای تکراری: یک تابع میتواند با استفاده از نام تابع – فراخوانی تابع – اجرا شود، تابع مزایای زیادی دارد که با یک مثال میتوانیم این موضوع را بهتر درک کنیم. در زیر برنامهایی نوشتیم که طول و عرض را میگیرد و مساحت مستطیل را حساب میکند.
کد قبل از اصلاح:
: CodeRefacroring
در برنامه بالا (کد قبل از اصالح) ما از دو حلقه While استفاده کردیم که اگر یکم بخواهیم بهینهاش بکنیم میتوانیم با تعریف یک تابع به جای استفاده از دو حلقه از یک حلقه استفاده کنیم در این صورت با CodeRefactoring میتوانیم کد خود را اصلاح کنیم و با یک تابع مثبت بودن اعداد ورودی را مشخص کنیم به همین راحتی.
2 -کاهش تعداد خط کدها (Code of Lines ): اگر تعداد خط کدها بیشتر باشد در این صورت میتوانیم با نوشتن متغیرها در یک خط برنامه خود را بهینه کنیم به مثال زیر که دارای 9 خط هست دقت فرمایید، میتوانیم بهراحتی در 3 خط خلاصه کنیم، درک برنامه 3 خطی بهتر از 9 خطی است:
کد قبل از اصلاح:
:CodeRefactoring
3 -استفاده از تابع ()enumerate به جای ()range : میتوانیم از تابع ()enumerate برای تکرار روی لیست واقعی استفاده کنیم
کد قبل از اصلاح:
:CodeRefactoring
4 -کاهش کدهای تکراری: تکرار، درک کد را سختتر میکند و زمانی که کدهای تکراری در برنامه زیاد داشته باشید منجر به باگ خواهید شد پس تا جایی که ممکن است دستورات تکراری را کاهش دهید.
کد قبل از اصلاح:
:CodeRefactoring
5 -کاهش کامنتگذاری: تا حد ممکن سعی کنید از نوشتن کامنت زیاد جلوگیری کنید زیرا باعث سردرگمی و افزایش خطوط کد خواهد شد. باوجوداینکه بخواهیم یک دستوری را جستجو کنیم نوشتن کامنت به ما در یافتن کد موردنظر کمک خواهد کرد ولی بیشتر بودنش هم از یک دیدگاهی سبب گیج شدن ما خواهد شد.
جمعبندی:
از مبحث CodeRefactoring یعنی چه شروع کردیم و طی مسیری رسیدیم به پایان راه تا یک کد تمیز و بدون باگ داشته باشیم و یک مهارت مهم برای هر توسعه دهنده را یاد بگیریم.در بالا روشهای CodeRefactoringرا با هم بررسی کردیم و توانستیم کدهایی را برای Refactory شناسایی کنیم ولی بعد از تمرین روشهای بالا وقتی که مسلط شدید به اصلاح کد در این صورت ما برای شما یک سورپرایز خواهیم داشت که از یک ابزاری برای Refactory کدهای پایتون میتوانید استفاده کنید به شرط تسلط بر روشهای بالا، هم چنین شما نیز میتوانید اگر روش دیگری برای اصلاح داشتید را با ما به اشتراک بگذارید. پس منتظر سورپرایز ما باشید.