🧠 یک وسوسه خطرناک در پروژههای بزرگ:
«بیایید این را Generic کنیم تا بعداً قابل استفاده مجدد باشد.»
مثلاً:
GenericService
GenericRepository
GenericController
GenericResponse
GenericHandler
در ابتدا جذاب است.
اما چند ماه بعد ممکن است با یک سیستم مواجه شوید که:
❌ رفتارهای متفاوت را داخل یک کلاس جا داده.
❌ تغییر یک Feature روی چند بخش اثر میگذارد.
❌ فهمیدن جریان واقعی برنامه سخت شده.
موضوع Reusable بودن همیشه به معنی Generic بودن نیست.
گاهی دو کد مشابه، بهتر است واقعاً دو کد مستقل باشند.
🎯 حالا Abstraction باید از پیچیدگی کم کند؛ نه اینکه پیچیدگی را پشت یک لایه پنهان کند.
💡 قبل از ساختن Abstraction از خودت بپرس:
«آیا واقعاً دو چیز یک مفهوم هستند یا فقط الان شبیه هم به نظر میرسند؟»
@CodeVerse_dev