TGViewer
سماموس: نوشته‌های یوسف مهرداد بی‌بالان سماموس: نوشته‌های یوسف مهرداد بی‌بالان @bibalan_com · 297 subscribers
Post #318 344
بازسازی کد: بار دوم یا بار سوم


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

در اینجا بد نیست پیشنهادهای مارتین فاولر و رابرت سی مارتین را با هم مرور کنیم!

مارتین فاولر به راهنمایی از دان رابرتز اشاره می‌کند به نام : “قاعده‌ی بار سوم”: “اولین باری که کاری را انجام می‌دهید، فقط خود آن کار را انجام دهید. بار دوم که کار مشابهی را شروع کردید، با وجودی که ممکن است از انجام کار تکراری احساس شرمندگی کنید، کار را با تکرار و دوباره‌کاری انجام دهید. برای بار سوم که خواستید کار مشابه را شروع کنید، وقت آن است که کدهای قبلی را بازسازی (ریفکتور) کنید.”

از سوی دیگر، رابرت سی مارتین با اشاره به این ضرب المثل معروف «اگر اولین بار مرا فریب دادی شرم بر تو، اگر دومین بار مرا فریب دادی شرم بر من» پیشنهاد می‌کند “به هیچ عنوان OCP را موقعی که برای اولین بار با کاری رو به رو می‌شوید اعمال نکنید. بار اول خود کار را انجام دهید. اگر برای دومین بار با کار مشابهی در ماژول رو به رو شدید، کدها را با هدف دست‌یابی به OCP بازسازی (ریفکتور) کنید.”

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

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

پ.ن.
این نوشته در لینکدین هم منتشر شده است و یک سری نظرات جالب و خواندنی هم در آنجا مطرح شده است. برای دیدن آنها می‌توانید به اینجا (https://bit.ly/3ND19g9) مراجعه کنید.

گزیده:
شهرها بزرگ می‌شوند، شهرها پیشرفت می‌کنند، بخش‌هایی از شهرها به سادگی از بین می‌روند، در حالی که بخش‌های دیگر آن توسعه پیدا می‌کنند و شکوفا می‌شوند. هر شهر باید بازسازی و نوسازی شود تا پاسخ‌گوی نیازهای ساکنین خود باشد … سیستم‌های نرم‌افزاری نیز درست مثل شهرها هستند. گریدی بوچ


https://www.bibalan.com/?p=4164
https://t.me/bibalan_com
  • 👍 4
More from @bibalan_com
  1. Sep 30, 2026هزینه‌ی RAG رو کی پرداخت می‌کنید؟ هر دستیار هوش مصنوعی که از بر اسناد و مدارک به پرسش‌های…
  2. Sep 9, 2026روح من، جا مانده در باران! https://t.me/bibalan_com
  3. Sep 5, 2026کی دست‌‌یار کیه؟ به ابزارهایی مانند Claude Code, Cursor, GitHub Copilot می‌گویم دستیار. ول…
  4. Aug 8, 2026وقتی هوش مصنوعی، حافظه‌ی شما را می‌دزدد بگذارید یک آزمایش کوتاه انجام بدیم! آیا می‌تونید ی…
  5. Jul 25, 2026فرایند تک‌ نفره (Process of One) در سال ۱۹۹۵، واتس هامفری (Watts Humphrey)-معروف به پدر کی…
  6. Jul 19, 2026دست‌یار هوش مصنوعی شما خسته نشده، پر شده اگر هر روز برای برنامه‌نویسی از هوش مصنوعی استفاد…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →