برداشت ۷ — اخطاری برای اشتراک کد

یکی از انگیزه‌های معمول در کد جدید یا بازنگاری کد، پیدا کردن الگو‌های مشابه و تبدیل آن‌ها به کد مشترک به صورت کتابخانه (Library) می‌باشد. آیا این کار و این تمرین همیشه مفید است؟

نه!

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

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

زمانی که تعداد خط کد نوشته شده در سیستم پایین می‌آید، به ناچار تعداد وابستگی‌های سیستمی (System Dependencies) بالا می‌رود.

زمینه تغییر (Change Context) بسیار مهم است. اگر این زمینه تأثیر در وابستگی‌های زیر‌سیستمی دارد، مراقب تصمیم‌گیری‌های خود در تغییرات بین زیر‌سیستمی باشید.

زمینه را بررسی کنید و بعد تصمیم به ادامه بگیرید.

— Udi Dahan