۵ روش‌ بازفاکتورگیری دقیق برای دستیابی به کد بهتر

شکل ۱.دستوالعمل برای داشتن کد بهتر
شکل ۱.دستوالعمل برای داشتن کد بهتر


منتشر شده در towardsdatascience به تاریخ ۸ می ۲۰۲۱
لینک منبع: Fabulous Refactoring Methods For Prettier Code ۵

۱. شرطی‌های پیچیده

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

۲ .نظرات خود را کد کنید!

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

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

به همین دلیل است که من همیشه می‌گویم شما باید \"نظرات خود را رمزگذاری کنید\". معنای این امر این است که استفاده از نام‌های مستعار متغیر که در متن آنها منطقی است بسیار منطقی‌تر است و باعث می‌شود کد شما الگوی منطقی داشته باشد که به راحتی قابل پیگیری است.

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

مطالعه مقاله میانبرهای صفحه‌کلید برای بهبود بهره‌وری کدگذاری شما توصیه می‌شود.

۳. از متغیرهای کمتر استفاده کنید!

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

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

۴ .نامگذاری و استخراج

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

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

ممکن است علاقه‌مند به مطالعه چگونه ظرف ۶ ماه بدون دانش کد‌نویسی دانشمند داده شدم، باشید.

۵. تکرار را کوتاه کنید

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

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

برای مثال، پایتون و جولیا هر دو یک خط برای حلقه دارند که می‌تواند به این شکل انجام شود:

]۵ x=برای x در مجموعه[

علاوه بر این، هر دوی این زبان‌ها دارای ابزارهای کتابخانه‌ای استاندارد مانند .itertools.py هستند. این عنوان همچنین در آن «شریرانه» است، که بسیار رادیکال است.

نتیجه‌گیری

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

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