سرفصل‌های آموزشی
۹۷ چیزی که هر برنامه‌نویسی باید بداند
از کدهای قبلی خود در شرایط مناسب مجدداً استفاده کنید

از کدهای قبلی خود در شرایط مناسب مجدداً استفاده کنید

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

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

مزایا 

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

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

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

معایب 

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

فرض کنید از یک کتابخانه از کدها در چند بخش مختلف از برنامه استفاده کنیم. این کار باعث می شود که وابستگی کدهای این بخش ها به هم زیاد شوند. اگر بخواهیم کدهای مشترک بعضی از این قسمت ها را تغییر دهیم یا اصلاح کنیم باید مراقب باشیم که این کار چه تأثیری روی سایر بخش ها می گذارد.

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

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

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

 

online-support-icon