آیا تا به حال موقع نوشتن کد با این شرایط رو به رو شدهاید که متوجه شوید مشابه این کار را قبلا انجام دادهاید؟ در چنین شرایطی چه میکنید؟ آیا برمیگردید و کد قبلی را نیز اصلاح میکنید؟ یا بدون به توجه به کد قبلی، کد جدید را مینویسید؟ (احتمالا نتیجه چنین کاری، کد تکراری و کاهش خوانایی کد است).
در اینجا بد نیست پیشنهادهای مارتین فاولر و رابرت سی مارتین را با هم مرور کنیم!
مارتین فاولر به راهنمایی از دان رابرتز اشاره میکند به نام : “قاعدهی بار سوم”: “اولین باری که کاری را انجام میدهید، فقط خود آن کار را انجام دهید. بار دوم که کار مشابهی را شروع کردید، با وجودی که ممکن است از انجام کار تکراری احساس شرمندگی کنید، کار را با تکرار و دوبارهکاری انجام دهید. برای بار سوم که خواستید کار مشابه را شروع کنید، وقت آن است که کدهای قبلی را بازسازی (ریفکتور) کنید.”
از سوی دیگر، رابرت سی مارتین با اشاره به این ضرب المثل معروف «اگر اولین بار مرا فریب دادی شرم بر تو، اگر دومین بار مرا فریب دادی شرم بر من» پیشنهاد میکند “به هیچ عنوان OCP را موقعی که برای اولین بار با کاری رو به رو میشوید اعمال نکنید. بار اول خود کار را انجام دهید. اگر برای دومین بار با کار مشابهی در ماژول رو به رو شدید، کدها را با هدف دستیابی به OCP بازسازی (ریفکتور) کنید.”
حالا تصور کنید که شما در موقعی که میخواهید کاری را انجام دهید متوجه میشوید کار مشابهی را قبلا انجام دادید. خوب حالا شما دست کم با دو گزینه رو به رو هستید. یا بر اساس راهنمایی فاولر فقط خود کار را انجام دهید و به فکر بازسازی کد نباشید. یا بر اساس راهنمایی رابرت مارتین دست به بازسازی کد بزنید.
سوالی که مطرح میشود این است که شما کدام گزینه را انتخاب میکنید و چرا؟
اگر علاقهمند هستید لطفا نظرات خود را مطرح کنید تا از دانش و تجربهی شما بهرهمند شویم و یاد بگیریم.
پ.ن.
این نوشته در لینکدین هم منتشر شده است و یک سری نظرات جالب و خواندنی هم در آنجا مطرح شده است. برای دیدن آنها میتوانید به اینجا مراجعه کنید.
گزیده:
شهرها بزرگ میشوند، شهرها پیشرفت میکنند، بخشهایی از شهرها به سادگی از بین میروند، در حالی که بخشهای دیگر آن توسعه پیدا میکنند و شکوفا میشوند. هر شهر باید بازسازی و نوسازی شود تا پاسخگوی نیازهای ساکنین خود باشد … سیستمهای نرمافزاری نیز درست مثل شهرها هستند. گریدی بوچ
دیدگاهتان را بنویسید